如果你可以回到过去并告诉自己在开始时作为开发人员阅读一本特定的书,那本书会是哪本书?
我希望这个列表可以变化,涵盖范围广泛.
要搜索:使用右上角的搜索框.要搜索当前问题的答案,请使用inquestion:this.例如:
inquestion:this "Code Complete"
Run Code Online (Sandbox Code Playgroud)
Jus*_*ard 1746
虽然这不教你编程,但它教你每个程序员都应该知道的基础数学.你可能还记得从大学这个东西,但是说真的,做谓词逻辑将提高你的编程技能,你需要学习集理论,如果你想使用集合编程.
这里确实有很多有趣的信息可以让你以不同的方式思考问题.它很方便,只是偶尔拿起来学习一些新的东西.
系统论:系统如何工作,特别是它们如何失败.让它用得便宜.但是,在你完成一些失败的项目之前,你可能不会得到幽默.
这本书的美丽是版权年.
可能是书中提出的最深刻的"法律":
基本故障模式定理(FFT):复杂系统通常以故障模式运行.
这个想法是,在任何给定的软件中都存在由其他部分的故障或其他部分的验证掩盖的故障部分.查看Therac-25辐射机的真实示例,其软件缺陷被硬件故障屏蔽.当硬件故障被移除时,那些年未被发现的软件竞争条件导致该机器造成3人死亡.
最终软件工艺
替代文字http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
本书解释了很多关于软件工程,系统开发的内容.理解不同类型的产品开发之间的区别也非常有用:Web VS shrinkwrap VS IBM框架.人们在设想瀑布模型时会想到什么?阅读本文,我们将变得清晰(希望如此)
极限编程解释:肯特贝克拥抱变革.虽然我不提倡硬件XP或高速公路上的软件开发,但我希望在我职业生涯的早期就已经介绍过本书的原理.单元测试,重构,简单性,持续集成,成本/时间/质量/范围 - 这些改变了我对开发的看法.在敏捷之前,这完全是关于调试器和对变更请求的恐惧.在敏捷之后,那些恶魔并没有那么大.
编程的实践.作者:Brian W. Kernighan,Rob Pike.
这里显示的风格非常好 - 代码本身就说明了,整本书遵循KISS原则.个人不是我选择的语言,但仍然对我有影响.
托马斯弗里德曼的"世界是平的".
卓越的编程需要投入精神能量,并致力于与医学或法律专业相媲美的持续学习.它只支付了这些职业支付的一小部分,更不用说支付给进入金融领域的数学精明的工资.构建代码的工资正在逐渐下降,因为对于大多数经济体中的智能和自律而言,这是一种相对容易的职业.
编程已经被削弱到支付低于管道的程度.管道不能"离岸外包".您无需每隔一年支付2395美元参加专业水管工会议,因为他们有权获得一套全新的管道技术,这将花费您一年的时间来学习.
如果你生活在北美或欧洲,年轻,聪明,编程不是理性的职业选择.绝对涉及编程的企业.学习业务,了解编程以改进您的BS探测器:辉煌.但是,将精神能量的大部分用于掌握图书馆,数据结构和算法?只有编程对你来说比经济选择更重要,才有意义.
如果你喜欢编程,并且因为这个原因打算将它作为你的职业生涯,那么你应该对那些已经并将继续的力量形成一种冷漠的理解,使其成为一种更难以谋生的职业. ."世界是平的"不会教你如何命名你的变量,但它会让你沉浸在已经到来的经济现实中6或8小时.如果你能阅读它,而不是害怕,那么就去购买"Code Complete".

去年我参加了一些课程.我读
创新者的困境(颠覆性技术)
神话人月(管理软件)
跨越鸿沟(启动)
数据库管理系统,COW书籍
编程C#,OSTRICH书开始iPhone开发,GRAPEFRUIT
书
每本书都令人惊叹,但Clayton Christensen(1997 !!!)的创新者困境真的是一本很棒的书,让我真正想到了现代软件世界.所面临的挑战是颠覆性技术,以及磁盘驱动器公司和非技术公司如何总是被新的,改变游戏规则的技术所破坏.在考虑谷歌(可能是最大的"网络"公司)时,它给了一个新的视角.为什么他们有他们的手在一切?这是因为他们不希望自己的位置受到新事物的干扰.谷歌上的预览很多可以得到这个想法.阅读!
真是好书.具有高级品味的计算机科学最重要的领域.是的,CS!=编程,但这对每个程序员来说仍然有用.
Python语言对我很有影响力,我希望多年前我会阅读这些书.Python语言的美观和简洁性确实影响了我在其他语言中编写代码的方式.

我认为"Unix编程的艺术"是一本优秀的书,由优秀的黑客/聪明的头脑作为Eric S. Raymond,他试图让我们理解软件设计的一些原则(主要是简单性).对于即将在Unix平台下启动项目的每个编程人员来说,本书都是必读的.
Martin Fowler的重构:改进现有代码的设计已经上市.但我会详细说明它为何影响了我.
整本书的本质是关于构造代码,以便人类更容易阅读和理解.它强烈地告诉我,我写的代码是为了让我的同事和后继者消费并可能从中学到一些好东西.它激励我有意识地以一种让人们赞美我的名字的方式进行编程,而不是诅咒我永远诅咒.
替代文字http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C++如何编程它对初学者有好处.这本书是完整的1500页.
这是一本优秀的书,并没有得到广泛的掌声,但充满了深刻的见解:敏捷软件开发:合作游戏,由Alistair Cockburn.
这有什么特别之处?好吧,显然每个人都听过"敏捷"一词,而且现在看来大多数人都是信徒.不管你是否相信,敏捷运动存在的背后都有一些深层原则.本书以精确,科学的方式揭示和阐述了这些原则.一些原则是(顺便说一句,这些是我的话,而不是Alistair的):
那里还有更多.我现在闭嘴,但我强烈推荐这本书!
由Charles M. Kozierok撰写的TCP/IP指南
尽管它被描述为一种"百科全书式的参考",但它作为叙事具有令人难以置信的可读性.
本作者提供了一个非常非常,非常好的,全面的网络介绍和网络基础设施.所有程序员都应该知道的东西.
对我来说,这是Charles Petzold的" 代码 " 的自然后续.如果"代码"向外行人解释计算机是如何工作的,"TCP/IP指南"解释了它们如何连接在一起.
如果你给了一个12岁的极客一份"代码"和一份"The TCP/IP Guide" - 他们将在17岁之前建立下一个Google.
换句话说,如果我可以回到过去并告诉自己在我作为开发人员的职业生涯开始时阅读一本特定的书,那么这个(加上代码)就在我的列表顶部.
我已经有一段时间了,所以我发现有影响力的大多数书今天不一定适用.我相信理解您正在开发的平台(硬件和操作系统)是非常重要的.我也认为从其他人的错误中吸取教训是很重要的.所以我推荐的两本书是:
除了如何安排在我的书架上之外,没有特别的顺序:
到目前为止,我有一些对我很有影响的好书,我在这个名单上没见过:
唐纳德诺曼的日常生活心理学.其他人设计的一般原则.对于用户界面来说,这看起来似乎有点好处,但是如果你考虑一下,它几乎可以在任何地方都有应用程序,除了原始开发人员之外还有其他人可以使用它; 例如,API和设计界面,使其他开发人员形成正确的心理模型,并从API本身获得适当的反馈.
Glen Myers的软件测试艺术.对测试软件的一般性介绍; 有利于程序员阅读,以帮助他们像测试人员一样思考,即考虑可能出现的问题并做好准备.
顺便说一句,我意识到问题是"单一最具影响力的书",但讨论似乎已经改为列出供开发人员阅读的好书,所以我希望我可以原谅列出两本好书而不仅仅是一本.
用户是否曾触摸过您的代码?如果您不是专门从事后端工作,我建议使用About Face:用户界面设计要点 - 现在是第三版(链接).我曾经认为我的用户是愚蠢的,因为他们没有"获得"我的界面.我当然是错的.关于Face转过身来.
当我开始用Java开发(并且到目前为止仍然这样做)时,我必须推荐该领域的杰出工作:Bunny先生的Java大杯.
从作者的模糊:
没有更好的方法来学习Java,而不是将专业Java程序员的松果腺手术植入你的大脑.可悲的是,大多数HMO拒绝支付这种职业挽救程序,认为Java太过实验性.最后,对于那些不能等待全面医疗改革的人来说,还有另一种治疗方法.
Bunny先生的Big Cup O'Java是由十分之一的医生推荐的,其中n是你想要弥补的任何整数,以打动一个令人震惊的容易上当的公众.本书首先概述了本书,并迅速扩展到本书中.只需看看涵盖的主题:
- Java的
简而言之,MBBCOJ将教你在当今兔子开发环境中成功的职业所需要知道的一切.
单凭像素的洞察力将缩短我的软件开发寿命.
不是最有影响力的,但值得一看的是JMCoetzee的青年.
20世纪50年代南非的学生青年的叙述者长期以来一直在策划逃离他的祖国:从他母亲的窒息爱情,以及他失败困扰他的父亲,以及他肯定即将到来的事情来看革命.学习数学,阅读诗歌,省钱,他试图确保当他到达现实世界时,无论在哪里,他都会准备好充分体验生活,并将其转化为艺术.然而,最后到达伦敦时,他既没有诗歌也没有浪漫.相反,他屈服于作为计算机程序员的生活单调,随机,无爱的事情从中得不到任何解脱.没有灵感,他停止写作.一个尴尬的殖民地,一个宪法的局外人,他开始了一个黑暗的朝圣之旅,在那里他不断受到考验并不断发现缺乏.
青年封面http://img440.imageshack.us/img440/5140/youthgd4.jpg
TITLE封面http://ecx.images-amazon.com/images/I/51j3BSRspAL._SL500_AA240_.jpg
完美的软件:以及 Gerald M. Weinberg 关于测试的其他幻想
ISBN-10:0932633692
ISBN-13:978-0932633699
餐巾背面http://www.coverbrowser.com/image/bestsellers-2008/302-7.jpg
一本关于视觉思维技巧的好书.现在还有一个扩展版.我不能说那个版本,因为我不拥有它; 然而.