Jeff Atwood倾情推荐——程序员必读之书

英文版:《Code Complete 2》
中文版:《代码大全(第二版)》
作者:Steve McConnell
译者:金戈  汤凌  陈硕  张菲
出版社:电子工业出版社
出版日期:2007 年8月
Jeff Atwood的推荐:Steve McConnell的这本书是软件开发领域里的《烹饪的乐趣》。如果你对这本书感兴趣,说明你热爱你现在的工作,你对你正在做的事情是认真的,并且你想不断地提升自己。Steve在这本书里指出,普通程序员每年所读的技术书籍不足一本。仅仅只需阅读这本书,你就有可能超越身边90%的程序员。这绝对是个好主意!

我非常喜欢这本书,以致于我在给自己的博客网站取名的时候也受到了它的启发——我把我们应该避免去做的事情都打上了“Coding Horror”的标签。没有比编程方面的恐怖案例更能给人带来乐趣了。但如果你不得不自己去应对某些恐怖,那么你的乐趣就会荡然无存。请你帮自己一个忙吧!要想读书,这本书是首选;要给身边其他的程序员推荐图书,这本书也是首选。

英文版:《The Mythical Man-Month》
中文版:《人月神话》
作者:Frederick P.Brooks Jr.
译者:UML China翻译组 汪颖
出版社:清华大学出版社
出版日期:2007 年9月
Jeff Atwood的推荐:毫无疑问,这是我们领域里惟一的一本经典图书。如果你还没读过,你应该觉得丢脸!

你知道关于IBM的那个废弃已久的OS/360系统及其开发团队的故事吗?如果你读了《人月神话》还不明白OS/360那回事,那你就是白读了!这本已经出版了30多年的图书有力地证明了一个观点:计算机也许会变,但人不会变。

花点时间读一读这本经典之作是值得的,跟你埋头苦读上千页的技术资料比起来,它一定能给你带来更大的效益。

 

英文版:《Peopleware》
中文版:《人件》
作者:Tom DeMarco / Timothy Lister
译者:UML China翻译组
出版社:清华大学出版社
出版日期:2003年6月
Jeff Atwood的推荐:如果你曾经亲眼目睹一支全明星运动队在一个糟糕教练的带领下表现平平,你一定会喜欢这本书。不管你有多少“编程高手”,如果他们相互之间没有沟通,或者互不认同,结果你还是会失败。这本书还指出,不管开发人员多么有天赋,如果他们持续不断地受到各种干扰(哪怕干扰很细微),没有人能在这种情况下有效地开展工作。说白了,开发人员在人际技能方面并不见长,但具有讽刺意味的是:项目成功与否常常取决于人际的问题。如果你渴望成为真正的“团队领导”(而不是徒有虚名),你必须好好地读一读这本书。

尽管这本书里充斥着绝妙的、完全正确的观点,但它也暗示了:员工需要对工作场所有一定的控制权——这在大部分公司里完全是痴心妄想。不过,至少你会认识到,工作环境或你的团队有时候就是症结所在。更重要的是,你将学会如何去处理这些情况。

英文版:《The Design of Everyday Things》
中文版:《设计心理学》
作者:Donald A.Norman
译者:梅琼
出版社:中信出版社
出版日期:2010年3月
Jeff Atwood的推荐:开发软件可能给人带来难以置信的挫折感,因为过程中有太多的陷阱。我们所做的事中很多都是带有预防性质的:在一件事情还没出错之前,先试想它将会出错。这能使人心智衰弱,而且最终可能以一些负面的方式让人“心想事成”。在向不懂技术的人解释的时候,我有时候会说:这就像制造一块有1000个零件组成的手表一样,在哪怕最轻微的震动之下,任何一个零件都可能随机出错。这真是一份“好差事”啊!

毫无疑问,设计软件是很难的。但是,设计一扇门也是很难的。不管是热门的SQL引擎,还是卑微的鞋子,设计的细微差别会渗入你能触摸到的每一个角落。“魔鬼藏在细节之中。”读过这本书之后,你将对这句话有一个全新的体会。如果设计一扇门不像我们当初想的那样不费吹灰之力,也许我们也该停下来想一想了:为什么我们设计不出完美的软件呢?

英文版:《Programming Pearls》
中文版:《编程珠玑》
作者:Jon Bentley
译者:谢君英   石朝江
出版社:中国电力出版社
出版日期:2004年3月
Jeff Atwood的推荐:对于是否要推荐这本书,我曾经犹豫过,因为它包含了一些非常底层的编码技术。但这本书里同时也蕴藏了相当多的软件工艺方面的“珍珠”,这使得它仍然值得所有开发者都去读一读。任何包含下面这种图片的图书都是很有价值的宝书。它就用来展示TRS-80与DEC Alpha之间48n比n3的算法复杂度差异吗?兄弟,拜托……没有比那更好的了!如果你不能幸运地跟一位大师级的程序员并肩而坐,并且在一起工作大约一年的时间,那么买一本《编程珠玑》就是退而求其次的最佳选择了。这本书是集体智慧的结晶,凝聚了很多技能娴熟的程序员的贡献,并最终汇编成了一个个精粹而容易被人理解的专题栏目。

我不想骗你!其实,这本书的很多章节你都可以忽略。比如说,像第11、13和14章谈到的排序、堆或者哈希算法,当今有很多成熟的库早已实现了这些基本技术,我想不出任何理由你需要去把它们重新实现一遍。但对于每一个枯燥的课本练习,这本书的确给出了一些实用的建议。你尽可以快速翻阅这本书,碰到有代码的部分就跳过去……听我的准没错!第7章“封底计算”是要点,那也许是我曾见过的在“估算”这个专题上最好的论述。它还用很大的篇幅去解释了那些疯狂的面试问题,而一些公司往往热衷于用那些问题来考验我们……

如果你还在犹豫,建议你到网上去读一读这本书的样章。最近,我把从“珍珠字符串”那一章学到的东西付诸实践,我在生成合成数据填入一个空数据库的时候使用了马尔科夫链——这也证明了在“封底计算”那一章谈到的性能估算技术。

英文版:《The Pragmatic Programmer: From Journeyman to Master》
中文版:《程序员修炼之道:从小工到专家》
作者:Andrew Hunt / David Thomas
译者:马维达
出版社:电子工业出版社
出版日期:2011年1月
Jeff Atwood的推荐:这本书让我想起了《编程珠玑》里的很多内容,但它事实上比《编程珠玑》更好,因为它不再拘泥于代码。作者摆脱了代码的束缚,转而专注于真实世界里已经被证明切实可行的方法,并把它们统统都收录进了这本书。严格来说,不是所有的事情都跟编程有关系。比如,自问“我为什么要做这件事?它究竟值得去做吗?”并不算是创意性思维,你恰恰应该每天都这么问问自己,以使你和你的同事始终保持清醒的头脑。这也正是这本书的可贵之处!

如果你想对这本书做更多的了解,你可以去看一看我在博客网站上发表的那篇“A Pragmatic Quick Reference”。那篇文章很好地概括了这本书的内容,它也可以作为你“修炼”时候的便捷参考。

英文版:《Mastering Regular Expressions》
中文版:《精通正则表达式》
作者:Jeffrey E.F.Friedl
译者:余晟
出版社:电子工业出版社
出版日期:2012年7月
Jeff Atwood的推荐:UNIX因为其复杂、令人费解而臭名昭著。正则表达式与它同病相怜。

我应该算得上是“保持通俗易用”俱乐部的正式会员,但我要为正则表达式破一回小例。如果正则表达式书写得当的话,它们可以在字符串操作方面为你节省大把大把的时间。我还从来没碰到过一个正则表达式派不上用场的项目呢!

一旦你钻进正则表达式的世界,你可能会沉醉于它们惊人的力量和潜能。请记住,绝对的权力导致绝对的腐败。不过,它也绝对可以让你酷毙了!

转:Jeff Atwood倾情推荐——程序员必读之书的更多相关文章

  1. Jeff Atwood倾情推荐——程序员必读之书

    英文版:<Code Complete 2>中文版:<代码大全(第二版)>作者:Steve McConnell译者:金戈  汤凌  陈硕  张菲出版社:电子工业出版社出版日期:2 ...

  2. 9本java程序员必读的书

    来源:http://mp.weixin.qq.com/s?__biz=MjM5NzA1MTcyMA==&mid=202904638&idx=2&sn=21dd20438e32a ...

  3. 9本java程序员必读的书(附下载地址)

    本文列出的9本书在Java程序员界都是被认为很棒的书.当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java.这个问题也就表明,相对于其他的教程和博客,Java书籍还 ...

  4. java 书籍推荐 JavaEE程序员必读图书大推荐

    java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...

  5. C程序员必读的 3 本书

    C程序员必读的 3 本书 原创: Martin 老师  公众号:零基础零障碍学习C语言 勿用质疑,今天来看这篇文章的朋友都是准备学好C语言的朋友,大家想学好C语言的迫切性,就好比Martin老师等着元 ...

  6. (C#)程序员必读的一些书籍

    前言 ·貌似公司里很著名的一句话,在这里套用过来了,WP研发工程师,首先是WPF/SL研发工程师,WPF/SL研发工程师首先是是个C#研发工程师,C#研发工程师首先Windows研发工程师.Windo ...

  7. JobDeer 的《程序员必读的职业规划书》

    JobDeer 的<程序员必读的职业规划书> 关键字 持续性,人生规划,职业规划 概念 职业规划三部分: 职业定位 目标设定 通道设计 职业价值论: 能为公司做什么 同样的能力再不同公司价 ...

  8. JavaEE程序员必读图书大推荐

    下面是我根据多年的阅读和实践经验,给您推荐的一些图书: 第一部分: Java语言篇 1 <Java编程规范> 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之 ...

  9. Java程序员必读的9本书

    本文列出的9本书在Java程序员界都是被认为很棒的书.当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java.这个问题也就表明,相对于其他的教程和博客,Java书籍还 ...

随机推荐

  1. C/C++ 调用qsort/sort 对字符数组排序的cmp函数写法

    这个问题屡次碰到解决之后再次遇到又忘记怎么弄了,这次打算彻底搞清楚. ·C 首先对所谓字符数组的排序应该是对(char)*a[]数组而非(char)a[][]进行的排序,后者是无法直接调用qsort实 ...

  2. Cow Bowling

    Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15585 Accepted: 10363 Descrip ...

  3. Crashing Robots 分类: POJ 2015-06-29 11:44 10人阅读 评论(0) 收藏

    Crashing Robots Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8340   Accepted: 3607 D ...

  4. Scrapy学习教程

    http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html 在线学习教程: http://learnpythonthehardway ...

  5. windows7安装phpnow Apache非管理员权限不能操作Windows NT服务的解决方法

    科普一下:PHPnow 是什么?        Win32 下绿色免费的 Apache + PHP + MySQL 环境套件包.简易安装.快速搭建支持虚拟主机的 PHP 环境,可以安装 Discuz! ...

  6. File.separator

    摘自:http://blog.csdn.net/chindroid/article/details/7735832

  7. linux下的文件系统

    转http://www.cnblogs.com/yyyyy5101/articles/1901842.html 谈谈个人对于文件系统的认识,其实这也体现了计算机操作系统的抽象:你不用管计算机中的文件如 ...

  8. Android 4.4之后删除短信进行处理

    android 4.4删除短信 android 4.4之后非默认的短信应用已经没有办法删除短信了.像以前那样用如下方法是不会没法删除短信的(即使在xml中配置了短信的读写权限),同时也不会有报错或其他 ...

  9. SqlSever基础 union 与 union all的区别,即 重复项是否全部显示

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  10. :判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。

    package C; public class Sushu { public static void main(String[] args) { int sum=0; for (int i = 101 ...