还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
一种合格的程序员应当读过哪些书编者按8月4日,StackOverflow网友Bert F发帖提问哪本最具影响力的书,是每个程序员都应当读的?“假如能时光倒流,回到过去,作为一种开发人员,你可以告诉自己在职业生涯初期应当读一本,你会选择哪本书呢?我但愿这个书单列表内容丰富,可以涵盖诸多东西”诸多程序员响应,他们在推荐时也写下自己的评语此前就有国内网友简介这个程序员书单,不过都是推荐数Top10的书其实除了前10本之外,推荐数前30左右的书籍都算经典,笔者整顿编译这个问答贴,同步摘译部分推荐人的评语工、《代码大全》史蒂夫•迈克康奈尔下面就按照各本书的推荐数排列推荐数1684“优秀的编程实践的百科全书,《代码大全》重视个人技术,其中所有东西加起来,就是我们本能所说的“编写整洁的代码”这本书有50页在谈论代码布局”——Joel Spolsky对于新手来说,这本书中的观念有点高阶了到你准备阅读此书时,你应当已经懂得并实践过书中99%的观念-esacSteve McConnell的原作《代码大全》(第1版)是公认的有关编程的最佳实践指南之一,在过去的十数年间,本书一直在协助开发人员编写更好的软件目前,作者将这本经典著作全新演绎,融入了最前沿的实践技术,加入了上百个崭新的代码示例,充足展示了软件构建的艺术性和科学性McConnell汇集了来自研究机构、学术界以及业界平常实践的重要知识,把最高效的技术和最重要的原理交错融会为这本既清晰又实用的指南无论您的经验水平怎样,也不管您在怎样的开发环境中工作,也无论项目是大是小,本书都将激发您的思维并协助您构建高品质的代码《代码大全(第2版))》做了全面的更新,增长了诸多与时俱进的内容,包括对新语言、新的开发过程与措施论的讨论等等
2、《程序员修炼之道》他尚有另一本中文版著作《About Face3交互设计精髓》、《()》26Whys PoignantGuide toRuby假如你不是程序员,阅读此书也许会很有趣,但假如你已经是个程序员,也许会有点乏味、《编程艺术》27UnixIt isuseful regardlessoperating systemyou use.-J.F.Sebastian不管你使用什么操作系统,这本书都很有用-J.F.Sebastian、《高效程序员的个习惯敏捷开发修炼之道》284545个习惯,分为7个方面工作态度、学习、软件交付、反馈、编码、调试和协作每一种详细的习惯里,一开始提出一种谬论,然后展开分析,之后有正队性地提出对的的做法,并设身处地地讲出了对的做法给你个人的“切身感受”,最终列出几条注意事项,协助你修正自己的做法(“平衡的艺术”)、《测试驱动开发》29前面已经提到的诸多书都启发了我,并影响了我,但这本书每位程序员都应当读它向我展示了单元测试和TDD的重要性,并让我很快上手-Curro我不关怀你的代码有多好或优雅假如你没有测试,你或许就如同没有编写代码这本书得到的推荐数应当更高些人们讨论编写顾客喜欢的软件,或既设计杰出并强健的高效代码,但假如你的软件有一堆、《点石成金:访客至上的网页设计30bug,谈论那些东西毫无意义-Adam Gent秘笈》可用性设计是Web设计中最重要也是难度最大的一项任务《点石成金一访客至上的网页设计秘笈(原书第二版)》作者根据数年从业的经验,剖析顾客的心理,在顾客使用的模式、为扫描进行设计、导航设计、主页布局、可用性测试等方面提出了许多独特的观点,并给出了大量简朴、易行的可用性设计的提议本书短小精炼,语言轻松诙谐,书中穿插大量色彩丰富的屏幕截图、趣味丛生的卡通插图以及包括大量信息的图表,使枯燥的设计原理变得平易近人°本书适合从事Web设计和Web开发的技术人员阅读,尤其适合为怎样留住访问者而苦恼的网站/网页设计人员阅读这是一本有关Web设计原则而不是Web设计技术的书本书作者是Web设计专家,具有丰富的实践经验他用风趣的语言为你揭示Web设计中重要但却轻易被忽视的问题,只需几种小时,你便能对照书中讲授的设计原则找到网站设计的症结所在,令你的网站焕然一新取决于你所追求的目的我喜欢《代码大全》是因纯编程,《点石成金》是一本有关UI设计的卓越书籍一Justin Standard对于那些已经学习过编程机制的程序员来说,这是一本卓越的书或许他们还是在校生,但对要自己做什么,还感觉不是很安全就像草图和架构之间的差异虽然你在学校课堂上学到的是画图,你也可以画的很漂亮,但假如你觉得你不太懂得从哪儿下手,假如某人要你独自画一种P2P的音乐互换网络图,那这本书就适合你了--------------------------Joel《程序员修炼之道:从小工到专家》内容简介《程序员修炼之道》由一系列独立的部分构成,涵盖的主题从个人责任、职业发展,懂得用于使代码保持灵活、并且易于改编和复用的多种架构技术,运用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,全面阐释了软件开发的许多不一样方面的最佳实践和重大陷阱无论你是初学者,是有经验的程序员,还是软件项目经理,《程序员修炼之道:从小工到专家》都适合你阅读
3、《计算机程序的构造和解释》推荐数916就个人而言,这本书目前为止对我影响醉倒的一本编程书《代码大全》、《重构》和《设计模式》这些经典书会教给你高效的工作习惯和交易细节其他像《人件集》、《计算机编程心理学》和《人月神话》这些书会深入软件开发的心理层面其他书籍则处理算法这些书均有自己所属的位置然而《计算机程序的构造和解释》与这些不一样这是一本会启发你的书,它会燃起你编写杰出程序的热情;它还将教会你认识并欣赏美;它会让你有种敬畏,让你难以克制地渴望学习更多的东西其他书或许会让你成为一位更杰出的程序员,但此书将一定会让你成为一名程序员同步,你将会学到其他东西,函数式编程(第三章)、惰性计算、元编程、虚拟机、解释器和编译器某些人认为此书不适合新手个人认为,虽然我并不完全认同要有某些编程经验才能读此书,但我还是一定推荐给初学者毕竟这本书是写给著名的
6.001,是麻省理工学院的入门编程课程此书或许需要多做努力(尤其你在做练习的时候,你也应当如此),但这个价是对得起这本书的、《程序设计语言》4C推荐数:774这本书简洁易读,会教给你三件事C编程语言;怎样像程序员同样思索;底层计算模型(这对理解“底层”非常重要)——Nathan《C程序设计语言》(第2版新版)讲述深入浅出,配合经典例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机有关软硬件开发的技术人员的参照书《C程序设计语言》(第2版新版)原著即为C语言的设计者之一Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan合著的一本简介C语言的权威经典著作我们目前见到的大量论述C语言程序设计的教材和专著均以此书为蓝本原著第1版中简介的C语言成为后来广泛使用的C语言版本——原则C的基础人们熟知的“hell,world”程序就是由本书初次引入的,目前,这一程序已经成为所有程序设计语言入门的第一课、《算法导论》5推荐数:671《代码大全》教你怎样对的编程;《人月神话》教你怎样对的管理;《设计模式》教你怎样对的设计……在我看来,代码只是一种工具,并非精髓开发软件的重要部分是创立新算法或重新实现既有算法其他部分则像重新组装乐高砖块或创立“管理’层我仍然梦想这样的工作,我的大部分时间(>50%)是在写算法,其他“管理细节则留给其他人・・・・・・------Ran Biron•经典的算法书,被亚马逊网,《程序员》等评比为最受读者爱慕的十大IT图七之一•算法领域的原则教材,全球多所著名大学选用•MIT名师联手铸就,被誉为“计算机算法的圣经”•编写上采用了“五个一”,即一章简介一种算法、一种设计技术、一种应用领域和一种有关话题、《重构改善既有代码的设计》6《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应当开始挖掘代码以求改善书中给出了70多种可行的重构,每个重构都简介了一种通过验证的代码变换手法的动机和技术《重构:改善既有代码的设计》提出的重构准则将协助你一次一小步地修改你的代码,从而减少了开发过程中的风险《重构:改善既有代码的设计》适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及有关专业师生的参照读物我想我不得不推荐《重构》改善既有代码的设计——Martin我必须承认,我最喜欢的编程语录是出自这本书任何一种傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出他人能读得懂的程序——Martin Fowler、《设计模式》7推荐数:617自1995年出版以来,本书一直名列Amazon和各大书店销售榜前列近后,本书仍是Addison-Wesley企业最畅销的图书之一中文版销售逾4万册就我而言,我认为四人帮编著的《设计模式》是一本极为有用的书虽然此书并不像其他提议同样有关“元编程,但它强调封装诸如模式一类的优秀编程技术,因而鼓励其他人提出新模式和反模式antipatterns,并运用于编程对话中Chris Jester-Young、《人月神话》8推荐数588在软件领域,很少能有像《人月神话》同样具有深远影响力并且畅销不衰的著作Brooks博士为人们管理复杂项目提供了最具洞察力的见解既有诸多发人深省的观点,又有大量软件工程的实践本书内容来自Brooks博士在旧M企业System/360家族和OS/360中的项目管理经验该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄中等多种语言,全球销量数白万册确立了其在行业内的经典地位、《计算机程序设计艺术》9推荐数542《计算机程序设计艺术》系列著作对计算机领域产生了深远的影响这一系列堪称一项浩大的工程,自1962年开始编写,计划出版7卷,目前已经出版了4卷《美国科学家》杂志曾将这套书与爱因斯坦的《相对论》等书并列称为20世纪最重要的12本物理学著作目前Knuth正将毕生精力投入到这部史诗性著作的撰写中这是高德纳倾注心血写的一本书----------Peter Coulton、《编译原理》(龙书)10推荐数:462我很奇怪,居然没人提到龙书(或许己经有推荐,我没有看到)我从没忘过此书的第一版封面此书让我懂得了编译器是多么地神奇绝妙・DB、《深入浅出设计模式》11推荐数445强大的写作阵容•《Head First设计模式》(中文版)作者Eric Freeman;•ElElisabeth Freeman是作家、讲师和技术顾问•Eric拥有耶鲁大学的计算机科学博士学位,E1isabath拥有耶鲁大学的计算机科学硕士学位•Kathy Sierra(javaranch.com的仓U始人)FHBert Bates是畅销的HeadFirst系列书籍的创立者,也是Sun企业Java开发员认证考试的开发者本书的产品设计应用神经生物学、认知科学,以及学习理论,这使得这本书可以将这些知识深深地印在你的脑海里,不轻易被遗忘本书的编写方式采用引导式教学,不直接告诉你该怎么做,而是运用故事当作引子,带领读者思索并想措施处理问题处理问题的过程中又会产生某些新的问题,再继续思索、继续处理问题,这样可以加深体会作者以大量的生活化故事当背景,例如第1章是鸭子,第2章是气象站,第3章是咖啡店,书中搭配大量的插图(几乎每一页均有图),因此阅读起来生动有趣,不会感觉到昏昏欲睡作者还运用歪歪斜斜的手写字体,增长“现场感”精心设计许多爆笑的对白,让学习过程不会太枯燥尚有模式告白节目,将设计模式拟人化成节目来宾,畅谈其内在的一切每一章均有数目不等的测验题每章最终有一页要点整顿,这也是精髓所在,我都是运用这一页做复习我懂得四人帮的《设计模式》是一本原则书,但倒不如先看看这部大部头,此书更为简易一旦你理解理解了基本原则,可以去看四人帮的那本圣经了-Calanus、《哥德尔、艾舍尔、巴赫书集异璧之大成》12推荐数437假如下昂真正深入阅读,我推荐道格拉斯喉世达Douglas Hofstadter的《哥德尔、艾舍尔、巴赫书》他极为深入研究了程序员每日都要面对的问题递归、验证、证明和布尔代数这是一本很杰出的读物,
13、《代码整洁之道》难度不大,偶尔有挑战,一旦你要激战究竟,将是非常值得的-Jonik推荐数329细节之中自有天地,整洁成就卓越代码尽管糟糕的代码也能运行,但假如代码不整洁,会使整个开发团体泥足深陷,写得不好的代码每年都要花费难以计数的时间和资源然而这种状况并非无法防止著名软件专家RoberfC.Marlin在《代码整洁之道》中为你展现出了革命性的视野Martin携同ObjectMetltor企业的同事,从他们有关整洁代码的最佳敏捷实践中提炼出软件技艺的价值观,以飨读者,让你成为更优秀的程序员——只要你着手研读《代码整洁之道》阅读《代码整洁之道》需要你做些什么呢?你将阅读代码——大量代码《代码整洁之道》促使你思索代码中何谓对的,何谓错误更重要的是,《代码整洁之道》将促使你重新评估自己的专业价值观,以及对自己技艺的承诺从《代码整洁之道》中可以学到•好代码和糟糕的代码之间的区别;•怎样编写好代码,怎样将糟糕的代码转化为好代码;•怎样创立好名称、好函数、好对象和好类;•怎样格式化代码以实现其可读性的最大化;•怎样在不阻碍代码逻辑的前提下充足实现错误处理;•怎样进行单元测试和测试驱动开发虽然《代码整洁之道》和《代码大全》有诸多共同之处,但它有更为简洁更为实际的清晰例子-Craig P.Motlin、《+》和《+》14Effective C+More Effective C+推荐数:297在我职业生涯初期,Scott Meyer的《EffectiveC++》和后续的《More EffectiveC++》都对我的编程能力有着直接影响正如当时的一位朋友所说,这些书缩短你培养编程技能的过程,而其他人也许要花费数年去年对我影响最大的一本书是《大教堂与市集》,该书教会我很有关开源开发过程怎样运作,和怎样处理我代码中的Bug-John Channing、《编程珠矶》15推荐数282数年以来,当程序员们推选出最心爱的计算机图书时,《编程珠矶》总是位列前列正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和发明力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠矶,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终止集为两部不朽的计算机科学经典名著,影响和鼓励着一代又一代程序员和计算机科学工作者本书为第一卷,重要讨论计算机科学中最本质的问题怎样对的选择和高效地实现算法尽管我不得不羞愧地承认,书中二分之一的东西我都没有理解,但我真的推荐《编程珠矶》,书中有些令人惊奇的东西-Matt Warren、《修改代码的艺术》16by MichaelFeathers本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,并且从涵盖面和深度上都超过了前两部经典书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,并且常常发前人所未发书中到处体现出作者独到的洞察力,以及数年开发和指导软件项目所积累的丰富经验和深厚功力通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力我认为没有任何一本书能向这本书同样影响了我的编程观点它明确地告诉你怎样处理其他人的代码,含蓄地教会你防止哪些(以及为何要防止)-WoHbyte同意诸多开发人员讨论用洁净的石板来编写软件但我想几乎所有开发人员的某些时候是在吃其他开发人员的狗食-Bernard Dy
17、《编码隐匿在计算机软硬件背后的语言》这是一本讲述计算机工作原理的书不过,你千万不要由于“工作原理’之类的字眼就武断地认为,它是晦涩而难懂的作者用丰富的想象和清晰的笔墨将看似繁杂的理论论述得通俗易懂,你丝毫不会感到枯燥和生硬更重要的是,你会因此而获得对计算机工作原理较深刻的理解这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解不管你是计算机高手,还是对这个神奇的机器充斥敬畏之心的菜鸟,都不妨翻阅一下《编码:隐匿在计算机软硬件背后的语言》,读一读大师的经典作品,必然会有收获我推荐Charles Petzold的《编码》在这个充斥工具和IDE的年代,诸多复杂度已经从程序员那‘抽取”走了,这本书一本开眼之作-hemil、《禅与摩托车维修艺术/18Zen andthe ArtofMotorcycle Maintenance^对我影响最大的那本书是Robert Pirsig的《禅与摩托车维修艺术》不管你做什么事,总是要力争完美,彻底理解你手中的工具和任务,更为重要的是,要有乐趣(由于假如你做事有乐趣,一切将自发引向更好的成果)-akr、人件集:人性化的软件开发》19^Peopleware/Demarco和Lister表明,软件开发中的首要问题是人,并非技术他们的答案并不简朴,只是令人难以置信的成功第二版新增长了八章内容-Eduardo Molteni、《编程人生》20Coders atWork/这是一本访谈笔录,记录了当今最具个人魅力的15位软件先驱的编程生涯包括DonaldKnuth、JamieZawinski JoshuaBloch KenThompson等在内的业界传奇人物,为我们讲述了他们是怎么学习编程的,在编程过程中发现了什么以及他们对未来的见解,并对诸如应当怎样设计软件等长期以来一直困扰诸多程序员的问题谈了自己的观点一本非常有影响力的书,可以从中学到某些业界顶级人士的经验,埋解他们怎样思索并,作-Jahanzeb Farooq、《别闹了,21Surely YoureJoking,Mr.Feynman!/费曼先生!》虽然这本书也许有点偏题,但不管你信不信,这本书曾在计算机科学专业课程的阅读列表之上一种优秀的角色模型,一本有关好奇心的优秀书籍-mike
511、中文版》22^Effective Java此书第二版教你怎样编写漂亮并高效的代码,虽然这是一本Java书,但其中有诸多跨语言的理念一Marcio Aguiar、《23Patterns ofEnterprise ApplicationArchitecture企业应用架构模式》/很奇怪,还没人推荐Martin Fowler的《企业应用架构模式》-levi rosol、《》和《》24The LittleSchemer TheSeasoned Schemernmiranda这两本是LISP的英文书,尚无中文版美国东北大学网站上也有电子版、《交互设计之路》英文名《25The InmatesAre RunningTheAsylum:Why HighTech ProductsDrive Us》该书作者:Crazy andHow toRestore theSanity Alan人称之父,交互设计之父Cooper,Visual Basic本书是基于众多商务案例,讲述怎样创立更好的、高客户忠诚度的软件产品和基于软件的高科技产品的书本书列举了诸多真实可信的实际例子,阐明目前在软件产品和基于软件的高科技产品中,普遍存在着“难用”的问题作者认为,“难用”问题是由这些产品中存在着的高度“认知摩擦”引起的,而产生这个问题的本源在于现今软件开发过程中欠缺了一种为顾客利益着想的前期“交互设计”阶段“难用”的产品不仅损害了顾客的利益,最终也将导致企业的失败本书通过某些生动的实例,让人信服地讲述了由作者倡导的“目的导向”交互设计措施在处理“难用”问题方面的有效性,证明了只有变化既有观念,才能有效地在开发过程中引入交互设计,将产品的设计引向成功本书虽然是一本面向商务人员而编写的书,但也适合于所有参与软件产品和基于软件的高科技产品开发的专业人士,以及关怀软件行业和高科技行业现实状况与发展的人士阅读。
个人认证
优秀文档
获得点赞 0