计算机专业 10 本必读的经典书!

《深入理解计算机系统》

这是我第三次翻开这本书了,第一次是在大一下,那时候只学了 C 语言基础,翻了几章,根本看不懂。第二次是大三,当时上《系统级编程》课程,这一次有了操作系统、汇编等基础,读起来顺畅很多,也顺带着做了Lab

《 Designing Data-Intensive Applications》

简称,DDIA,也是被很多大 V 推荐过的一本书,全书以数据为核心,这本书从抽象层次上详细论述了各种数据存储模型,包括传统关系型数据库、NoSQL、大数据存储、流式数据存储等等,由浅入深。虽然这些方面平时或多或少都接触过一些,但是说实话很多内部机制、各种数据存储的利弊、如何取舍都理解得非常粗浅,这本书读下来有一种让人豁然开朗的感受。

正所谓数据是架构的核心,推荐所有后台开发工程师都读一下,因为现在的互联网业务,本质上就是一个数据处理系统:一个浅应用层包裹着的复杂的数据系统,充分理解数据系统的运作和设计非常必要。

《程序员的自我修养--链接、装载与库》

别被这本书的名字欺骗了,这不是教你养生的,而是学了会掉头发的硬核知识。

程序员自我修养重在讲解链接、目标文件、装载、库与运行时,看完这本书你会了解到一个 C/C++ 程序是如何被编译成目标文件的,以及 Linux 下目标文件的格式,不同目标文件又是如何被链接成一个可执行程序,在链接时如何处理符号、重定位、地址解析等,以及静态链接、动态链接区别等等,最后可执行文件又是如何被加载进内存,如何和虚拟内存空间映射的。

总之,是一本了解系统知识不可多得的好书。

学习计算机一定不要想着速成,要下苦功夫,去啃那些经典书和源码,然后自己动手写,我大学整理了一套计算机必读的经典书籍,对于CS学习的同学帮助非常大,且十分系统,现在免费分享给大家:

编程指北:计算机必读的书单(含下载方式)4078 赞同 · 61 评论文章​编辑

C 语言:

  • 《C程序设计语言》

这本书作者就是C语言设计者之一的Dennis M.Ritchie,豆瓣评分高达 9.4,学习C语言的小伙伴,答应我,扔掉手上谭浩强那本书好吗?

  • 进阶套装:《C与指针》、《C专家编程》、《C陷阱与缺陷》

这三本建议搭配服用,反正我是看完这三本才感觉自己对 C 指针掌握得透透的,就不多介绍了,进阶必读。

C++

  • 《C++ Primer》

这本书依然是这样,由于过于经典,没看过这本书大概不好意思说自己是写 C++ 的吧。。。 书里包含了从 C++ 基础、泛型、类设计、容器、IO、模板等方方面面,而且是基于 C++ 11,学 C++ 的同学案头上还没有赶紧去买了哈!
  • Effective 三部曲:《Effective C++》、《More Effective C++》、《Effective STL》

C++ 程序员有两类,一类是看过 Effective 系列,另一类就是没看过。这真不是吹,由于 C++ 过于复杂和魔幻,以至于你看完《C++ Primer》实际上仅仅是能用 C++ 写代码而已,但是其实很多 最佳实践(best practice)可能并不知道,或者说你要去踩更多的坑才能收获书里写的东西,所以不是说不看这几本书不行,而是这是走”捷径“,你懂吧,别人踩坑之后总结的最佳实践,你直接吸收,不香吗? 你说三本太多了,让我选一本推荐? 那真的太难了!手心手背都是肉呀,这三本都是互补的。所以,答应我,要买就一起,好吗?
  • 《STL 源码剖析》和《深度探索 C++ 对象模型》 篇幅太大了,这两本就不截封面了哈,但是绝对经典,懂的都懂~
看完 Primer 和 Effective,你应该已经能够比较熟练的使用 C++了,但是还缺少对 C++ 底层实现机制的认识。比如虚函数表、成员变量布局等,同时对于 STL 库可能也仅仅停留在使用上。 推荐的这两本可以分别完善你在 C++ 底层实现和 STL 源码、原理上的认识。 没啥好说的,这两本面试必备,你懂吧?

Java

对了,我不仅看过很多 C++ 的书,Java 很多经典的也看过,因为大学期间就是 Java 和 C++ 都在学,基本没特意走哪个方向,到后来大三才着重准备 Linux C/C++ 的。我在这是不会推荐 Java 编程思想的,因为我自己尝试看过,太特么枯燥了,放弃了。但是呢,不影响这本书是 Java 领域的圣经,大家感觉兴趣的可以挑战下~

  • 《Head First Java》、《Java 核心技术
定位就是学习 Java 基础、入门打基础的。
  • 《Effective Java》

推荐理由如同上面 C++ 的 Effective 系列一样,不是简单的列知识点,而是带领你去深入思路一些 Why。确定不了解下 Why?
  • 《深入理解Java虚拟机》

周志明老师写的,大概是国内 JVM 原理的布道者,传说中面试阿里 Java 岗必备(背)的书,什么垃圾回收、新生代、老年代、Full GC,总之学习 Java 的绝对有必要看看。
  • 《Java并发编程实战》、《Java并发编程的艺术》
关于 Java 并发编程,这也是一个重点,推荐你看看,这两本书都厚,但是能帮你建立起 Java 并发编程的系统。

网络编程

网络编程这块 Linux C++方向必备,但是 Java 方向也建议学习下,你们用得很多的 netty 下面封装的就是这些玩意:

  • 《Unix环境高级编程》
  • 《Unix网络编程》
  • 《Linux高性能服务器编程》
  • 《Linux多线程服务端编程》
这四本我就不详细介绍了,网络编程认准这四本就完了,没啥好说的,详细的可以去我这篇文章里看看:  https://mp.weixin.qq.com/s/7xANFCFUd528Lch3lqcbRg

算法与数据结构

写到这,有点晚了,明天还要早起搬砖,所以下面的书我就不一一介绍了哈,对于每个方向有需求的小伙伴,直接买就好了,推荐的这些书还是非常经典的,传给你儿子看应该问题不大~

  • 《算法第四版》

这本书强烈推荐,难度适中,但是全面。
  • 《算法导论》
这本书适合收藏~
  • 《啊哈算法》
  • 《剑指offer》
书如其名,找工作的记得看,没找工作的提前看!
  • 《算法图解》
图解,你懂吧~

其它经典书籍:

  • 《设计数据密集应用》- 后端同学强烈推荐
  • 《大型网站技术架构》
  • 《Linux内核设计与实现》
  • 《分布式系统:概念与设计》
  • 《计算机程序的构造和解释》- 说 SICP 也许你会更熟悉一点~ 和 CSAPP 齐名的一本书
  • 《机器学习》 - 西瓜书
  • 《Redis设计与实现》
  • 《高性能MySQL》
  • 《MySQL技术内幕》
  • 《汇编语言》 - 王爽,看过的都说好
  • 《操作系统真象还原》- 如果你想写个 mini os,这本书不可缺
  • 《鸟哥的Linux私房菜》- Linux 操作、运维相关
  • C++进阶:《C++ 模板》、《C++沉思录》、《C++标准程序库》、《C++模板元编程》
  • ...
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值