程序员都不读书,但你应该读
问答网站stackoverflow.com的一个主要功能体现就是:软件开发人员无需再从书本上学习编程,就像Joel所说的:
程序员看起来都不再读书。市场上编程方面书籍的数量和编程从业人数相比来少的可怜。
2004年在《The Shlemiel Way of Software》一书中Joel也表达了相同的观点:
大部分的人都不读点什么或写点什么。大部分的程序员都不读软件开发方面的书籍,他们不去软件开发方面的网站,他们不去Slashdot参与讨论。
既然现在的程序员都不读书,他们如何学习编程?他们用最原始的方式:捋起袖子就写代码——同时开启第二个窗口来从互联网收集经验和知识。互联网是一部百科全书。获取知识信息更快,更高效,从网上获取编程知识明显是一种更聪明的方法。Doug McCune在Why I Don’t Read Books这篇文章里贴切的写出了他的感受,我相信他描述的这种心情是相当普遍的。
我认为技术图书出版业应该为此承担主要责任:
- 大部分编程书籍都写得很烂。写书出版的门槛,就我个人发现,已经基本上不存在了。图书出版业虽然很热闹,但这并不能说明它能提供比你在广袤的互联网上找到的更好的内容。虽然每年都有成百上千的编程图书上市,但也许可能只有2、3本是值得你花时间去读的。
- 编程书论斤买,而不是论知识量。我们会有这样一种感觉,编程书籍的厚度跟它的内容质量似乎成反比。书的部头越大,里面所承载的有用信息越少。那些动辄上千页的参考书究竟有什么用?你真的会用它来查找吗?拿着都费力。
- 都是面向新手的速成编程书籍。我丝毫没有反对新人进入编程领域的意思。但我从来都是认为“24小时[某种编程语言]速成教程”这类书对我们的这种职业是有害的。这种书都灌输着一种短视的思想,求快,求最简单的省事的做事方法,这导致初学者误入歧途——或就像我喜欢提到的,“PHP”。玩笑!玩笑!
- 编程书籍情化。有些人认为把一大摞厚厚的,看起来很重要的编程书放在案头——基本上没看过——会映衬出是一个水平很高的程序员。正如David Poole曾经有一次在邮件中跟我说的,“这种事情我是绝对不会做的”,说的正是这些编程书籍情化的现象。这也是我经过思考决定拒绝购买Knuth写的《计算机程序设计艺术》一书的原因。我们应该去买有实践价值的书,你真正会去读的书,更重要的,你能拿来实用的书。
作 为一名书作者,我很惭愧。我和别人也合写了一本编程书,而且我并不认为你应该买它。我不是在说反话。我想说的就是字面上的意思。但不管怎样,那并不是一本 很糟糕的书。我对我的书合作者怀有最大的敬意。但你能从网上找到比这本书更丰富的信息。抱着一本死书不放是最不可取、最浪费生命的事。
互联网无疑正加速编程书籍的死亡,但有一些证据显示,甚至早在互联网诞生之前,很少有程序员遍读大量编程书籍。我很吃惊的在《代码大全》一书中看到了这样的段落:
你可以炫耀一下了,因为你在读这本书。你已经学到了比软件产业里大部分人都要多的知识,因为大部分的程序员一年都不会读一本书(DeMarco and Lister 1999)。每天读一点,坚持不懈,你就能成为专业高手。如果你能每两个月读一本好的编程书,大概一周35页,你很快就能对业内的知识有坚实的掌握,能很快让你从周围所有的人中脱颖而成。
我相信早在《Code Complete》1993年第一版时里面就有这样的原话,但我们无法证实,因为没有那一版的书。经过这网上的搜索,发现了Steve McConnell在《人件》中引用的段落:
关于读书情况的统计数字让人非常的泄气:比如,大部分的软件开发人员手头上都没有一本关于他们的工作方面的书籍,更不用说读过一本。这事实让人对这个领域里的工程质量感到担忧。而对于我们这些写书的人,那更是悲剧。
我很痛心的读到reddit上的这些评论,看到人们把stackoverflow.com网站的宗旨使命理解为对编程书籍的否定。怀着一种对当前编程书籍市场复杂的心情,我要说,我喜欢编程书!我这个编程博客就起始于一篇推荐程序员必读书籍的文章开始的。很多我的文章都是在讲述我对于一些经典编程书籍里的核心思想浅显的理解。
如何让这看似矛盾的语句能够调和,如何能统一这动态的爱与恨?你看到了没有,处处都有编程书籍,处处都有编程书籍。
优秀的编程书是没有时间限制的。它们会超越语言的限制,IDE的限制和平台的限制。它们是解释how,而不是why。如果你五年都不想清扫一下你的书架,那请相信我,你买错了编程书。
我的编程书柜是任何东西都换不去的。我无时不刻都在使用它他们。事实上,我写这篇文章时就翻阅了它们数次。
我不想再复述我的这些推荐的读物,因为这些年我一直在拿它们炫耀。
可我必须要号召的是:我最喜爱的五本最重要的编程书,你们每个正在从事编程工作的程序员都应该有拥有——并且要读。这些种子读物,极富实用价值,年复一年,不论我做什么样的编程工作,它们从未贬值。它们值得一读再读,每次我有了更多年的经验,回来重新阅读它们,都会让我对软件工程获得更深更明锐的认识,如果你还没有拥有这些书,那你在等待什么?
想通过手机客户端访问开源中国:请点这里
(本站只作转载,不代表本站同意文中观点或证实文中信息)
相关推荐
程序员面试宝典+读书笔记
自己总结的《高效程序员的45个习惯》,把书中自己感觉较好的段落摘抄下来,稍稍加了点自己的想法,挺好的...
《简明银行会计——程序员视角》读书笔记思维导图
我也能做CTO之程序员职业规划读书总结[张振华.Jack] 程序员的职业规划
对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵...
《C 程序员面试算法宝典》读书笔记模板x.pptx
perl 学习笔记,希望能对大家有帮助 perl 文档 速查手册
程序员面试宝典笔记总结,对于复习基础知识有很大帮主
http://book.51cto.com/art/200906/131809.htm
关于程序员学习程序的SQL经典试读版关于程序员学习程序的SQL经典试读版关于程序员学习程序的SQL经典试读版关于程序员学习程序的SQL经典试读版
左耳多耗子《程序员练级攻略》推荐必读书籍清单(上) 左耳多耗子《程序员练级攻略》推荐必读书籍清单C_C 左耳多耗子《程序员练级攻略》推荐必读书籍清单Java 左耳多耗子《程序员练级攻略》推荐必读书籍清单基础篇 ...
个人读书笔记,学习共享,希望每个苦恼于代码一坨坨混乱不堪的程序员都能学习. * 整洁代码的意义? 可读性,可维护性。 * 如何写出整洁代码? 1.只做一件事 2.不重复 3.有表达力 * 整洁代码的态度要求,要遵守...
读书,尤其是软件方面的书,其实是很累的,可能读一本书不累,但是如果你能每天坚持三个小时认认真真地看书,能够将一本经典之作认认真真读五遍,而且一直认认真真,那你的毅力真地令人佩服,同时,你的汗水带给你...
这本书有多经典就不再赘述了。由于是图片书,所以有点大。不过效果还可以,上面有一些我个人的笔记,相信对阅读有些帮助。建议阅读3遍以上,多多益善。可以作为程序员终身发展的陪伴读物,良友啊。
一种编程语言的重要性并不在于语言本身,而在于这种语言所体现出来的编程思维模式。所以说,并不是你用到的书才去读,读书是一种习惯,一种积累。
1. 第一章针对Java程序员的UML概述 1. UML(统一建模语言)的三个层次: 1. 概念层(Conceptual) 接近人类自然语言 有歧义 无严格的格式 2. 规格说明层(Specification) 3. 实现层(Implementation) 规格...
世界上并不存在速成的终南捷径,但阅读好的技术书籍,尤其是阅读大师们的经典著作,总能收到事半功倍之效。一位优秀的程序员,或许就是一名好的阅读者。好的阅读者,总是知道如何选择好的书籍。书海浩繁,良莠不齐。...
《深度工作》读书分享.pptx
你不能直接控制,也不能在程序中感觉到计算机存在的任何迹象。 2) 堆栈 位于通用RAM(随机访问存储器)中,但通过“堆栈指针”可以从处理器那里获得直接 支持。堆栈指针若向下移动,则分配新的内存;若向上移动,...