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

//z 2013-12-27 21:27:45 IS2120@BG57IV3 T1611149493.K.F3499268100[T6,L76,R2,V15]
程序员

  英文版:《Code Complete 2》面试

  中文版:《代码大全(第二版)》正则表达式

  做者:Steve McConnell算法

  译者:金戈 汤凌 陈硕 张菲数据库

  出版社:电子工业出版社编程

  出版日期:2007 年8月api

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

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

  英文版:《The Mythical Man-Month》app

  中文版:《人月神话》

  做者: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

  英文版:《Peopleware》

  中文版:《人件》

  做者:Tom DeMarco / Timothy Lister

  译者:UML China翻译组

  出版社:清华大学出版社

  出版日期:2003年6月

  Jeff Atwood的推荐:若是你曾经亲眼目击一支全明星运动队在一个糟糕教练的带领下表现平平,你必定会喜欢这本书。无论你有多少“编程高手”,若是他们相互之间没有沟通,或者互不认同,结果你仍是会失败。这本书还指出,无论开发人员多么有天赋,若是他们持续不断地受到各类干扰(哪怕干扰很细微),没有人能在这种状况下有效地开展工做。说白了,开发人员在人际技能方面并不见长,但具备讽刺意味的是:项目成功与否经常取决于人际的问题。若是你渴望成为真正的“团队领导”(而不是徒有虚名),你必须好好地读一读这本书。

  尽管这本书里充斥着绝妙的、彻底正确的观点,但它也暗示了:员工须要对工做场全部必定的控制权——这在大部分公司里彻底是痴心妄想。不过,至少你会认识到,工做环境或你的团队有时候就是症结所在。更重要的是,你将学会如何去处理这些状况。

  英文版:《The Design of Everyday Things》

  中文版:《设计心理学》

  做者:Donald A.Norman

  译者:梅琼

  出版社:中信出版社

  出版日期:2010年3月

  Jeff Atwood的推荐:开发软件可能给人带来难以置信的挫折感,由于过程当中有太多的陷阱。咱们所作的事中不少都是带有预防性质的:在一件事情还没出错以前,先试想它将会出错。这能令人心智衰弱,并且最终可能以一些负面的方式让人“心想事成”。在向不懂技术的人解释的时候,我有时候会说:这就像制造一块有1000个零件组成的手表同样,在哪怕最轻微的震动之下,任何一个零件均可能随机出错。这真是一份“好差事”啊!

  毫无疑问,设计软件是很难的。可是,设计一扇门也是很难的。无论是热门的SQL引擎,仍是卑微的鞋子,设计的细微差异会渗入你能触摸到的每个角落。“魔鬼藏在细节之中。”读过这本书以后,你将对这句话有一个全新的体会。若是设计一扇门不像咱们当初想的那样不费吹灰之力,也许咱们也该停下来想想了:为何咱们设计不出完美的软件呢?

  英文版:《About Face 3: The Essentials of Interaction Design》

  中文版:《About Face 3:交互设计精髓》

  做者:Alan Cooper / Robert Reimann / David Cronin

  译者:刘松涛

  出版社:电子工业出版社

  出版日期:2012年3月

  Jeff Atwood的推荐:Alan Cooper是“Visual Basic之父”,他仍是“可用性”方面的教父。说实话,我是不少年前读的这本书。这本书大约在1995年第一次出版,我就是在那时候买的。也就是说,我买的是最“老”的初版。而现在已经是第三版了!(用新版淘汰旧版,这能够认为是一种糟糕的可用性吗?)

  在展示风格一致的图形用户界面方面,这本书和《GUI设计禁忌》一块儿被认为是具备教育性质的规则手册。但这本书满满地记录了更为通用的指导原则。在用来作范例的GUI问题中(不少都是古老的Windows 95界面),评判一下哪些已经基本被解决了(使用可视化的方式来展现对话框选择的效果)以及哪些尚未被解决(白痴的模态对话框让程序停止运行),这其实挺有趣的!

  与《GUI设计禁忌》不一样的是,这本书是在互联网应用盛行以前写的,所以它没有讨论到Web应用以及Web对GUI设计的影响。但这没关系,它仍然是一本很是有用的书。在最近的一个.NET项目中,我在错误消息的处理方面所遵循的模型就源自于这本书。

  英文版:《The Inmates Are Running the Asylum: Why High Tech Products Drive UsCrazy and How To Restore The Sanity》

  中文版:《交互设计之路——让高科技产品回归人性》

  做者:Alan Cooper

  译者:Chris Ding(丁全钢)

  出版社:电子工业出版社

  出版日期:2006年3月

  Jeff Atwood的推荐:Alan Cooper就是从这本书开始给你们推介了“人物角色”这个概念:与其把用户想象成抽象的、难以描述的、琢磨不透的一群人,还不如用“人物角色”来促使咱们谈论一些具体的用户,他们有名字、有个性、有需求、也有目标。咱们的用户想要一个打印预览的功能吗?谁知道呢?但若是做为客户经理的Gerry Manheim必须每周打印他的费用报告(这是他工做的一部分),你最好相信打印预览功能是必需的。其实没什么神奇的;像之前同样,归根结底你仍是要知道你的用户是谁,以及他们真正想要的是什么——“人物角色”这个方法用来达到那个目的是再适合不过的了。

  书里面还有一个有趣的分析:开发者倾向于认为本身可以表明“普通”用户来作出“可用性”方面的决定,但实际上,他们根本就未入流。开发者充其量只能算是异想天开的极端用户——“逻辑人”与“智人”的对抗。除非你碰巧是在开发一个编译器,而开发者正是最终用户……

  这本书里还有一个容易被人忽视的“教训”:有时候,无论你的设计有多么优秀,你仍是可能会失败。Alan Cooper在书中举了两个例子——一个是扫描仪软件,另外一个是Web应用软件——Alan参与了咨询工做,事实也证实它们都是很是出色的软件,但由于某些缘由它们没有取得商业上的成功,而这些缘由跟“可用性”没有任何关系。有时候,无论你多么努力,伟大的产品仍是会由于一些不受你控制的缘由而失败。记住这些案例吧,不要被书里有些地方自鸣得意的论调冲昏了头脑!(顺便说一下,书中提到的“放在键盘后面的”USB扫描仪,我刚好也买过一个。我对它附带的扫描软件印象很是好。后来,我把这个扫描仪送给了我父亲。有一次我和父亲通电话的时候,在没有任何暗示的状况下,他竟然向我提及了他很是很是喜欢那个扫描软件。这仍是发生在这本书出版之前的事呢!) 

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

无论怎么样,这是Alan Cooper的另外一本杰做,它也是《About Face》的合理进化。在《About Face》里,Alan把目标用户都当作是“中庸的”;而在这本书里,他提炼出了更具体、也更容易在实践中应用的“人物角色”。

  英文版:《GUI Bloopers》

  中文版:《GUI设计禁忌》

  做者:Jeff Johnson

  译者:王蔓 刘耀明

  出版社:机械工业出版社

  出版日期:2005年2月

  Jeff Atwood的推荐:遥想微软的Windows 95和苹果的System 7流行之时,那时候还真有一些关于GUI(图形用户界面)的设计准则。这本书就收录了这些核心准则,包括菜单上的省略号、对话框上按钮和文字的对齐方式等等。但有多少用户能真正理解这些准则呢?这是有争议的。不过,若是你遵循这些准则,你至少能够指望A程序的用户界面会跟B程序的表现得很类似。现现在,网络内容的表现形式鱼龙混杂,特别是天天都会有一些Flash设计新手另起炉灶,标新立异地自创一套GUI。所以,温故一下这门“经典的”关于GUI设计准则的课程仍是颇有好处的。

  事实上,传统的GUI风格和基于浏览器的风格正在渐渐融合,它们彼此之间取长补短。如今,你会发现有不少桌面应用程序都采用了酷似浏览器的界面风格。这就是所谓的“引导性用户界面”(Inductive User Interface)。依稀记得大概是在2000年,我在Microsoft Money(一款财务管理软件)上第一次看到了这种界面风格。你应该能在WindowsVista、Windows七、Windows 8上看到更多的这种变化。

  英文版:《Programming Pearls》

  中文版:《编程珠玑》

  做者:Jon Bentley

  译者:谢君英 石朝江

  出版社:中国电力出版社

  出版日期:2004年3月

  Jeff Atwood的推荐:对因而否要推荐这本书,我曾经犹豫过,由于它包含了一些很是底层的编码技术。但这本书里同时也蕴藏了至关多的软件工艺方面的“珍珠”,这使得它仍然值得全部开发者都去读一读。任何包含下面这种图片的图书都是颇有价值的宝书。它就用来展现TRS-80与DEC Alpha之间48n比n3的算法复杂度差别吗?兄弟,拜托……没有比那更好的了!若是你不能幸运地跟一位大师级的程序员并肩而坐,而且在一块儿工做大约一年的时间,那么买一本《编程珠玑》就是退而求其次的最佳选择了。这本书是集体智慧的结晶,凝聚了不少技能娴熟的程序员的贡献,并最终汇编成了一个个精粹而容易被人理解的专题栏目。

  我不想骗你!其实,这本书的不少章节你均可以忽略。好比说,像第十一、13和14章谈到的排序、堆或者哈希算法,当今有不少成熟的库早已实现了这些基本技术,我想不出任何理由你须要去把它们从新实现一遍。但对于每个枯燥的课本练习,这本书的确给出了一些实用的建议。你尽能够快速翻阅这本书,碰到有代码的部分就跳过去……听个人准没错!第7章“封底计算”是要点,那也许是我曾见过的在“估算”这个专题上最好的论述。它还用很大的篇幅去解释了那些疯狂的面试问题,而一些公司每每热衷于用那些问题来考验咱们……

  若是你还在犹豫,建议你到网上去读一读这本书的样章。最近,我把从“珍珠字符串”那一章学到的东西付诸实践,我在生成合成数据填入一个空数据库的时候使用了马尔科夫链——这也证实了在“封底计算”那一章谈到的性能估算技术。

  英文版:《The Pragmatic Programmer: From Journeyman to Master》

  中文版:《程序员修炼之道:从小工到专家》

  做者:Andrew Hunt / David Thomas

  译者:马维达

  出版社:电子工业出版社

  出版日期:2011年1月

  Jeff Atwood的推荐:这本书让我想起了《编程珠玑》里的不少内容,但它事实上比《编程珠玑》更好,由于它再也不拘泥于代码。做者摆脱了代码的束缚,转而专一于真实世界里已经被证实切实可行的方法,并把它们通通都收录进了这本书。严格来讲,不是全部的事情都跟编程有关系。好比,自问“我为何要作这件事?它究竟值得去作吗?”并不算是创意性思惟,你偏偏应该天天都这么问问本身,以使你和你的同事始终保持清醒的头脑。这也正是这本书的难得之处!

  若是你想对这本书作更多的了解,你能够去看一看我在博客网站上发表的那篇“A Pragmatic Quick Reference”。那篇文章很好地归纳了这本书的内容,它也能够做为你“修炼”时候的便捷参考。

  英文版:《Designing Web Usability》

  中文版:《Web可用性设计》

  做者:Jakob Nielsen

  译者:潇湘工做室

  出版社:人民邮电出版社

  出版日期:2000年11月

  Jeff Atwood的推荐:Jakob Nielsen由于创办了关于“可用性”的网站(http://www.nngroup.com)而名闻遐迩。自从他在1989年出版了第一本书以来,他便开始了可用性专家的职业生涯。这是一本彻彻底底的关于Web可用性设计的初级读本,所以跟Alan Cooper专一于GUI的图书仍是有些不同的。


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

  《The Visual Display of Quantitative Information》

  《Visual Explanations: Images and Quantities, Evidence and Narrative》

  《Envisioning Information》

  信息多美丽!设计优良的GUI也是这样。

  这个系列的3本书你没必要都买,除非你是一个完美主义者(我猜你也许是个受虐狂),但前两本是很关键的。

  Chris Sells曾经在2004年6月参加过Edward R. Tufte的一次研讨会,以后他对Tufte的图书发表了一些颇有意思的看法。详见http://www.sellsbrothers.com。

  英文版:《Mastering Regular Expressions》

  中文版:《精通正则表达式》

  做者:Jeffrey E.F.Friedl

  译者:余晟

  出版社:电子工业出版社

  出版日期:2012年7月

  Jeff Atwood的推荐:UNIX由于其复杂、使人费解而臭名昭著。正则表达式与它同病相怜。

  我应该算得上是“保持通俗易用”俱乐部的正式会员,但我要为正则表达式破一回小例。若是正则表达式书写得当的话,它们能够在字符串操做方面为你节省大把大把的时间。我还历来没碰到过一个正则表达式派不上用场的项目呢!

  一旦你钻进正则表达式的世界,你可能会沉醉于它们惊人的力量和潜能。请记住,绝对的权力致使绝对的腐败。不过,它也绝对可让你酷毙了!


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

//z 2013-12-27 21:27:45 IS2120@BG57IV3 T1611149493.K.F3499268100[T6,L76,R2,V15]
相关文章
相关标签/搜索