经典书 ###### IT Core ======= * TCPL:《C 程序设计语言》 * CPPP:《C++ Primer》 * SICP:《计算机程序的构造和解释》 * MOS:《现代操作系统》 * CAAQA:《计算机体系结构-量化研究方法》 * GOF:《设计模式:可复用面向对象软件的基础》 * CLRS:《算法导论》 * TAOCP:《计算机程序设计艺术》 * apue * tcp/ip CSAPP:深入理解计算机系统 ------------------------ * CSAPP 总述 - 知乎 https://zhuanlan.zhihu.com/p/57698890 * https://github.com/Exely/CSAPP-Labs * https://github.com/vonzhou/CSAPP * https://github.com/EugeneLiu/translationCSAPP 编译原理 ======== * 鲸书(Advanced Compiler Design and Implementation) * 龙书(Compilers Principles, Techniques and Tools 组成原理 ======== * 《深入理解计算机系统》(第 3 版) * 《计算机组成与设计:软 / 硬件接口》(第 5 版) IT 设计 ======= * Martin Fowler 的《重构》 * Kent Beck 的《测试驱动开发》,还有一本《测试驱动的面向对象软件开发》 (Growing Object-Oriented Software, Guided by Tests) * 《程序设计实践》(The Practice of Programming)作者是 Brian Kernighan 和 Rob Pike * 《Unix 编程环境》 * 《Unix 编程艺术》Eric Raymond 这样沉浸编程几十年的人写出的作品 * Michael Feathers 的《修改代码的艺术》(Working Effectively with Legacy Code) * 《重构》《设计模式》《重构与模式》 * 《重构:改善代码的既有设计》 * Robert Martin 的《敏捷软件开发:原则、实践与模式》 * Robert Martin 的《代码整洁之道》(Clean Code) * 《解析极限编程》(Extreme Programming Explained):: Kent Beck 那本知名的软件工程之作 当年他写作之时,许多人都在努力探寻瀑布开发方法之外的软件工程方法, 除了极限编程,还有特征驱动开发、水晶开发方法等等, 正是这些开发方法的探索,才有了后面敏捷方法的诞生。 极限编程对于行业最大的贡献在于,它引入了大量的实践, 比如,前面提到过的持续集成、这里提到的 TDD,还有诸如结对编程、现场客户等等。 极限编程之所以叫“极限”,它背后的理念就是把好的实践推向极限。 1. 如果集成是好的,我们就尽早集成,推向极限每一次修改都集成,这就是持续集成。 2. 如果开发者测试是好的,我们就尽早测试,推向极限就是先写测试,再根据测试调整代码,这就是测试驱动开发。 3. 如果代码评审是好的,我们就多做评审,推向极限就是随时随地地代码评审,这就是结对编程。 4. 如果客户交流是好的,我们就和客户多交流,推向极限就是客户与开发团队时时刻刻在一起,这就是现场客户。 - “程序员修炼之道⸺从小工到专家:: 书里覆盖了一名程序员真正面临的一些问题,比如: 与软件腐烂作斗争 避开重复知识的陷阱 编写灵活、动态、可适应的代码 使你的代码 “防弹” 捕捉真正的需求 无情而有效的测试 无处不在的自动化 管理 ==== * 德鲁克:管理的实践⸺管理的总纲 * 德鲁克-卓有成效的管理者 * “管理学大师彼得 · 德鲁克写过一篇著名的文章,叫《自我管理” * 德鲁克-《个人的管理》