如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
Alistair Cockburn的《敏捷软件开发:合作游戏》是一本优秀的书,虽然没有得到广泛的赞扬,但却充满了深刻的见解。
它有什么特别之处?好吧,显然每个人都听说过“敏捷”这个术语,而且现在似乎大多数人都是信徒。不管你信不信,敏捷运动存在的背后都有一些深刻的原则。这本书以精确、科学的方式揭示并阐明了这些原则。一些原则是(顺便说一下,这些是我的,不是Alistair的):
团队软件开发中最困难的事情是让每个人的大脑都有相同的理解。我们正在建造巨大的、精细的、复杂的系统,这些系统在有形世界中是看不见的。你越善于让更多的人分享更深入的理解,你的团队在软件开发中就越有效。这就是结对编程有意义的根本原因。大多数人对它不屑一顾(我一开始也这么认为),但有了这个原则,我强烈建议你再试一次。你最终得到了两个深刻理解你刚刚构建的子系统的人……没有多少其他方法可以如此快速地获得如此深入的信息传输。就像瓦肯人的心灵融合。 你并不总是需要用语言来快速表达深刻的理解。一个必然的结果是:太多的词,你就超过了听者/读者的能力,这意味着你试图实现的理解转换无法发生。考虑到孩子们通过“沉浸”和“吸收”来学习如何说语言。不仅仅是语言……他举了一个孩子在地板上玩火车的例子。走过来的是另一个从未见过火车的孩子……但通过观察其他孩子,他掌握了游戏的要点,并与他们一起玩。人与人之间经常发生这种事。这和关于太多单词的推论一起,帮助您了解在旧的“瀑布”时代,试图编写700页详细的需求规范是多么错误。
里面还有很多东西。我现在要闭嘴了,但是我强烈推荐这本书!
其他回答
代码完成(第二版),作者: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在行动
Sedgewick的“C中的算法”(第一版)教会了我所有关于算法的知识,也教会了我所有关于文档和复制/粘贴代码的陷阱,因为这个版本中的所有示例代码都来自“Pascal中的算法”版本,并且只是通过一个简单的代码翻译器传递,它没有针对不同的索引方案进行调整。
Bruce Eckel的《用c++思考》
《黑客》,作者:史蒂文·列维。
性格和生活方式必须放在第一位。其他一切都可以学习。
这本书可能不算“开发书籍”,但我还是要把它放在这里:Stephen Levy的《黑客》。我发现它体现了编程的情感方面。