如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
系统滑稽:系统如何工作,特别是它们如何失败。便宜地使用它。但是,在你参与过一些失败的项目之前,你可能不会体会到其中的幽默。
书之美在于版权年。
也许书中最深刻的“法则”是:
基本失效模式定理(F.F.T.):复杂系统通常以失效模式运行。
它的思想是,在任何给定的软件中都有失败的部分,这些部分被其他部分的失败或其他部分的验证所掩盖。看看现实世界中Therac-25辐射机的例子,它的软件缺陷被硬件故障保险掩盖了。当硬件故障保护被移除后,多年来一直未被检测到的软件竞争状态导致机器杀死了3个人。
其他回答
Brian W.Kerninghan和Rob Pike合著的《编程实践》。
语言简单,主题也很有趣。
用于smarties的SQL
http://ecx.images-amazon.com/images/I/519J3P8ANML._SL500_AA240_.jpg
把我的编程能力提升到了一个新的高度。
代码完成(第二版),作者:Steve McConnell 实用的程序员 计算机程序的结构与解释“, 由Kernighan和Ritchie编写的C编程语言 Cormen, Leiserson, Rivest & Stein的《算法导论》 四人组的设计模式 重构:改进现有代码的设计 神秘的人月 Donald Knuth的《计算机编程的艺术》 编译器:原则、技术和工具,作者:Alfred V. Aho, Ravi Sethi和Jeffrey D. Ullman Gödel,埃舍尔,道格拉斯·霍夫施塔特的巴赫 干净的代码:敏捷软件工艺手册,作者:Robert C. Martin 有效的C + + 更有效的c++ Charles Petzold的《CODE Jon Bentley的Programming Pearls 有效地使用遗留代码,作者:Michael C. Feathers 德马科和利斯特设计的Peopleware Peter Seibel的《Coders at Work》 费曼先生,你肯定是在开玩笑! Effective Java第二版 Martin Fowler的《企业应用程序体系结构模式》 小策划者 经验丰富的策划者 为什么是Ruby指南 囚犯在经营疯人院:为什么高科技产品让我们疯狂,以及如何恢复理智 Unix编程的艺术 测试驱动开发:通过Kent Beck的例子 敏捷开发人员的实践 别让我思考 敏捷软件开发,原则,模式和实践,作者:Robert C. Martin Eric Evans的领域驱动设计 唐纳德·诺曼的《日常事物的设计》 Andrei Alexandrescu的现代c++设计 最佳软件写作I作者:Joel Spolsky Kernighan和Pike的《编程实践》 实用主义思维和学习:重构你的湿件Andy Hunt著 Steve McConnel的《软件评估:揭开黑艺术的神秘面纱》 《激情程序员(我的工作去了印度)》作者:Chad Fowler 黑客:计算机革命的英雄 算法+数据结构=程序 编写可靠的代码 JavaScript -好的部分 37信号的真实生活 《编程基础》作者:Karl Seguin 计算机图形学:C语言原理与实践(第二版) 用Java思考,作者:Bruce Eckel 计算系统的要素 Joshua Kerievsky的《重构模式》 Andrew S. Tanenbaum的《现代操作系统》 注释图灵 唐纳德·诺曼著的《让我们聪明的东西》 克里斯托弗·亚历山大的永恒建筑方式 截止日期:汤姆·德马科的一本关于项目管理的小说 c++编程语言(第三版),作者Stroustrup 企业应用程序体系结构模式 计算机系统——程序员的视角 《c#中的敏捷原则、模式和实践》,作者:Robert C. Martin 成长中的面向对象软件,由测试引导 框架设计指南:Brad Abrams 大卫·韦斯特的《客体思维》 《UNIX环境下的高级编程》作者:W. Richard Stevens 黑客和画家:来自计算机时代的大想法 特蕾西·基德的《新机器的灵魂》 CLR via c# by Jeffrey Richter 克里斯托弗·亚历山大的永恒建筑方式 Steve Metsker编写的c#设计模式 路易斯·卡罗尔的《爱丽丝梦游仙境》 罗伯特·m·皮尔西格的《摩托车保养的禅与艺术》 关于脸-交互设计的要点 《每个人都来了:没有组织的组织的力量》,克莱·舍基著 编程之道 自然的计算之美 编写可靠的代码,作者:Steve Maguire 菲利普和亚历克斯的网络出版指南 Grady Booch的面向对象分析和应用设计 Joshua Bloch的《Effective Java》 可计算性,n.j.卡特兰 编程大师 道德经 高效的程序员 凯文·米特尼克的《欺骗的艺术》 《职业程序员:不完美世界的游击战术》作者:Christopher Duncan 人工智能编程范式:通用Lisp的案例研究 末日大师 Andy Hunt、Dave Thomas和Matt Hargett用NUnit编写的c#实用单元测试 《如何解决问题》作者:George Polya 保罗·科埃略的《炼金术士》 Smalltalk-80:语言及其实现 编写安全代码(第二版)作者:Michael Howard 由Philip Wadler和Richard Bird编写的函数式编程导论 没有错误!大卫·蒂伦著 Jason Freid和DHH的返工 JUnit在行动
我有几本对我有强烈影响的好书,但到目前为止我还没有在这个清单上看到:
唐纳德·诺曼的《日常事物心理学》。为他人设计的一般原则。这似乎对UI很有好处,但如果你仔细想想,它几乎在任何地方都有应用程序,只要有一个界面,除了原始开发人员之外的人就必须与之打交道;例如,一个API,并以这样一种方式设计接口,使其他开发人员形成正确的心智模型,并从API本身获得适当的反馈。
《软件测试的艺术》作者:Glen Myers。对测试软件的良好的、一般的介绍;对于程序员来说,阅读有助于他们像测试人员一样思考,即思考可能出现的错误并为此做好准备。
顺便说一句,我知道这个问题是“最具影响力的一本书”,但讨论似乎已经变成了列出供开发人员阅读的好书,所以我希望我列出两本好书而不是一本能得到谅解。