前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux C++ 后台开发:进BAT的学习路线

Linux C++ 后台开发:进BAT的学习路线

原创
作者头像
GPT4算法工程师
发布2024-03-11 09:29:57
1870
发布2024-03-11 09:29:57

作者:GPT4算法工程师

来源:力扣(LeetCode)

链接:C++ & Linux 后端开发入BAT学习路径 - 力扣(LeetCode)

C++相较于其他编程语言而言,学习门槛略高,主因在于其学习路径不够明确,缺乏像Java那样丰富的学习资源。然而,在众多大型企业中,如腾讯、百度、阿里云、网易和华为等,C++岗位的需求量与Java相仿。以下是我个人的C++与Linux后端学习路线和阅读方法的分享,希望能为大家提供一些参考。

让我们C++起飞!

**C++基础知识学习**

对于初学者,建议通过B站的C++教学视频辅助《C++ Primer 第五版》进行学习。

- 在B站搜索C++学习视频,推荐黑马程序员的教程。

- 《C++ Primer 第五版》是学习的好书。

当涉及到选择《C++ Primer 第五版》和《C++ Primer Plus 第六版》时,如果只能选择一本,我个人推荐《C++ Primer 第五版》。

- 《C++ Primer 第五版》对于初学者而言可能稍难,因为某些章节知识点跳跃。但其讲解深入透彻,配合视频学习效果更佳。读完一遍后,该书可作为参考书或工具书,遇到不懂的问题时查阅总能找到启发。

- 《C++ Primer Plus 第六版》讲解较为连贯,不太跳跃。主要基于C++98/03讲解,C++11相关内容大多放在附录中,且介绍不够深入。我个人在阅读完此书后,又重新购买并阅读了《C++ Primer 第五版》,才真正入门C++。

选择任何一本书都建议与视频教程结合,因为仅靠阅读书籍可能会感到枯燥。如果时间紧张,建议根据自己的基础跳过某些章节直接学习C++部分。

**C++11及以上版本**

C++11是对C++进行的重大更新,不仅使使用C++更安全、更便捷,也是校招中的重点考查内容。推荐阅读以下三本书来学习C++11及以上版本的新特性:

- 《深入理解C++11:C++11新特性解析与应用》

- 《Effective Modern C++》

- 《Modern C++ Tutorial》

如果时间有限,建议优先阅读重要知识点,然后再补充其他细节。

**C++进阶学习**

为了提升C++内功,推荐以下三本书:

- 《深度探索C++对象模型》:尽管这是一本较旧的书籍,但内容依然适用,能显著提升C++的内功。如果时间紧张,可以仅阅读前四章。

- 《Effective C++》和《More Effective C++》:这两本书能帮助你了解如何正确且更好地使用C++。

- 《STL源码剖析》:建议阅读,可以深入了解STL的实现原理,不仅涉及各种数据结构的实现,还包括一些设计模式和模板知识。

这些书籍内容可能偏硬核,均由侯捷翻译。如果感觉枯燥,可以配合侯捷的视频教程一起学习。

**操作系统(OS)与Linux**

推荐两本书《深入理解计算机系统》和《程序员的自我修养-链接、装载》,它们能帮助你从编译器的视角理解C/C++语言规则。如果准备时间有限,可以选择不阅读《程序员的自我修养-链接、装载》。

进入Linux后端开发之前,需要学习Linux系统编程和网络编程。无疑,《UNIX环境高级编程》和《UNIX网络编程》是必读的书籍。但这两本书篇幅较长,对初学者不太友好。我的学习方法是:

- 首先阅读列出的重点章节,其余章节在需要时再看。

- 结合视频学习,推荐黑马程序员的Linux全套视频及Linux网络编程视频,可以选择性观看。

对于搭建Linux环境,有两种方法:

1. 在Windows中安装WSL2,并在VSCode中安装Remote-WSL插件,直接在WSL环境下使用VSCode,非常便捷。

2. 如果需要调试网络功能,如tcpdump等,可以使用虚拟机,并通过VSCode的Remote SSH插件远程连接。

**后端开发**

具备了C++和Linux后端开发的基础后,可以开始学习服务器开发相关知识:

- 《Linux高性能服务器编程》:游双老师的这本书深入剖析了服务器设计的各个要点,很多面试题也会涉及到这些内容,强烈推荐。

- 开源项目《Muduo》及其讲解视频:陈硕老师的Muduo项目在设计上遵循了《Linux高性能服务器编程》的原则,B站有逐行代码讲解视频,虽然音质可能稍差,但内容非常丰富。

**后端进阶**

- **RPC**:如果你对RPC感兴趣,可以从jsonrpc开始学习,进一步了解brpc的设计,如协程设计等。

- **Redis**:如果时间允许,可以深入学习Redis的源码。《Redis设计与实现》和《Redis 5设计与源码分析》是推荐的学习资源。

**数据结构与算法**

- 推荐《算法》一书和清华大学邓俊辉老师的《数据结构与算法》课程。

- LeetCode刷题:建议至少完成前300道题目,重点是《LeetCode精选TOP面试题》。

- 剑指Offer:至少复习2遍,熟悉其中的题目,这对于获取offer至关重要。

**计算机网络**

- 如果时间允许,可以阅读《TCP/IP 卷一》。但如果时间紧张,可以跳过,因为上述推荐的书籍和代码中已包含了必要的TCP/IP知识。

**工具使用**

- 学会使用cmake和gdb,这对于开发和调试非常有帮助。

**最后的建议**:学会使用Markdown进行笔记记录,这对于学习过程中的知识整理非常有用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档