推荐书籍

一、计算机系统

1)系统组成

  • 《深入理解计算机系统,原书第3版》 豆瓣评分9.8,简称csapp,必备
  • 《计算机程序的构造和解释(原书第2版)》 豆瓣评分9.5 豆瓣热门 Top 10
  • 《编码:隐匿在计算机软硬件背后的语言》 豆瓣评分9.3
  • 《计算机体系结构:量化研究方法》 豆瓣评分8.9 翻译拉低了评分
  • 《计算机组成与体系结构:性能设计(原书第8版)》 豆瓣评分8.3
  • 《计算机组成与设计:硬件 / 软件接口》 豆瓣评分9.4
  • 《计算机是怎样跑起来的》 豆瓣评分7.5 仅适合入门
  • 《程序是怎样跑起来的》 豆瓣评分8.0

2)编译与链接

  • 《编译原理: 原理、技术与工具》 豆瓣评分9.1 经典龙书
  • 《现代编译原理,C语言描述修订版》 豆瓣评分8.5
  • 《程序员自我修养-链接、装载与库》 豆瓣评分8.8

二、操作系统

1)操作系统理论

  • 《操作系统之哲学原理 第2版》 豆瓣评分8.3
  • 《现代操作系统,原书第4版》 豆瓣评分9.1

2)Linux 内核

  • Linux源代码 评分10分 源码是最好的资料, 官网地址另一个链接
  • 《现代体系结构上的 UNIX 系统》 豆瓣评分9.4
  • 《深入理解 Linux 内核(第三版)》 豆瓣评分8.7
  • 《Linux 内核设计与实现(原书第3版)》 豆瓣评分8.6

3)操作系统实现

三、网络技术

1)网络协议

  • 《计算机网络:自顶向下方法(第7版)》 豆瓣评分9.4
  • 《TCP-IP详解 卷1:协议》 豆瓣评分9.2
  • 《网络是怎么样连接的》 豆瓣评分9.1 可动性强内容也比较硬核
  • 《TCP/IP详解 卷2:实现》 豆瓣评分9.1
  • 《TCP/IP详解 卷3》 豆瓣评分8.8
  • 《图解 TCP IP 第5版》 豆瓣评分7.8 优点是图解,缺点是不深入
  • 《图解 HTTP》 豆瓣评分8.1 通俗易懂,不过点到为止
  • 《HTTP权威指南》 豆瓣评分8.6 做Web必读,缺点是有点老

2)Linux 网络

  • 《深入理解 LINUX 网络技术内幕》 豆瓣评分8.7
  • 《追踪Linux TCP/IP代码运行》 豆瓣评分7.2 虽然评分不高,不过用来查还是不错的

3)抓包分析

  • 《Wireshark 网络分析就这么简单》 豆瓣评分8.6
  • 《Wireshark 网络分析的艺术》 豆瓣评分8.8

四、应用

1)系统编程

  • 《Linux/UNIX系统编程手册》 豆瓣评分9.4

2)网络编程

  • 《UNIX网络编程卷1:套接口API》 豆瓣评分9.6 被誉为UNIX编程“圣经”
  • 《UNIX网络编程卷2:进程间通信》 豆瓣评分9.4
  • 《Linux 环境编程:从应用到内核》 豆瓣评分8.9 和 UNIX 网络编程的区别是这本会讲内核实现

3)Mysql

  • 《MySQL技术内幕 InnoDB存储引擎 第2版》 豆瓣评分8.5

4)Nginx

  • 《深入理解 Nginx(第2版)》 豆瓣评分8.7

5)Golang

  • 《Go 语言设计与实现》 评分9.8
  • 《Go 专家编程》 豆瓣评分9.4

5)Rust

五、性能分析与调优

  • 《性能之巅 洞悉系统、企业与云计算》 豆瓣评分8.6 至少9分以上
  • 《BPF之巅 洞悉Linux系统和应用性能》 豆瓣评分8.5

六、算法与数据结构

  • 《算法导论原书第2版》 豆瓣评分9.3
  • 《编程珠玑(第二版)》 豆瓣评分8.9
  • 《Leetcode刷题手册》

综合

  1. 内存溢出:代码分享 技术聚客 为程序员服务。主要栏目有:技术专栏,技术教程,代码,聚客等,网站内容及其丰富。

OutOfMemory(内存溢出)是一个程序员常见的错误类型,我们的网站依此为名寓意是一个程序员资料分享,编程技术交流的网站。

算法

  1. 结构之法 算法之道

数据库

  1. MySQL 是怎样运行的:从根儿上理解 MySQL
  2. db-tutorial:是一个数据库教程。在线文档
  3. miniob: 从 0 到 1 数据库内核实战教程。该项目是 OceanBase 团队基于华中科技大学数据库课程原型,联合多所高校重新开发的、从零上手数据库的学习项目。它结构简单、代码简洁,不仅有文字讲解和视频教程,还有由浅入深的题目。通过理论+实战的方式,帮忙初学者迅速掌握内核模块功能和协同关系,提高工程编码能力,有助于在面试和工作中脱颖而出。

性能优化

  1. 高性能无锁数据结构探索-通用EBR框架

Github精选项目

  1. awesome:一个关于各种有趣话题的精彩列表。这些列表包含了有关各种领域的精选资源,从编程工具到娱乐、学习资源等等。awesome旨在为用户提供一个集中的资源库,帮助他们探索感兴趣的话题,发现新的工具和资源。

  2. 开发者成长之路:一个为所有开发者提供的成长之路指南,旨在为菜鸟和老鸟提供一条充满乐趣和挑战的发展路径。这个项目将帮助你轻松了解各种技能树和技术路线,使你的职业之旅不再迷茫。无论你是新手还是经验丰富的开发者,这个开源项目都提供了有价值的学习资源和指导,帮助你不断提升技能。

  3. 免费的编程中文书籍索引

  4. GitHub中文排行榜: 包含了所有计算机编程语言的学习资料。

  5. 开发内功修炼: 飞哥的开发内功修炼从 CPU、内存、磁盘、网络四大模块进行深度思考,总结出来。

  6. 动画图解的数据结构与算法教程: 一个动画图解的数据结构与算法教程,支持多种编程语言,如 Java、C++、Python、Go、JS、TS、C#、Swift、Rust、Dart、Zig 等。通过可视化的方式,这个项目帮助学习者更轻松地理解和学习各种数据结构与算法。

  7. C++核心指南: 一套关于C++编码的可靠指南、规则和最佳实践的合集。这些指南旨在帮助C++开发人员编写可读、高效、安全的代码。它提供了有关代码结构、内存管理、异常处理等方面的建议,有助于提高C++代码的质量和可维护性。如果您是C++开发人员,这些指南可能对您的项目非常有帮助。

  8. C++那些事: 这是一个适合初学者从入门到进阶的仓库,解决了面试者与学习者想要深入 C++ 及如何入坑 C++ 的问题。除此之外,本仓库拓展了更加深入的源码分析,多线程并发等的知识,是一个比较全面的 C++ 学习从入门到进阶提升的仓库。

  9. Effective Modern C++ 中文翻译版: 《Effective Modern C++》一书的翻译版本为中文读者提供了一份精心翻译的现代 C++ 学习资源,帮助开发者更好地理解和应用现代 C++ 的最佳实践。

  10. 系统设计相关: 一个关于系统设计的开源项目。它的目的是用图像和通俗的话语来解释复杂的系统。以帮助读者更好地理解系统设计的要点。总的来说System Design有如下亮点:1.涵盖了多个系统设计的主题,如通信协议、数据库、缓存、微服务架构等。2.提供了多个系统设计的案例分析,如Netflix、Google等。3.通过丰富的流程图、架构图、代码块、表格等来展示系统的结构和逻辑。

  11. Rust语言实战:该项目提供了大量的 Rust 实战练习,来帮助 Rust 新手学习和上手 Rust 语言。这里除了有大量的练习题和答案,还支持在线阅读、修改和编译 Rust 代码。在线阅读