如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
Grady Booch的《面向对象分析和应用程序设计》。我很久以前读过这篇文章,它告诉我可以有一种开发面向对象软件的方法论。从那以后,许多其他的书对我产生了影响,但这本书让我开始了。
其他回答
Alistair Cockburn的《敏捷软件开发:合作游戏》是一本优秀的书,虽然没有得到广泛的赞扬,但却充满了深刻的见解。
它有什么特别之处?好吧,显然每个人都听说过“敏捷”这个术语,而且现在似乎大多数人都是信徒。不管你信不信,敏捷运动存在的背后都有一些深刻的原则。这本书以精确、科学的方式揭示并阐明了这些原则。一些原则是(顺便说一下,这些是我的,不是Alistair的):
团队软件开发中最困难的事情是让每个人的大脑都有相同的理解。我们正在建造巨大的、精细的、复杂的系统,这些系统在有形世界中是看不见的。你越善于让更多的人分享更深入的理解,你的团队在软件开发中就越有效。这就是结对编程有意义的根本原因。大多数人对它不屑一顾(我一开始也这么认为),但有了这个原则,我强烈建议你再试一次。你最终得到了两个深刻理解你刚刚构建的子系统的人……没有多少其他方法可以如此快速地获得如此深入的信息传输。就像瓦肯人的心灵融合。 你并不总是需要用语言来快速表达深刻的理解。一个必然的结果是:太多的词,你就超过了听者/读者的能力,这意味着你试图实现的理解转换无法发生。考虑到孩子们通过“沉浸”和“吸收”来学习如何说语言。不仅仅是语言……他举了一个孩子在地板上玩火车的例子。走过来的是另一个从未见过火车的孩子……但通过观察其他孩子,他掌握了游戏的要点,并与他们一起玩。人与人之间经常发生这种事。这和关于太多单词的推论一起,帮助您了解在旧的“瀑布”时代,试图编写700页详细的需求规范是多么错误。
里面还有很多东西。我现在要闭嘴了,但是我强烈推荐这本书!
新图灵集合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 !=编程,但这仍然对每个程序员有用。
我想说的是《超越代码——用9个简单的步骤学会区分自己》是一本非常好的励志书。我不涉及技术问题,但它描述了与人合作的方式,成为专业人士,……对我来说,如果你需要一些鼓励的话,这本书你可以一遍又一遍地读。除此之外,在3到4个小时内阅读它很便宜,非常容易和愉快。
我的博客上有一篇评论。
特立独行的!:世界上最不寻常的工作场所背后的成功故事
可选文字 http://ecx.images-amazon.com/images/I/410TX7YN94L._SL500_AA300_.jpg
会让你意识到工作场所应该是什么样子。
应用UML和设计模式。
它帮助我设计模式,并在“UML as Sketch”的措辞中为我提供了一个对UML有意义的理由。也就是说,UML应该被用作系统的一个简要草图,这样你就不必向别人解释符号(他们要么已经知道UML,要么你给他们一本UML的书来读)。