Jeff Atwood倾情推荐——程序员必读之书

发表于:2013-04-28来源:Csdn作者:happydeer点击数: 标签:程序员
信息多美丽!设计优良的GUI也是这样。 这个系列的3本书你不必都买,除非你是一个完美主义者(我猜你也许是个受虐狂),但前两本是很关键的。

  英文版:《Code Complete 2》

  中文版:《代码大全(第二版)》

  作者:Steve McConnell

  译者:金戈 汤凌 陈硕 张菲

  出版社:电子工业出版社

  出版日期:2007 年8月

  Jeff Atwood的推荐:Steve McConnell的这本书是软件开发领域里的《烹饪的乐趣》。如果你对这本书感兴趣,说明你热爱你现在的工作,你对你正在做的事情是认真的,并且你想不断地提升自己。Steve在这本书里指出,普通程序员每年所读的技术书籍不足一本。仅仅只需阅读这本书,你就有可能超越身边90%的程序员。这绝对是个好主意!

  我非常喜欢这本书,以致于我在给自己的博客网站取名的时候也受到了它的启发——我把我们应该避免去做的事情都打上了“Coding Horror”的标签。没有比编程方面的恐怖案例更能给人带来乐趣了。但如果你不得不自己去应对某些恐怖,那么你的乐趣就会荡然无存。请你帮自己一个忙吧!要想读书,这本书是首选;要给身边其他的程序员推荐图书,这本书也是首选。

  英文版:《The Mythical Man-Month》

  中文版:《人月神话》

  作者:Frederick P.Brooks Jr.

  译者:UML China翻译组 汪颖

  出版社:清华大学出版社

  出版日期:2007 年9月

  Jeff Atwood的推荐:毫无疑问,这是我们领域里惟一的一本经典图书。如果你还没读过,你应该觉得丢脸!

  你知道关于IBM的那个废弃已久的OS/360系统及其开发团队的故事吗?如果你读了《人月神话》还不明白OS/360那回事,那你就是白读了!这本已经出版了30多年的图书有力地证明了一个观点:计算机也许会变,但人不会变。

  花点时间读一读这本经典之作是值得的,跟你埋头苦读上千页的技术资料比起来,它一定能给你带来更大的效益。

  英文版:《Don't Make Me Think》

  中文版:《点石成金:访客至上的网页设计秘笈》

  作者:Steve Krug

  译者:DeDream'(蒋芳)

  出版社:机械工业出版社

  出版日期:2006 年8月

  Jeff Atwood的推荐:这是我曾读过的、在“可用性”方面讲得最好的一本书。尽管这本书的副标题说的是“Web可用性”,但你不要被它迷惑了。Steve Krug在这本书里谈到了“可用性”所有的重要概念,而且入木三分。这本书读起来很有乐趣。如果“可用性”方面的书你只打算读一本,那就选这本吧!这本书包含有丰富的信息,而且以一种简洁、切实可行的方式展现在读者面前。它广泛适合于各类群体阅读,包括技术人员、非技术人员、用户、开发者、管理人员等等。

  看一看下面的几幅漫画吧。是不是很纠结?永远也不要参加那样的会议!顺便说一下,解决这个问题的方法就是“可用性测试”。好好想一想:我们做决定的时候,是要无休无止地争吵、最后谁吵赢了谁说了算呢,还是要基于真实的数据?这种改变是一场革命!

  英文版:《Rapid Development》

  中文版:《快速软件开发》

  作者:Steve McConnell

  译者:席相霖等

  出版社:电子工业出版社

  出版日期:2002年1月

  Jeff Atwood的推荐:这本书完整的标题应该是《快速软件开发——有效控制与完成进度计划》。我故意没把它写全,不仅仅因为副标题太长了、有点唐突,还因为它确实不怎么恰当。

  这本书其实不是关于快速软件开发的。它讲的是失败的现实。绝大部分软件开发项目都会失败——他们的开发进度滞后于计划,做出来的东西不符合要求,甚至有时候根本就没有完成。这已经不存在争议了,因为它是一个统计事实。令人不快的现实是,你的团队必须非常优秀才能避免失败,要想成功概率就更小了。尽管这听起来让人沮丧——没错,现实让人很沮丧——但你还是要读一读这本书。

  为什么呢?因为如果你能避免重复去犯你或者其他人犯过的错误,你就已经成功了一半。(严格来说,书里面说是成功了四分之一。但是,我觉得应该会更多一点。)这本书可以给我们的启示是,犯错误是好事,只要这些错误是全新的、活蹦乱跳的(可能会重复发生)。如果你一直在犯同样的错误,其实你在一开始就已经失败了。可悲的是,你对你正在犯的错误可能还浑然不知。

  在我们的领域里,“惟一不变的就是变化”。这样的领域是不多的,而我们很不幸就身处其中。因此,我们惟一能做的就是拥抱变化,并且尝试各种不同的“快速”开发技巧。但不要走极端!我们不能假设:“自1970 年以来发生的变化是如此之大,以致于跟我们最新、最热门的技术比起来,所有的传统软件开发经验都已经过时、毫无用处了。”还是那个说法:计算机已经变了,但人没有变。在你开始做任何事之前,至少了解一下什么是行得通的、什么是行不通的。拿Steve McConnell的话来说,“在开始刷漆之前要先读一读油漆罐上的说明。”这听起来似乎是理所当然的,但在读了这本书之后你就会发现,我们领域里真正那样做的人简直就是凤毛麟角。

原文转自:http://blog.csdn.net/happydeer/article/details/8795687