英文原文:Programmers Don’t Read Books — But You Should 来源:外刊IT评论
问答网站stackoverflow.com的一个主要功能体现就是:软件开发人员无需再从书本上学习编程,就像Joel所说的:
程序员看起来都不再读书。市场上编程方面书籍的数量和编程从业人数相比来少的可怜。
2004年在《The Shlemiel Way of Software》一书中Joel也表达了相同的观点:
大部分的人都不读点什么或写点什么。大部分的程序员都不读软件开发方面的书籍,他们不去软件开发方面的网站,他们不去Slashdot参与讨论。
既然现在的程序员都不读书,他们如何学习编程?他们用最原始的方式:捋起袖子就写代码——同时开启第二个窗口来从互联网收集经验和知识。互联网是一部百科全书。获取知识信息更快,更高效,从网上获取编程知识明显是一种更聪明的方法。Doug McCune在《Why I Don’t Read Books》这篇文章里贴切的写出了他的感受,我相信他描述的这种心情是相当普遍的。
我认为技术图书出版业应该为此承担主要责任:
- 大部分编程书籍都写得很烂。写书出版的门槛,就我个人发现,已经基本上不存在了。图书出版业虽然很热闹,但这并不能说明它能提供比你在广袤的互联网上找到的更好的内容。虽然每年都有成百上千的编程图书上市,但也许可能只有2、3本是值得你花时间去读的。
- 编程书论斤买,而不是论知识量。我们会有这样一种感觉,编程书籍的厚度跟它的内容质量似乎成反比。书的部头越大,里面所承载的有用信息越少。那些动辄上千页的参考书究竟有什么用?你真的会用它来查找吗?拿着都费力。
- 都是面向新手的速成编程书籍。我丝毫没有反对新人进入编程领域的意思。但我从来都是认为“24小时[某种编程语言]速成教程”这类书对我们的这种职业是有害的。这种书都灌输着一种短视的思想,求快,求最简单的省事的做事方法,这导致初学者误入歧途——或就像我喜欢提到的,“PHP”。玩笑!玩笑!
- 编程书籍seqing化。有些人认为把一大摞厚厚的,看起来很重要的编程书放在案头——基本上没看过——会映衬出是一个水平很高的程序员。正如David Poole曾经有一次在邮件中跟我说的,“这种事情我是绝对不会做的”,说的正是这些编程书籍seqing化的现象。这也是我经过思考决定拒绝购买Knuth写的《计算机程序设计艺术》一书的原因。我们应该去买有实践价值的书,你真正会去读的书,更重要的,你能拿来实用的书。
作为一名书作者,我很惭愧。我和别人也合写了一本编程书,而且我并不认为你应该买它。我不是在说反话。我想说的就是字面上的意思。但不管怎样,那并不是一本很糟糕的书。我对我的书合作者怀有最大的敬意。但你能从网上找到比这本书更丰富的信息。抱着一本死书不放是最不可取、最浪费生命的事。
互联网无疑正加速编程书籍的死亡,但有一些证据显示,甚至早在互联网诞生之前,很少有程序员遍读大量编程书籍。我很吃惊的在《代码大全》一书中看到了这样的段落:
你可以炫耀一下了,因为你在读这本书。你已经学到了比软件产业里大部分人都要多的知识,因为大部分的程序员一年都不会读一本书(DeMarco and Lister 1999)。每天读一点,坚持不懈,你就能成为专业高手。如果你能每两个月读一本好的编程书,大概一周35页,你很快就能对业内的知识有坚实的掌握,能很快让你从周围所有的人中脱颖而成。
我相信早在《代码大全》1993年第一版时里面就有这样的原话,但我们无法证实,因为没有那一版的书。经过这网上的搜索,发现了Steve McConnell在《人件》中引用的段落:
关于读书情况的统计数字让人非常的泄气:比如,大部分的软件开发人员手头上都没有一本关于他们的工作方面的书籍,更不用说读过一本。这事实让人对这个领域里的工程质量感到担忧。而对于我们这些写书的人,那更是悲剧。
我很痛心的读到reddit上的这些评论,看到人们把stackoverflow.com网站的宗旨使命理解为对编程书籍的否定。怀着一种对当前编程书籍市场复杂的心情,我要说,我喜欢编程书!我这个编程博客就起始于一篇推荐程序员必读书籍的文章开始的。很多我的文章都是在讲述我对于一些经典编程书籍里的核心思想浅显的理解。
如何让这看似矛盾的语句能够调和,如何能统一这动态的爱与恨?你看到了没有,处处都有编程书籍,处处都有编程书籍。
优秀的编程书是没有时间限制的。它们会超越语言的限制,IDE的限制和平台的限制。它们不是解释how,而是why。如果你每隔5年就不得不清扫一下书架,那请相信我,你买错了编程书。
我的编程书柜是任何东西都换不去的。我无时不刻都在使用它他们。事实上,我写这篇文章时就翻阅了它们数次。
我不想再复述我的这些推荐的读物,因为这些年我一直在拿它们炫耀。
可我必须要号召的是:我最喜爱的五本最重要的编程书,你们每个正在从事编程工作的程序员都应该有拥有——并且要读。这些种子读物,极富实用价值,年复一年,不论我做什么样的编程工作,它们从未贬值。它们值得一读再读,每次我有了更多年的经验,回来重新阅读它们,都会让我对软件工程获得更深更明锐的认识,如果你还没有拥有这些书,那你在等待什么?
![]() |
![]() |
![]() |
![]() |
![]() |
我的主张,让 stackoverflow.com这样的网站成为这里永恒经典编程书籍的有益补充。没有任何途径,东西,形式能替代这些书籍。
另一方面,如果你不幸是《Perl语言傻瓜书》的作者,那你要留意你的背后,因为我们很明确就是在针对你。
推荐阅读:
在IT行业工作如何获得高薪?选择前沿的技术,把准方向,有技术有人缘 http://www.it51share.com/archives/3520
工作7年,对技术的感悟与理解 http://www.it51share.com/archives/3612
相关推荐
jeff atwood于2004年创办coding horror博客(http://www.codinghorror.com),记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在那里...
高效能程序员的修炼(中文版)pdf part2,Jeff Atwood著,很清晰哦
高效能程序员的修炼(中文版)pdf part1,Jeff Atwood著,很清晰哦
高效能程序员的修炼(中文版)pdf part3,Jeff Atwood著,很清晰哦
jeff Atwood 的高效能程序员的修炼,大小限制,分卷上传,这是第3部分
jeff Atwood 的高效能程序员的修炼,大小限制,分卷上传,这是第二部分
jeff atwood 的高效能程序员的修炼,应为上传文件大小限制,分卷压缩了,这是第一部分
一个可以忍受的程序员和一个伟大的程序员之间的区别不在于他们知道多少编程语言,也不在于他们更喜欢 Python 还是 Java。 关键是他们是否可以交流他们的想法。 通过说服其他人,他们获得了筹码。 通过编写清晰的注释...
高效能程序员的英文版,Effective Programming.More than Writing Code,原汁原味的体验。适合英文还好的同学
像Jeff Atwood(Stack Overflow创始人)这样的都可以忘了使用HttpOnly cookies, sitemaps和cross-site request forgeries,还有哪些可能被遗忘的重要内容? 答案:从一个Web开发者的角度来看,网站的可用性和...
"jeff-atwood.vssettings" 文件是VS2010的配色方案文件,源自知名程序员和博客作者Jeff Atwood。这个配色方案可能包含了对编辑器背景色、前景色、语法高亮颜色、警告和错误提示颜色等一系列设置的定制。导入此....
知名技术博客作家、Stack Overflow创始人Jeff Atwood有三十多年的职业编程经验,通过他的切身经历分享,帮助读者成长为高效能程序员。 会议是浪费工作时间的最佳去处 今天你开了多少个会?这个星期呢?这个月呢?再...
配置文件"jeff-atwood.vssettings"可能是由知名程序员或开发者Jeff Atwood定制的,它包含了对VS界面、快捷键、字体、颜色主题、工具窗口布局等一系列个人偏好的设置。 在VS2008中,导入此配置文件可以快速调整IDE到...
StackOverflow作为全球最大的程序员社区之一,其创始人Jeff Atwood的推荐图书具有重要的参考价值。本文将深入解析这些书籍的关键知识点,帮助读者更好地理解每本书的价值所在。 #### 二、《代码大全2》 - **作者**...
一个良好的配色方案不仅能够减少视觉疲劳,还能帮助程序员更好地理解和区分代码结构,提高代码阅读的舒适度。以下是对提供的几个配色方案的详细解释: 1. **2008-DesertNights.vssettings**: "Desert Nights" ...
5. "jeff-atwood.vssettings":这个名字可能来源于Jeff Atwood,他是Codeplex和Stack Overflow的联合创始人,他可能分享了自己的个人配色方案,这个方案可能以其独特性和实用性著称。 6. "HumaneStudio.vssettings...
Jeff Atwood 认为,市长 Bloomberg 学习编程的举动并不明智,因为他的工作职责与编程无关。编程不应该被等同于基础的生活技能,每个人都有自己的专长,过分强调编程可能会导致教育资源的浪费。 尽管如此,Mike ...