- 浏览: 115681 次
- 性别:
- 来自: 天津
文章分类
最新评论
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”
很多程序员响应,他们在推荐时也写下自己的评语。以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书。其实除了前10本之外,推荐数前30左右的书籍都算经典,整理编译这个问答贴,同时摘译部分推荐人的评语。下面就按照各本书的推荐数排列。
1. 《代码大全》 史蒂夫·迈克康奈尔
推荐数:1684
“优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来,就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” —— Joel Spolsky
对于新手来说,这本书中的观念有点高阶了。到你准备阅读此书时,你应该已经知道并实践过书中99%的观念。– esac
2. 《程序员修炼之道》
推荐数:1504
对于那些已经学习过编程机制的程序员来说,这是一本卓越的书。或许他们还是在校生,但对要自己做什么,还感觉不是很安全。就像草图和架构之间的差别。虽然你在学校课堂上学到的是画图,你也可以画的很漂亮,但如果你觉得你不太知道从哪儿下手,如果某人要你独自画一个P2P的音乐交换网络图,那这本书就适合你了。—— Joel
3. 《计算机程序的构造和解释》
推荐数:916
就个人而言,这本书目前为止对我影响醉倒的一本编程书。
《代码大全》、《重构》和《设计模式》这些经典书会教给你高效的工作习惯和交易细节。其他像《人件集》、《计算机编程心理学》和《人月神话》这些书会深入软件开发的心理层面。其他书籍则处理算法。这些书都有自己所属的位置。
然而《计算机程序的构造和解释》与这些不同。这是一本会启发你的书,它会燃起你编写出色程序的热情;它还将教会你认识并欣赏美;它会让你有种敬畏,让你难以抑制地渴望学习更多的东西。其他书或许会让你成为一位更出色的程序员,但此书将一定会让你成为一名程序员。
同时,你将会学到其他东西,函数式编程(第三章)、惰性计算、元编程、虚拟机、解释器和编译器。
一些人认为此书不适合新手。个人认为,虽然我并不完全认同要有一些编程经验才能读此书,但我还是一定推荐给初学者。毕竟这本书是写给著名的6.001,是麻省理工学院的入门编程课程。此书或许需要多做努力(尤其你在做练习的时候,你也应当如此),但这个价是对得起这本书的。
你还不确信么?那就读读第一版的前言或序言。网上有免费的电子版。 - Antti Sykäri
4. 《C程序设计语言》
推荐数:774
这本书简洁易读,会教给你三件事:C 编程语言;如何像程序员一样思考;底层计算模型。(这对理解“底层”非常重要)—— Nathan
5. 《算法导论》
推荐数:671
《代码大全》教你如何正确编程;《人月神话》教你如何正确管理;《设计模式》教你如何正确设计……
在我看来,代码只是一个工具,并非精髓。开发软件的主要部分是创建新算法或重新实现现有算法。其他部分则像重新组装乐高砖块或创建“管理”层。我依然梦想这样的工作,我的大部分时间(>50%)是在写算法,其他“管理”细节则留给其他人…… —— Ran Biron
6. 《重构:改善既有代码的设计》
推荐数:617
我想我不得不推荐《重构》:改进现有代码的设计。—— Martin
我必须承认,我最喜欢的编程语录是出自这本书:任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序。—— Martin Fowler
7. 《设计模式》
推荐数:617
就我而言,我认为四人帮编著的《设计模式》是一本极为有用的书。虽然此书并不像其他建议一样有关“元”编程,但它强调封装诸如模式一类的优秀编程技术,因而鼓励其他人提出新模式和反模式(antipatterns),并运用于编程对话中。—— Chris Jester-Young
8. 《人月神话》
推荐数:588
9. 《计算机程序设计艺术》
推荐数:542
这是高德纳倾注心血写的一本书。—— Peter Coulton
10. 《编译原理》(龙书)
推荐数:462
我很奇怪,居然没人提到龙书。(或许已有推荐,我没有看到)。我从没忘过此书的第一版封面。此书让我知道了编译器是多么地神奇绝妙。- DB
11. 《深入浅出设计模式》
推荐数:445
我知道四人帮的《设计模式》是一本标准书,但倒不如先看看这部大部头,此书更为简易。一旦你了解了解了基本原则,可以去看四人帮的那本圣经了。- Calanus
12. 《哥德尔、艾舍尔、巴赫书:集异璧之大成》
推荐数:437
如果下昂真正深入阅读,我推荐道格拉斯·侯世达(Douglas Hofstadter)的《哥德尔、艾舍尔、巴赫书》。他极为深入研究了程序员每日都要面对的问题:递归、验证、证明和布尔代数。这是一本很出色的读物,难度不大,偶尔有挑战,一旦你要鏖战到底,将是非常值得的。 – Jonik
13. 《代码整洁之道》
推荐数:329
虽然《代码整洁之道》和《代码大全》有很多共同之处,但它有更为简洁更为实际的清晰例子。 – Craig P. Motlin
14. 《Effective C++》和《More Effective C++》
推荐数:297
在我职业生涯早期,Scott Meyer的《Effective C++》和后续的《More Effective C++》都对我的编程能力有着直接影响。正如当时的一位朋友所说,这些书缩短你培养编程技能的过程,而其他人可能要花费数年。
去年对我影响最大的一本书是《大教堂与市集》,该书教会我很有关开源开发过程如何运作,和如何处理我代码中的Bug。 – John Channing
15. 《编程珠玑》
推荐数:282
尽管我不得不羞愧地承认,书中一半的东西我都没有理解,但我真的推荐《编程珠玑》,书中有些令人惊奇的东西。 – Matt Warren
16. 《修改代码的艺术》by Michael Feathers
我认为没有任何一本书能向这本书一样影响了我的编程观点。它明确地告诉你如何处理其他人的代码,含蓄地教会你避免哪些(以及为什么要避免)。- Wolfbyte
同意。很多开发人员讨论用干净的石板来编写软件。但我想几乎所有开发人员的某些时候是在吃其他开发人员的狗食。– Bernard Dy
17. 《编码:隐匿在计算机软硬件背后的语言》
我推荐Charles Petzold的《编码》。在这个充满工具和IDE的年代,很多复杂度已经从程序员那“抽取”走了,这本书一本开眼之作。 – hemil
18. 《禅与摩托车维修艺术 / Zen and the Art of Motorcycle Maintenance》
对我影响最大的那本书是 Robert Pirsig 的《禅与摩托车维修艺术》。不管你做什么事,总是要力求完美,彻底了解你手中的工具和任务,更为重要的是,要有乐趣(因为如果你做事有乐趣,一切将自发引向更好的结果)。 – akr
(编注:关于这本书,也可以看看阮一峰的读后感。)
19. 《Peopleware / 人件集:人性化的软件开发》
Demarco 和 Lister 表明,软件开发中的首要问题是人,并非技术。他们的答案并不简单,只是令人难以置信的成功。第二版新增加了八章内容。 – Eduardo Molteni
20. 《Coders at Work / 编程人生》
一本非常有影响力的书,可以从中学到一些业界顶级人士的经验,了解他们如何思考并工作。 – Jahanzeb Farooq
21. 《Surely You’re Joking, Mr. Feynman! / 别闹了,费曼先生!》
虽然这本书可能有点偏题,但不管你信不信,这本书曾在计算机科学专业课程的阅读列表之上。一个优秀的角色模型,一本有关好奇心的优秀书籍。 – mike511
22. 《Effective Java 中文版》
此书第二版教你如何编写漂亮并高效的代码,虽然这是一本Java书,但其中有很多跨语言的理念。 – Marcio Aguiar
23. 《Patterns of Enterprise Application Architecture / 企业应用架构模式》
很奇怪,还没人推荐 Martin Fowler 的《企业应用架构模式》- levi rosol
24. 《The Little Schemer》和《The Seasoned Schemer》 nmiranda
这两本是LISP的英文书,尚无中文版。美国东北大学网站上也有电子版。
25. 《交互设计之路》英文名:《The Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity》该书作者:Alan Cooper,人称Visual Basic之父,交互设计之父。
本书是基于众多商务案例,讲述如何创建更好的、高客户忠诚度的软件产品和基于软件的高科技产品的书。本书列举了很多真实可信的实际例子,说明目前在软件产品和基于软件的高科技产品中,普遍存在着“难用”的问题。作者认为,“难用”问题是由这些产品中存在着的高度“认知摩擦”引起的,而产生这个问题的根源在于现今软件开发过程中欠缺了一个为用户利益着想的前期“交互设计”阶段。“难用”的产品不仅损害了用户的利益,最终也将导致企业的失败。本书通过一些生动的实例,让人信服地讲述了由作者倡导的“目标导向”交互设计方法在解决“难用”问题方面的有效性,证实了只有改变现有观念,才能有效地在开发过程中引入交互设计,将产品的设计引向成功。
本书虽然是一本面向商务人员而编写的书,但也适合于所有参与软件产品和基于软件的高科技产品开发的专业人士,以及关心软件行业和高科技行业现状与发展的人士阅读。
他还有另一本中文版著作:《About Face 3 交互设计精髓》
26. 《Why’s (Poignant) Guide to Ruby 》
如果你不是程序员,阅读此书可能会很有趣,但如果你已经是个程序员,可能会有点乏味。
27. 《Unix编程艺术》
It is useful regardless operating system you use. – J.F. Sebastian
不管你使用什么操作系统,这本书都很有用。 – J.F. Sebastian
28. 《Practices of an Agile Developer / 高效程序员的45个习惯:敏捷开发修炼之道》
45个习惯,分为7个方面:工作态度、学习、软件交付、反馈、编码、调试和协作。
每一个具体的习惯里,一开始提出一个谬论,然后展开分析,之后有正队性地提出正确的做法,并设身处地地讲出了正确做法给你个人的“切身感受”,最后列出几条注意事项,帮助你修正自己的做法(“平衡的艺术”)。
29. 《Test-Driven Development by Example. / 测试驱动开发》
前面已经提到的很多书都启发了我,并影响了我,但这本书每位程序员都应该读。它向我展示了单元测试和TDD的重要性,并让我很快上手。 – Curro
我不关心你的代码有多好或优雅。如果你没有测试,你或许就如同没有编写代码。这本书得到的推荐数应该更高些。人们讨论编写用户喜欢的软件,或既设计出色并健壮的高效代码,但如果你的软件有一堆bug,谈论那些东西毫无意义。– Adam Gent
30. 《Don’t Make Me Think / 点石成金:访客至上的网页设计秘笈》
取决于你所追求的目标。我喜欢《代码大全》是因纯编程,《点石成金》是一本有关UI设计的卓越书籍。 – Justin Standard
最后在这也不得提一下《Head first》系列的相关技术图书,图文讲解,自带练习,语言也很容易让人理解。比较适合新手阅读。
发表评论
-
struts2+spring3+mybatis3整合
2016-05-28 20:05 461http://blog.csdn.net/afgasdg/a ... -
转 JAVA文件中获取路径及WEB应用程序获取路径方法
2016-04-22 18:06 01. 基本概念的理解 绝对路径:你应用上的文件或目录在 ... -
转 获取web项目的绝对路径的方法总结
2016-04-22 18:06 0原文:http://www.cnblogs.com/duot ... -
转 Java并发编程:Lock
2016-04-22 17:59 0原文:http://www.cnblogs.co ... -
转 线程池调整真的很重要
2016-04-22 17:49 0原文链接: blog.bramp.net 翻译: Impo ... -
java中的IO整理
2016-04-22 14:50 0原文http://www.cnblogs.com/roll ... -
Java nio系列教程
2016-04-22 13:53 517http://ifeve.com/overview/ ht ... -
jvm调优总结
2016-04-22 13:29 321http://pengjiaheng.iteye.com/ ... -
cron表达式
2016-03-22 15:44 452转:http://www.cnblogs.com/l ... -
Java解析html常用的工具
2016-03-14 22:06 5891、jsoup 是一款 Java 的HTML 解析器,可直接 ... -
jvm调优
2016-03-07 19:08 0jvm调优 http://www.360doc.com/co ... -
转 JAVA虚拟机的生命周期
2016-03-07 18:56 452原文http://www.cnblogs.com/li ... -
转 JVM必备指南
2016-03-07 16:13 487原文http://www.importnew.com ... -
jvm简介
2016-03-07 15:52 520原文:http://www.cnblogs.co ... -
jdk;jvm;jre区别
2016-03-06 21:17 567转自http://java-mzd.iteye.com/bl ... -
Java序列化
2016-03-06 15:15 395http://jiangzhengjun.iteye.com/ ... -
转 Java序列化和反序列化
2016-03-06 15:14 543转自http://www.cnblogs.com/x ... -
转 给Java程序猿们推荐一些值得一看的好书
2016-02-21 18:08 604原文http://www.cnblogs.com/x ... -
转 Java 序列化Serializable详解
2016-02-15 15:21 571原文http://www.2cto.com/kf/20140 ... -
java序列化
2016-02-15 14:37 324原文http://xiebh.iteye.com/blog/ ...
相关推荐
【程序员必读非程序书籍】 对于程序员来说,技术能力的提升固然重要,但扩展视野、增强人文素养和社交技巧同样不可忽视。以下是从Stackoverflow和伯乐头条中收集到的29本非编程类书籍,这些书籍深受程序员喜爱,能够...
7. **英文第二版-Programming.Pearls.pdf**:Jon Bentley的《编程珠玑》是程序员必读的书籍之一,它通过解决实际问题来探讨编程技巧和算法优化,对提升编程技能有很大帮助。 8. **欺骗的艺术.pdf**:这个文件名可能...
《Java程序员面试宝典》是一本为准备Java程序员面试者量身定制的指南,它涵盖了Java编程语言的基础、进阶以及面试中常见的问题和解答。这本书的PDF版本因其全面性而备受推崇,对于求职者来说,是提升技能、增强面试...
4. "51aspx源码必读.txt":可能是关于源码阅读的指导文档,提供了理解代码的提示或建议。 5. "readme.txt":通常包含项目的基本信息、安装或运行指南,是了解项目的重要文件。 6. "最新Asp.Net源码下载.url":这是一...
这里推荐的“Java工程师15本必读书籍之软件项目管理”资料包,聚焦于提升Java程序员在项目管理方面的能力。其中包含的《快速软件开发.pdf》一书,是学习软件项目管理的重要资源。 《快速软件开发》这本书可能涵盖了...
《Thinking in Java》是 Bruce Eckel 的经典Java编程著作,第三版的中文版电子书PDF,被誉为学习Java的必读之作。这本书深入浅出地介绍了Java语言的核心概念和技术,为初学者和有经验的程序员提供了丰富的知识。标签...
McConnell在书中进一步指明,谁应该阅读这本书:书中收集的研究和编程经验将帮助读者创建更高品质的软件,并且使工作更加迅速和少有麻烦。这本书会给读者带来洞察力,告诉你过去为何出现问题,并向你展示如何在未来...
《计算机程序》作为程序员必读的经典著作,不仅深入探讨了编程艺术的核心概念,还通过丰富的实例和理论,引领读者理解计算机科学的本质。本书由Harold Abelson和Gerald Jay Sussman共同撰写,两位作者均来自麻省理工...
在C++编程语言的学习过程中,收集高质量的资源是提升技能的关键。以下是一些我认为非常有用的C++学习资源,这些资源涵盖了从基础知识到高级特性的广泛领域。 1. **C++官方文档**:C++标准库的官方文档是了解语言...
《Core Java 2 英文版》是Java编程领域中一本经典的著作,它与《Thinking in Java》并称为程序员必读的Java指南。该书分为两卷,分别为《Fundamentals》(基础篇)和《Advanced Features》(高级特性篇),以CHM...
- **Darby Felton**,DevBots Software Development的联合创始人,认为对于经常遇到书中所呈现的数据库设计选择的软件开发者来说,这本书是必读的。它帮助开发团队理解他们数据库设计的后果,并根据需求、期望、测量...
- **Jim Pleger**:指出本书不仅适合准备Sun Certified Java Programmer考试的读者,也是一本极好的参考书,特别是在收集(Collections)这一章。 - **Anatoly Vorobey**:认为本书相比其他Java书籍,在深度、精确性...
《深入Java虚拟机》是Java开发者必读的经典之作,尤其对于想要深入了解JVM(Java Virtual Machine)机制的程序员来说,这本书提供了丰富的理论知识和实践指导。原书第二版更是对第一版进行了全面更新,涵盖了Java...
书中可能涵盖内存模型、类加载机制、垃圾收集等主题,帮助读者写出更高效、更稳定的代码。 10. **Java新特性**:随着Java版本的更新,新的特性不断引入,比如lambda表达式、函数式编程、模块化系统等。书中会涵盖...
11. **垃圾收集与内存管理**:Java的自动内存管理是其一大特色,书中讨论了垃圾收集的工作机制和内存模型。 12. **设计模式**:最后,本书还引入了常见的设计模式,如工厂模式、单例模式、观察者模式等,帮助读者...
《深入Java虚拟机》是Java开发者必读的经典之作,它详细揭示了Java虚拟机(JVM)的工作原理和内部机制,帮助程序员理解并优化Java应用程序的性能。原书第二版在第一版的基础上进行了更新和扩展,涵盖了更多现代JVM的...
这本书是每个程序员和软件开发者必读的参考书籍,尤其对于想要提升编码技能和理解代码质量的人来说,更是不可多得的资源。 在书中,McConnell详细介绍了软件开发过程中的各个环节,包括需求分析、设计、编码、测试...
《Java编程思想》之所以成为Java程序员的必读书籍,主要得益于其作者Bruce Eckel的深入洞察和精准表述。Bruce Eckel不仅是一位杰出的程序员,更是一位优秀的教育者,他能够将复杂的概念简化,使其易于理解。通过这...
8. **垃圾收集与内存管理**:Java的自动内存管理是其一大特色,书中会讨论如何理解和使用垃圾收集机制,以及如何避免内存泄漏。 9. **泛型**:泛型是Java 5引入的新特性,用于增强类型安全性和代码可读性。书中会...
《Java语言规范第三版》不仅涵盖了以上知识点,还深入讨论了这些概念的细节,如类型转换的规则、异常的传播机制、线程的生命周期等,是每一个Java程序员进阶的必读经典。通过阅读这本书,开发者可以对Java有更深入的...