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

2024-03-11 09:29:57 浏览数 (3)

作者: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进行笔记记录,这对于学习过程中的知识整理非常有用。

0 人点赞