1.《人月神话:软件工程论文集》(周年第二版) 作者:**Frederick Brooks, Jr.
这是一本比较古老的书(它的第一版诞生于1975年!),本书在我的书架上还保存着一本,因为它所传达的理念到现在任然适用。复杂的项目管理仍然是一项很大的挑战,本书不仅适用于软件工程,在其他技术领域也同样适用,比如微机处理器设计。事实上本书在很多编程畅销书排行榜上稳居前列,同时很多大学也在用它作为教材使用。
2.《计算机程序设计艺术》 作者:Donald Knuth
理解为什么现代计算机程序代码都是以这样一种形式存在是每一个计算机科学家都应该学习的东西。这一整套书详细的阐述了这方面的原因,它的信息量太大,以至于无法在一卷中覆盖所有信息。因为Knuth在计算机程序设计方面具有至关重要的作用,所以在许多计算机课程中会涉及到他的理论。更重要的是,Kunth的理论影响了几乎所有的现代技术领域,因为他帮助开发的许多算法能用于其他领域的研究,包括数据科学领域。
3.《算法导论》第三版 作者:Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein
许多以团队所编写的书会缺乏专注点而且会包含相互矛盾的观点,但本书却没有这个问题。相反,本书详细和全面的阐述了将算法应用于计算机科学和其他以数学为基础的技术中的观点。它对于算法的严谨性能够让你很好的理解为何一种算法适用于某种特定的方式。
4.《编码:隐匿在计算机软硬件背后的语言》 作者:Charles Petzold
许多现代的程序员并不完全理解他们编写的代码与底层硬件之间的联系。这是因为编译器、类库和其他工具将弱化了这层联系使它变得不可见。但是那些设计语言、编译器、类库和其他工具的人通常对于代码和底层硬件的关系有很好的理解,因为他们已经代劳了理解代码的工作。这本书的目的就是用于阐述这层联系。
5.《修改代码的艺术》作者:Michael Feathers
在现实世界中,许多开发者在更新其他人所写代码花的时间远远超过编写新代码所花的时间。不幸的是,大多数学校和书籍的切入点都是从开发者编写新代码开始的。这本书可以帮助开发人员在旧代码中产生更好的应用程序。本书还更进一步的帮助开发者在修改代码时得到更深层的见解,通过这种方式能够让开发者再编写新代码时写出很酷的程序。
6.《人件集:人性化的软件开发》(第三版) 作者:Tom DeMarco,Timothy
我尽量在我的书中解释应用程序在于人,而不在于软件或者是硬件。当一个开发团队过于沉浸于技术时,这个应用程序基本宣告失败了。这本书主要讨论人——关于如何管理团队并充分利用成员的技能来创建能取悦用户的应用程序。
7.《程序员修炼之道》 作者:Andrew Hunt ,David Thomas
是什么决定了一个程序员成为一名能使代码变成魔法的艺术家,还是平庸的码农?本书阐述了其中的差别。更重要的是,本书提供了大量实用的编程技巧,来帮你从一个码农转变为软件大师。新鲜和有趣的写作手法,让本书非常易于阅读。