我的书单

image
很庆幸,工作以来一直保持着阅读的习惯。看了一些书,感觉不错,和同样渴望力量的你分享

1. 计算机基础

深入理解计算机系统 CSAPP

【强烈x2推荐】神一样的存在,推荐排行榜第一。毕业不久,公司给新员工做了次 C 语言培训前的匿名摸底测试,题目不难,但是很多题目要求对计算机底层信息的二进制表示、类型转换原理等基础有着深刻的理解。培训老师说,有的题目只有一个人答对了,我知道那个人就是我 ,那时刚看完第二章。

这本书很系统,适合搭建计算机基础知识框架:从信息的二进制表示、汇编,到存储器层次结构、性能优化,再到链接、信号、异常控制流、虚拟存储器、IO、网络/并发编程等都有涉及。

另外,书里的实验很经典,都是精华:比如写一个 shell、实现自己的 malloc/free、写一个简单的 web 服务器等。刷了三四遍,书翻烂了,常读常新。最近几年没有复习,又忘了不少。

2. C++

生也有涯,知也无涯。如果不能成为多面手,那可以在某一领域做到精专,比如 C++。实在不行,就再多加点限定、修饰,比如成为汽车领域的 C++ 专家 每天进步一点,日积月累,还是可以达到的,至少我是这么相信的。

C++ Primer 第 5 版

【强烈推荐】作为一个 C++ 工程师,我觉得这本书是必读的。

工具书,适合放在手边,拿不准的时候翻翻
缺少std::thread以及 C++ 14 之后标准的介绍
对新人不是很友好,很容易从入门到放弃
这本书我刷了至少三遍,其中前半部分的基础篇至少 6 刷。这本大砖头跟着我到过很多城市,高铁、飞机、星巴克,甚至地铁、公园、快餐店都有他的身影。书已翻烂,常读常新。

Effective C++、More Effective C++

这两本有点老了,很多内容在新的 C++ 标准已不适用,但 Meyers 的书仍然值得一读。

Effective Modern C++

【强烈推荐】Meyers 的书不用多说,现代 C++ 必读。需要一定基础,如果连 C++ Primer 都没有完整看过,看这个会有些吃力。3 刷。

C++之旅(英文版)A Tour of C++

【推荐】出自 C++ 之父,仿佛大神面对面地向你娓娓介绍 C++,深入浅出地告诉你现代 C++ 应该如何使用。很薄的一本,好像没有中文版。2 刷。

C++ 高级编程

知识点很多很杂,但总感觉讲得不够透彻。看起来很快,忘得也很快。适合拿来查漏补缺。我买他主要是为了 C++ 14/17 的部分,作为 C++ Primer 的补充。2 刷。

3. 代码品味

代码大全(英文版)Code Complete

【推荐】这本书从很多方面介绍软件开发,让我对整个软件工程有了一个大体印象。提高代码质量的技巧,让我受益匪浅。有段时间在做性能优化,书里性能优化的两章为我在黑暗中指明了道路。虽然是英文大砖头,读起来还好,基本都说技术相关的词汇,不会有太多生词,为后期阅读英文文档奠定基础。

代码整洁之道 Clean Code

【强烈推荐】告诉你什么样的代码是好代码,更重要的是为什么好,好在哪里。你的代码看起来是否专业,就靠它了。Java 实现,C++ 同样适用。2 刷。

重构——改善既有代码的设计

【推荐】工作的第一个项目,负责更新升级旧项目的 HMI,一边看书学习理论知识,一边用项目实践检验理论,学到了很多重构的技巧。

Head First 设计模式

【推荐】插画很多,看起来比较轻松,问答环节很不错,很多问题也正是我想问的。Java 语言描述,会 C++ 也行,毫无障碍。3 刷:第一遍看完就忘。第二遍看了记住一些,后来在工作遇到设计模式能够识别出来。看第三遍的时候一边看一边回忆项目代码里哪里用了这个设计模式...

4. Linux

LFS(Linux From Scratch)

【强烈推荐】从下载源码开始,编译交叉编译工具链,编译 Kernel,制作文件系统,引导启动...照着做几遍,对 Linux 的认识大幅提升!从此再看 Arch Linux,安装过程可太友好了。在 VMWare 虚拟机上实践过两次 sys-V,但时间久了又忘了。最近又在 VirtualBox、物理机上折腾 systemd 的版本。

Unix 环境高级编程(APUE)

【推荐】POSIX 开发必读,有一定深度,如果和我的工作更紧密一些,我一定会多读几遍!

鸟哥的 Linux 私房菜

不喜欢这本书的语言风格,略显啰嗦。我看的第三版已经有些老旧了。

5. 网络

计算机网络——自顶向下方法

【强烈推荐】适合搭建网络知识框架。网络中的 CSAPP,也包含一些安全、加密相关的基础知识。看到 POP3、SMTP 那一节的时候,自己实验了下,让特朗普给我发了几封邮件,很有意思。这本书也回答了一些困扰我很久的问题,比如:TCP 为什么一定要三次握手,为什么两次握手不行。刷了两遍,意犹未尽。

6. C 语言

比起 C++,我并没有在 C 语言上花费太多时间。一来我把技能点都点在了 C++ 上,二来就语言本身来说,C 比 C++ 简单太多,不信你看 K & R C,就薄薄一小本。

C 语言程序设计现代方法

系统学习的第一本计算机书籍。拿到程序员的 Offer 后,终于明确了未来的方向,于是开始静下心来补基础。看完之后特别后悔,为什么找工作之前没有系统看过一遍。

C Primer Plus

做为上一本的补充,没有完整读完。

C 专家编程、C 陷阱与缺陷、C 和指针

上面三本,并称 C 语言三剑客。看完 C 语言程序设计现代方法之后紧接着就看了 C 专家编程和 C 陷阱与缺陷。后悔,就是非常后悔,为什么不是找工作之前看一遍。

另外,顺便推荐下 K & R C,虽然我没完整看完。

其他

QtQuick 核心编程

工作的第一个项目是基于 QtQuick/QML 的 HMI 开发,那时候关于 QtQuick/QML 的书也不多,这本带着我入门。

原文地址(持续更新)

https://www.cnblogs.com/tengzijian/p/14995093.html

posted @ 2021-07-10 22:32  Zijian/TENG  阅读(521)  评论(1编辑  收藏  举报