如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
阅读头部优先设计模式,获得比GoF书更容易理解的介绍。我记得每读完一章,我都感觉自己升级了。
Kent Beck关于TDD的例子测试驱动开发。
其他回答
这是一个非常丰富和有用的汇编,然而,我有点惊讶我没有在作者中遇到Andrew S. Tanenbaum。在我看来,他是最好的计算机科学教授之一,他的天才主要在于他能让计算机科学本科生理解相当难的材料。他的书(《现代操作系统》或《计算机网络》可能听起来耳熟)在我读学士学位时为我提供了计算机科学的坚实基础,我强烈推荐它们。 关于Tanenbaum的其他一些有趣的东西,证明了他的技能不仅仅是教学:一个名为MINIX的操作系统的作者——Linus在实现Linux时从它那里获得了灵感;Amoeba -分布式操作系统;无龟匿名p2p网络。
管理千兆字节是思考繁重的信息工作的经典。
《快速发展》
代码完成(第二版),作者: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。对测试软件的良好的、一般的介绍;对于程序员来说,阅读有助于他们像测试人员一样思考,即思考可能出现的错误并为此做好准备。
顺便说一句,我知道这个问题是“最具影响力的一本书”,但讨论似乎已经变成了列出供开发人员阅读的好书,所以我希望我列出两本好书而不是一本能得到谅解。