如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?

我希望这份清单是多样的,涵盖范围很广。

搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:

inquestion:this "Code Complete"

当前回答

我发现《算法设计手册》是一本非常有益的读物。我还强烈推荐Programming Pearls。

其他回答

《全新思维》,丹尼尔·平克著。这是对我们行业未来的有趣展望。

我想大多数读到这篇文章的人都已经读过上面的书了。所以,我将提供一本书,从不同的角度来看待我们的行业。

可选文字 http://www.danpink.com/images/wnm.jpg

编程:编程的实践布莱恩·w·克尼根、罗布·派克著。

这里展示的风格非常棒——代码本身就能说明问题,整本书都遵循KISS原则。就我个人而言,不是我选择的语言,但仍然对我有影响。

计算机科学家的离散数学http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

《计算机科学家的离散数学》作者J.K. Truss。

虽然这并没有教你编程,但它教会了你每个程序员都应该知道的基本数学。你可能还记得大学里的这些东西,但实际上,学习谓词逻辑会提高你的编程技能,如果你想用集合编程,你需要学习集合论。

这里确实有很多有趣的信息,可以让你从不同的角度思考问题。它很方便,只是偶尔拿起来学习一些新东西。

福特的《高效程序员》

我还没有完全完成这一点,但我已经为我学到的一些技巧/技巧而兴奋不已,这些技巧/技巧让我变得更有效率。

当然,有很多东西我们都已经知道了(使用键盘快捷键,DRY等)。但也有很多新东西与之相配。细心的读者很快就会发现,这些东西是如何组合在一起产生更大的效果的。

《极限编程:拥抱变化》作者:Kent Beck。虽然我不提倡在软件开发中采用硬核的xp或高速公路,但我希望在我的职业生涯中更早地向我介绍本书中的原则。单元测试、重构、简单性、持续集成、成本/时间/质量/范围——这些改变了我看待开发的方式。在敏捷出现之前,所有的一切都是关于调试器和对更改请求的恐惧。在敏捷开发之后,这些恶魔不再那么大了。