每位程序员应阅读的最具影响力的单一书籍是什么?

Not*_*elf 1439 resources

如果你可以回到过去并告诉自己在开始时作为开发人员阅读一本特定的书,那本书会是哪本书?

我希望这个列表可以变化,涵盖范围广泛.

要搜索:使用右上角的搜索框.要搜索当前问题的答案,请使用inquestion:this.例如:

inquestion:this "Code Complete"
Run Code Online (Sandbox Code Playgroud)

Jus*_*ard 1746

  • 由Steve McConnell编写的Code Complete(第2版)
  • 务实的程序员
  • 计算机程序的结构与解释
  • Kernighan和Ritchie 的C编程语言
  • Cormen,Leiserson,Rivest&Stein的算法简介
  • 四人帮的设计模式
  • 重构:改进现有规范的设计
  • 神话人月
  • 计算机程序设计艺术由高德纳
  • 编译器: Alfred V. Aho,Ravi Sethi和Jeffrey D. Ullman的原理,技术和工具
  • Gödel,Escher,Bach by Douglas Hofstadter
  • 清洁代码: Robert C. Martin 的敏捷软件工艺手册
  • 有效的C++
  • 更有效的C++
  • Charles Petzold的CODE
  • 编程珍珠由Jon Bentley 编写
  • Michael C. Feathers 有效地使用遗产代码
  • Demarco和Lister的Peopleware
  • Peter Seibel的" 工作中编码员"
  • 当然,你是在开玩笑,费曼先生!
  • 有效的Java第2版
  • Martin Fowler 的企业应用架构模式
  • 小计划者
  • 经验丰富的计划者
  • 为什么(Poignant)Ruby指南
  • 囚犯正在运行庇护:为什么高科技产品让我们疯狂以及如何恢复理智
  • Unix编程的艺术
  • 测试驱动开发: Kent Beck的例子
  • 敏捷开发人员的实践
  • 不要让我思考
  • Robert C. Martin的敏捷软件开发,原则,模式和实践
  • Eric Evans的领域驱动设计
  • 设计心理学由唐纳德诺曼
  • Andrei Alexandrescu的现代C++设计
  • 最佳软件写作由Joel Spolsky 撰写
  • Kernighan和Pike 编程的实践
  • 务实的思考和学习:重构你的湿件由安迪·亨特
  • 软件评估:史蒂夫麦康纳揭开黑人艺术神秘面纱
  • Chad Fowler 的充满激情的程序员(我的工作去了印度)
  • 黑客:计算机革命的英雄
  • 算法+数据结构=程序
  • 编写固体代码
  • JavaScript - 好的部分
  • 通过37个信号获得真实
  • Karl Seguin 的编程基础
  • 计算机图形学:C的原理与实践(第2版)
  • 由Bruce Eckel 用Java思考
  • 计算系统的要素
  • Joshua Kerievsky 对模式重构
  • Andrew S. Tanenbaum的现代操作系统
  • 注释图灵
  • 唐纳德诺曼让我们变得聪明事情
  • 克里斯托弗亚历山大的永恒建筑方式
  • 截止日期: Tom DeMarco 关于项目管理小说
  • Stroustrup 的C++编程语言(第3版)
  • 企业应用架构模式
  • 计算机系统 - 程序员的视角
  • C#中敏捷原则,模式和实践由Robert C. Martin撰写
  • 测试的指导下,不断发展的面向对象软件
  • Brad Abrams的框架设计指南
  • David West博士的对象思考
  • 由W. Richard Stevens 在UNIX环境中进行高级编程
  • 黑客和画家:计算机时代的重大创意
  • Tracy Kidder 的新机器灵魂
  • CLR通过C# by Jeffrey Richter
  • 克里斯托弗亚历山大的永恒建筑方式
  • Steve Metsker 在C#中设计模式
  • 刘易斯卡罗尔的爱丽丝梦游仙境
  • 禅宗和 Robert M. Pirsig 的摩托车维修艺术
  • 关于面 - 交互设计的要点
  • 每个人都来: Clay Shirky 没有组织的组织力量
  • 编程之道
  • 自然的计算美
  • 编写 Steve Maguire的固体代码
  • 菲利普和亚历克斯的网络出版指南
  • 面向对象的分析与设计与 Grady Booch的应用
  • 约书亚布洛赫的有效Java
  • NJ Cutland的可计算性
  • 编程的主人
  • 道德经
  • 富有成效的程序员
  • 凯文米特尼克的欺骗艺术
  • 职业程序员: Christopher Duncan 为一个不完美世界游击战术
  • 人工智能规划范式:Common Lisp中的案例研究
  • 厄运大师
  • 由Andy Hunt和Dave Thomas与Matt Hargett 在C#中使用NUnit进行语用单元测试
  • George Polya 如何解决这个问题
  • 保罗科埃略的炼金术士
  • Smalltalk-80:语言及其实现
  • 编写安全代码(第2版)作者:Michael Howard
  • Philip Wadler和Richard Bird的功能编程简介
  • 没有虫子!作者:David Thielen
  • 由Jason Freid和DHH 重做
  • JUnit in Action

  • 本书的问题在于,对于初学者来说,它并没有真正意义,因为这些概念有点先进.当您准备好阅读它时,您应该已经知道并练习了本书中99%的概念. (119认同)
  • 我读了*Code Complete*我职业生涯的3年.我没有参加过软件工程课程,也没有参加过编程语言课程,但是参加过CS课程.这是迄今为止我读过的最好的单书,可以成为更好的程序员.它不会让你成为专家,但它会让你不仅仅是一个修补匠. (76认同)
  • 这就是常识建议的处理方式,就像本书中提到的那样.每隔一段时间你就需要提醒他们重新排队. (57认同)
  • *代码完成*中有很多有用的信息,但它隐藏在夸张,华夫饼干和重复之中,这使得它难以阅读. (19认同)
  • *代码完成*是一本很好的书,如果你在大学也许.如果您有至少1年的编程经验,那就是总计. (16认同)
  • Code Complete基本上是关于软件构建.Comp sci程序不是.这本书在学校外的关键时刻填补了空白. (12认同)
  • 我完全不满意Code Complete.我讨厌使用过度使用的PGism,但是它陷入了Blub.这本书的大部分内容与我无关. (10认同)
  • 我不会标记*Code Complete*是每个程序员应该阅读的最有影响力的.这当然值得一读,但我认为它不值得宗教追随...... (9认同)
  • @chaiguy推荐这本书的一个原因是[来自世界着名程序员的优秀评论](http://cc2e.com/Default.aspx?hid=338).人们喜欢Martin Fowler,Grady Booch,Jeffrey Richter,Mike Gunderloy,John Vlissides(设计模式的合着者),Jon Bentley,[Joel Spolksy](http://www.joelonsoftware.com/navLinks/fog0000000262.html),软件开发杂志,IEEE微软杂志,Windows技术期刊,IEEE计算机杂志...我同意,如果你是一位已经拥有多年经验的专家,你可能无法从中获益.但这不是这个问题的重点. (9认同)
  • 对于所有的nay-sayers ...*Code Complete*让我看到了这样一个事实,即我不仅要为自己编程,而且当其他人跟随我时,他们可以轻松阅读我的代码.可读性,伪代码设计,方法应该只有一个目的,基本上所有BASICS都是一个优秀的程序员应该做的.HENCE,我会在我的职业生涯开始时读到这篇文章(比我早1 - 2年). (8认同)
  • 我读了Code Complete(第一版)大约15年的职业生涯.这是我读过的第一本书*为什么*代码应该以某种方式编写.我不知道如果我在我的职业生涯早期阅读它,在亲自体验所讨论的一些问题之前,我是否会赞赏它. (7认同)
  • @Bogdan - 我完全不同意.虽然它对初学者很有用,但如果没有几年的经验,很多建议很难理解.对于初学者,请注意您需要OO编程的基础,以遵循许多章节.该文通常假设您是OO程序员. (7认同)
  • 一些评论指出,具有一年以上经验的程序员应该了解并实践*Code Complete*中的概念.我同意,他们真的应该*,但这并不意味着他们真正了解和实践它们.阅读这本书可以提高实际发生的可能性.也没有必要阅读所有内容,因为您可以阅读关键点和清单,并阅读更多关于您不理解或不同意的观点.我特别喜欢使用它作为快速参考,例如检查深度控制结构的解决方案列表. (6认同)
  • 我们曾经在一家开发商店打电话给*Code Complete*"圣经"."嘿,你需要参考圣经,你的方法命名很糟糕." (5认同)
  • 它不适合初学者.大多数事情都说,只有经验丰富的程序员IMO才能完全理解它们的影响.您需要设计十几个框架才能完全了解这个良好实践的百科全书.我确实同意这本书有点夸张和重复,但这与它所呈现的见解没有任何关系.它的教学内容...... (5认同)
  • *代码完成*被高估了.对于那些做了几年专业编程的人来说,这基本上是多余的.此外,如果不是所有的重复和填充物,它可能会减少一半. (5认同)
  • 本书应该是每个程序员参考的一部分.我会把这需要读取CS的学位! (4认同)
  • 第1版和第2版之间存在很大差异.第一部分是关于详细的防御性代码,第二版似乎只是"大设计前沿"的争论 (4认同)
  • 我认为这本书不仅适合初学者.当你作为一名大四学生阅读时总会有不同的理解,如果没有,那么确认你知道所有的"基础知识"总是很好的. (3认同)
  • 我在CS研究的最后一年阅读它,这是阅读它的最佳时间,研究期间涵盖了大多数主题,但这是一个很好的回顾,如果你愿意的话,还有很多参考资料可以深入探讨.关于设计的第5章可以在网站上免费获得,试试吧,对我来说这是最有趣的章节之一 (2认同)
  • 大多数计算机书籍要么非常集中,要么是由推销员宣传本月的灵丹妙药,并附有"获得认证"的指南.本书可以吸引那些了解编程并教他或她实用技术的人,这些技术教会如何在现实世界中编写实际完成的应用程序. (2认同)
  • 在此建议的背面买了*代码完成*.我印象非常深刻.史蒂夫麦康奈尔有一个很好的方式来解释事情 - 耐心,准确,并善用有用的类比.也许有些人会觉得这本书太简单而且缺乏深度(正如有些人已经在这里说过的那样).但对于像我这样的凡人来说,它已被证明是一种宝贵的资源. (2认同)

Jas*_*ing 9

K&R

@Juan:我知道Juan,我知道 - 但是有些事情只能通过实际掌握手头的任务来学习.整天在抽象的理想中说话只会让你成为一名学者.正是在抽象的应用中,我们才真正理解它们存在的原因.:P

@Keith:很好地提到Alan Cooper的"囚犯正在逃避庇护" - 这是一个让人大开眼界的开明者,自从我读到这本书后,任何与我合作过的开发者都听到我提到它所支持的想法.+1


Mic*_*ent 9

人工智能编程范式:Peter Norvig的Common Lisp案例研究

在此输入图像描述

我开始阅读它是因为我想学习Common Lisp.当我中途休息时,我意识到这是迄今为止我读过的关于编程的最好的书.


Tar*_*ski 9

计算机科学家的离散数学http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

JK Truss 为计算机科学家提供离散数学.

虽然这不教你编程,但它教你每个程序员都应该知道的基础数学.你可能还记得从大学这个东西,但是说真的,做谓词逻辑将提高你的编程技能,你需要学习集理论,如果你想使用集合编程.

这里确实有很多有趣的信息可以让你以不同的方式思考问题.它很方便,只是偶尔拿起来学习一些新的东西.


Nic*_*cki 9

系统论:系统如何工作,特别是它们如何失败.让它用得便宜.但是,在你完成一些失败的项目之前,你可能不会得到幽默.

这本书的美丽是版权年.

可能是书中提出的最深刻的"法律":

基本故障模式定理(FFT):复杂系统通常以故障模式运行.

这个想法是,在任何给定的软件中都存在由其他部分的故障或其他部分的验证掩盖的故障部分.查看Therac-25辐射机的真实示例,其软件缺陷被硬件故障屏蔽.当硬件故障被移除时,那些年未被发现的软件竞争条件导致该机器造成3人死亡.


dar*_*nne 9

最终软件工艺

替代文字http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg

本书解释了很多关于软件工程,系统开发的内容.理解不同类型的产品开发之间的区别也非常有用:Web VS shrinkwrap VS IBM框架.人们在设想瀑布模型时会想到什么?阅读本文,我们将变得清晰(希望如此)


tr9*_*9sh 9

我最喜欢的一个是Hacker's Delight,因为阅读和教育一样有趣.

我希望第二版即将发布!


Tru*_*ill 9

极限编程解释:肯特贝克拥抱变革.虽然我不提倡硬件XP或高速公路上的软件开发,但我希望在我职业生涯的早期就已经介绍过本书的原理.单元测试,重构,简单性,持续集成,成本/时间/质量/范围 - 这些改变了我对开发的看法.在敏捷之前,这完全是关于调试器和对变更请求的恐惧.在敏捷之后,那些恶魔并没有那么大.


RD1*_*RD1 9

编程的实践.作者:Brian W. Kernighan,Rob Pike.

这里显示的风格非常好 - 代码本身就说明了,整本书遵循KISS原则.个人不是我选择的语言,但仍然对我有影响.


Dav*_*rke 9

类型和编程语言由Benjamin C Pierce全面理解编程语言的基础.


Rya*_*ger 9

数据库系统概念是您阅读有关理解良好数据库设计原则的最佳书籍之一.

替代文字


lad*_*kie 9

从头开始编程.它在互联网上免费.这本书教我AT&T asm.它很容易阅读.

替代文字


nlu*_*oni 8

@Peter Coulton - 你不读Knuth,你研究它.

对我而言,我的工作...... 纯粹的功能数据结构非常适合思考和开发功能语言.


Lar*_*ien 8

托马斯弗里德曼的"世界是平的".

卓越的编程需要投入精神能量,并致力于与医学或法律专业相媲美的持续学习.它只支付了这些职业支付的一小部分,更不用说支付给进入金融领域的数学精明的工资.构建代码的工资正在逐渐下降,因为对于大多数经济体中的智能和自律而言,这是一种相对容易的职业.

编程已经被削弱到支付低于管道的程度.管道不能"离岸外包".您无需每隔一年支付2395美元参加专业水管工会议,因为他们有权获得一套全新的管道技术,这将花费您一年的时间来学习.

如果你生活在北美或欧洲,年轻,聪明,编程不是理性的职业选择.绝对涉及编程的企业.学习业务,了解编程以改进您的BS探测器:辉煌.但是,将精神能量的大部分用于掌握图书馆,数据结构和算法?只有编程对你来说比经济选择更重要,才有意义.

如果你喜欢编程,并且因为这个原因打算将它作为你的职业生涯,那么你应该对那些已经并将继续的力量形成一种冷漠的理解,使其成为一种更难以谋生的职业. ."世界是平的"不会教你如何命名你的变量,但它会让你沉浸在已经到来的经济现实中6或8小时.如果你能阅读它,而不是害怕,那么就去购买"Code Complete".


Tah*_*ine 8

替代文字

去年我参加了一些课程.我读

创新者的困境(颠覆性技术)
神话人月(管理软件)
跨越鸿沟(启动)
数据库管理系统,COW书籍
编程C#,OSTRICH书开始iPhone开发,GRAPEFRUIT

每本书都令人惊叹,但Clayton Christensen(1997 !!!)的创新者困境真的是一本很棒的书,让我真正想到了现代软件世界.所面临的挑战是颠覆性技术,以及磁盘驱动器公司和非技术公司如何总是被新的,改变游戏规则的技术所破坏.在考虑谷歌(可能是最大的"网络"公司)时,它给了一个新的视角.为什么他们有他们的手在一切?这是因为他们不希望自己的位置受到新事物的干扰.谷歌上的预览很多可以得到这个想法.阅读!


tsi*_*ilb 8

黑客,Steven Levy.

人格和生活方式必须先行.其他一切都可以学习.


Der*_*ick 8

The New Turing Omnibus http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg

真是好书.具有高级品味的计算机科学最重要的领域.是的,CS!=编程,但这对每个程序员来说仍然有用.


Mat*_*son 8

Python语言对我很有影响力,我希望多年前我会阅读这些书.Python语言的美观和简洁性确实影响了我在其他语言中编写代码的方式.

替代文字 替代文字

  • 我认为使用Python启动新的程序员会减少其他语言的数量. (6认同)
  • 我认为使用Python启动新的程序员可以减少世界上丑陋代码的数量.我与一个随机缩进行的人一起工作 - 如果他们使用Python几个月,那个人就不会这样做. (2认同)
  • 这些是巧合吗? (2认同)

lur*_*rks 7

我认为"Unix编程的艺术"是一本优秀的书,由优秀的黑客/聪明的头脑作为Eric S. Raymond,他试图让我们理解软件设计的一些原则(主要是简单性).对于即将在Unix平台下启动项目的每个编程人员来说,本书都是必读的.

  • 这是重复的. (6认同)

joe*_*ely 7

虽然我同意上面的许多书都是必读书(实用程序员,神话人月,计算机程序设计艺术和SICP​​立刻浮现在脑海中),但我想向一个略有不同的方向推荐一个学科 Edsger Dijkstra 编程.尽管它已有32年历史,但对"可验证性设计"的强调具有高度相关性(即使"可验证性"意味着"证明"而非"单元测试").


ice*_*ava 7

Martin Fowler的重构:改进现有代码的设计已经上市.但我会详细说明它为何影响了我.

整本书的本质是关于构造代码,以便人类更容易阅读和理解.它强烈地告诉我,我写的代码是为了让我的同事和后继者消费并可能从中学到一些东西.它激励我有意识地以一种让人们赞美我的名字的方式进行编程,而不是诅咒我永远诅咒.


Jas*_*ers 7

厄运大师.至于对你的职业的动机和热爱:它不会比本书中描述的更好,真实地激发故事!


Cha*_*ers 7

这是一本优秀的书,并没有得到广泛的掌声,但充满了深刻的见解:敏捷软件开发:合作游戏,由Alistair Cockburn.

这有什么特别之处?好吧,显然每个人都听过"敏捷"一词,而且现在看来大多数人都是信徒.不管你是否相信,敏捷运动存在的背后都有一些深层原则.本书以精确,科学的方式揭示和阐述了这些原则.一些原则是(顺便说一句,这些是我的话,而不是Alistair的):

  1. 团队软件开发最难的事情就是让每个人的大脑都有相同的理解.我们正在建造庞大,精细,复杂的系统,这些系统在有形世界中是看不见的.你越是让更多人的大脑分享更深入的理解,你的团队在软件开发方面的效率就越高.这是结对编程有意义的根本原因.大多数人都不赞成(我最初也是这样做的),但考虑到这个原则,我强烈建议你再给它一次.你结束了两个深刻理解你刚建立的子系统的人......没有太多其他方法可以如此快速地进行如此深入的信息传输.这就像一个瓦肯人的心灵融合.
  2. 你并不总是需要用语言来快速传达深刻的理解.还有一个推论:太多的话,你超过了听众/读者的能力,这意味着你正在尝试的理解转移不会发生.考虑到孩子们通过"沉浸"和"吸收"来学习如何说语言.不仅仅是语言......他举了一些孩子在地板上玩火车的例子.走来从来没有谁甚至另一个孩子SEEN前...但通过观看其他孩子一列火车,他拿起游戏的要点和右边沿播放.这种情况一直发生在人类之间.这个以及太多单词的推论可以帮助您了解在旧的"瀑布"时代如何误导它来尝试编写700页的详细要求规范.

那里还有更多.我现在闭嘴,但我强烈推荐这本书!

  • 一个独特的贡献,你花时间清楚地解释为什么值得一读.+1原创性和努力!我期待很快阅读这篇文章...... (2认同)

小智 7

Kernighan&Plauger的编程风格元素.它说明了噱头聪明和优雅聪明之间的区别.


JW.*_*JW. 7

由Charles M. Kozierok撰写的TCP/IP指南

尽管它被描述为一种"百科全书式的参考",但它作为叙事具有令人难以置信的可读性.

本作者提供了一个非常非常,非常好的,全面的网络介绍和网络基础设施.所有程序员都应该知道的东西.

对我来说,这是Charles Petzold的" 代码 " 的自然后续.如果"代码"向外行人解释计算机是如何工作的,"TCP/IP指南"解释了它们如何连接在一起.

如果你给了一个12岁的极客一份"代码"和一份"The TCP/IP Guide" - 他们将在17岁之前建立下一个Google.

换句话说,如果我可以回到过去并告诉自己在我作为开发人员的职业生涯开始时阅读一本特定的书,那么这个(加上代码)就在我的列表顶部.


bru*_*atk 6

我已经有一段时间了,所以我发现有影响力的大多数书今天不一定适用.我相信理解您正在开发的平台(硬件和操作系统)是非常重要的.我也认为从其他人的错误中吸取教训是很重要的.所以我推荐的两本书是:

计算灾难寻找愚蠢:二十多年的高科技营销灾难

  • 给我一个休息时间.为什么在世界上你会记下这个因为我提到了两本书? (3认同)

Nat*_*ith 6

务实的程序员:毫无疑问,从熟练工到大师.它中的建议是如此精确,简单,它就像是"常识程序员".爱它.


Eri*_*ohl 6

除了如何安排在我的书架上之外,没有特别的顺序:

  • 务实的程序员
  • 福勒的谴责
  • 通过Feathers 有效地处理遗留代码.这实际上是重构的伴随卷.
  • Fowler推出的UML.其他优点包括简洁.
  • 由Steve Maguire 调试开发过程
  • Gamma等人的设计模式(又名"四人帮")


Pau*_*lin 6

Bunny先生的ActiveX指南


Ono*_*cci 6

到目前为止,我有一些对我很有影响的好书,我在这个名单上没见过:

唐纳德诺曼的日常生活心理学.其他人设计的一般原则.对于用户界面来说,这看起来似乎有点好处,但是如果你考虑一下,它几乎可以在任何地方都有应用程序,除了原始开发人员之外还有其他人可以使用它; 例如,API和设计界面,使其他开发人员形成正确的心理模型,并从API本身获得适当的反馈.

Glen Myers的软件测试艺术.对测试软件的一般性介绍; 有利于程序员阅读,以帮助他们像测试人员一样思考,即考虑可能出现的问题并做好准备.

顺便说一句,我意识到问题是"单一最具影响力的书",但讨论似乎已经改为列出供开发人员阅读的好书,所以我希望我可以原谅列出两本好书而不仅仅是一本.


Gar*_*idd 6

用户是否曾触摸过您的代码?如果您不是专门从事后端工作,我建议使用About Face:用户界面设计要点  - 现在是第三版(链接).我曾经认为我的用户是愚蠢的,因为他们没有"获得"我的界面.我当然是错的.关于Face转过身来.


Mat*_*ttH 6

麦康奈尔的快速发展


Adr*_*ian 6

当我开始用Java开发(并且到目前为止仍然这样做)时,我必须推荐该领域的杰出工作:Bunny先生的Java大杯.

从作者的模糊:

没有更好的方法来学习Java,而不是将专业Java程序员的松果腺手术植入你的大脑.可悲的是,大多数HMO拒绝支付这种职业挽救程序,认为Java太过实验性.最后,对于那些不能等待全面医疗改革的人来说,还有另一种治疗方法.

Bunny先生的Big Cup O'Java是由十分之一的医生推荐的,其中n是你想要弥补的任何整数,以打动一个令人震惊的容易上当的公众.本书首先概述了本书,并迅速扩展到本书中.只需看看涵盖的主题:

  • Java的

简而言之,MBBCOJ将教你在当今兔子开发环境中成功的职业所需要知道的一切.

单凭像素的洞察力将缩短我的软件开发寿命.


小智 6

Brian W.Kerninghan和Rob Pike撰写的"编程实践".

语言很容易,主题也很有趣.


小智 5

史蒂夫麦康奈尔的代码完成有很多选票,但他的软件项目生存指南书呢?我认为他们都需要阅读但出于不同的原因.


Kil*_*fer 5

对于初学程序员来说,这本书并不是一本书,但如果您正在寻找SOA设计书籍,那么实践中的SOA:分布式系统设计的艺术就是适合您的.

  • 太过狭窄,成为每个程序员应该阅读的1本书 (2认同)

Bry*_*ley 5

Brian W. Kernighan和PJ Plauger撰写的软件工具

它对我编写软件的方式产生了深远的影响.


aft*_*oon 5

软件工程的事实和谬误Robert L. Glass http://www.codinghorror.com/blog/images/facts-and-fallacies-of-software-engineering.jpg

Robert L. Glass的软件工程的事实和谬误是一本非常好的书.在我阅读它之前,我已经成为一名职业黑客已有近10年了,我仍然学到了很多东西.


Pet*_*ham 5

不是最有影响力的,但值得一看的是JMCoetzee的青年.

20世纪50年代南非的学生青年的叙述者长期以来一直在策划逃离他的祖国:从他母亲的窒息爱情,以及他失败困扰他的父亲,以及他肯定即将到来的事情来看革命.学习数学,阅读诗歌,省钱,他试图确保当他到达现实世界时,无论在哪里,他都会准备好充分体验生活,并将其转化为艺术.然而,最后到达伦敦时,他既没有诗歌也没有浪漫.相反,他屈服于作为计算机程序员的生活单调,随机,无爱的事情从中得不到任何解脱.没有灵感,他停止写作.一个尴尬的殖民地,一个宪法的局外人,他开始了一个黑暗的朝圣之旅,在那里他不断受到考验并不断发现缺乏.

青年封面http://img440.imageshack.us/img440/5140/youthgd4.jpg


Rya*_*des 5

完美的软件:以及关于测试的其他幻想

TITLE封面http://ecx.images-amazon.com/images/I/51j3BSRspAL._SL500_AA240_.jpg

完美的软件:以及 Gerald M. Weinberg 关于测试其他幻想

ISBN-10:0932633692

ISBN-13:978-0932633699


Dav*_*rke 5

编程语言中设计概念由FA Turbak提供了许多编程概念的详细实现,对于理解底层的内容非常有用.


Geo*_*ian 5

餐巾的背面,Dan Roam.

餐巾背面http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg

一本关于视觉思维技巧的好书.现在还有一个扩展版.我不能说那个版本,因为我不拥有它; 然而.


Dan*_*rić 5

企业模式和MDA:使用原型模式和UML构建更好的软件

对于那些希望利用ORM和UML的人来说,这是一本很好的读物

企业模式和MDA:使用原型模式和UML构建更好的软件