程序员的私藏好书中,一定有这7本!

众所周知,读一流的书,是人生最大的捷径。今天推荐异步社区的 7 本经典程序员必读书籍!并送出 7 本,赠送方式见文末!

无论是从书中得到提升专业技能的知识,还是增长见识、启迪智慧,这些都只有好书才能做到的。

当你看书不挑,那就意味着当你读了一本烂书的时候,也就失去了阅读一本好书的时间,烂书除了浪费你的时间,还会混乱你的思维。现如今,市场上的书越来越多,也就意味着你必须越来越会挑!

恰好,推特上一位名为 Pierre de Wulf 的网友突发奇想,有史以来最受欢迎的编程书籍到底是哪些?为了找到程序员们最为推崇的那些编程书籍,他使用 Python 编写了脚本,拉取了大量的相关数据。

而今天异步君整理的这份程序员修炼必读经典,就涵盖了有史以来最受欢迎的编程书籍中的最热门+必读的书籍,建议你千万千万千万不能错过!

01

代码整洁的重要性

代码整洁之道

作者: 【美】Robert C. Martin

译者: 韩磊

几乎所有的程序员都曾在职业生涯上遇到这个难题——糟糕的代码。

在编写代码时没有考虑规范和阅读感,而随着时间流逝,在代码上的特性越加越多,阅读起来要花费不少的时间。

渐渐地,发布周期更是开始拉长,缺陷总是不能修复,装载时间越来越久,崩溃的次数越来越多,最终只能放弃原先的代码,重写!

而Bob大叔为我们解决了这个原先难以解决的大难题,《代码整洁之道》的面世,改变了无数的程序员编写代码的方式、习惯。

Robert C. Martin,世界级编程大师,设计模式和敏捷开发先驱,敏捷联盟首任主席,C++ Report前主编,被后辈程序员尊称为“Bob大叔”。20世纪70年代初成为职业程序员,后创办Object Mentor公司并任总裁。

在《代码整洁之道》一书中,作为编程领域佼佼者的Bob大叔给出了一系列行之有效的整洁代码操作实践,这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例,书中举例的项目均来自Bob大叔多年职业生涯中的个人经历。

Bob大叔为程序员们提供了详尽的微距视角,涉及“命名”、“函数”、“代码格式”、 “异常处理”、“单元测试”等编码主题,除了巨细靡遗地向软件工匠们极力传授整洁编码的艺术,还进一步分享了他在探索“软件之美”旅途中的参证心得。

大家都知道软件质量的好很重要,但它不仅依赖于架构及项目管理,更是跟代码质量息息相关。而代码质量又与其整洁度成正比,换句话说,干净的代码,不仅在质量上较为可靠,也为后期维护、升级奠定了良好的基础。

无论你是敏捷开发流派还是传统开发流派,只要你想保证软件质量,那就不仅要注重架构及项目管理,更要留心代码质量。

而现在,你只要遵循《代码整洁之道》中的规则,就能编写出干净的代码,从而有效提升代码质量!

02

程序员职业素养的重要性

代码整洁之道:程序员的职业素养

作者: 【美】Robert C. Martin(罗伯特 C. 马丁)

译者: 余晟 ,章显洲

Bob大叔想将过去40余年编程生涯的心得体会悉数传授给新一代程序员,以自己以及身边的同事走过的弯路、犯过的错误为例,为大家讲解想要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动,意在为后来者引路,助其职业生涯迈上更高台阶。

于是,《代码整洁之道:程序员的职业素养》诞生了。和《代码整洁之道》不同在于,它不仅是一本技术类书籍,本书中不仅有相当的内容是介绍纯技艺的方面,比如测试驱动开发等,更有其他有趣且实用的内容——关于程序员职业生涯中需要具备的素养,这是你在其他书里所看不到的。

例如:什么情况下应该对业务部门说“是",什么情况下应该说“不"。

相信很多人没有想过这些问题,或者没有明确的答案,不妨看看Bob大叔是怎么说的:

说“YES”时,你对自己将会做某件事做了清晰的事实陈述,而且还明确说明了完成期限。那不是指别人, 而是指你自己。你陈述的是自己会去执行的一项行动,而且,你不是“可能”去做,或是“可能做到”,而是 “会”做到。而不是在没有明确目标和期限的情况下,就第一时间草率地给出了确认的答复,任务交付时却无法实现自己的承诺,项目就落得著名的 IBM OS/360 操作系统的失败下场。

有时候,获取正确决策的唯一途径,便是勇敢无畏地说出“不”字……我们要明白,委屈专业原则以求全, 并不是问题的解决之道。舍弃这些原则,只会制造出更多的麻烦。在工作中对着那些不合理的工作任务,主动说几次“NO”,之后你会逐渐发现:你只需要花三分的力气去拒绝那些无法完成的工作任务,就可以节省十分甚至二十分开发的时间。

在书中,类似的例子还有很多,许多程序员在阅读这本书时会发出惋惜的声音,认为自己如果早一点读到这本书,之前就不会犯这样那样的错误,就能更早更好地积累自己的职业素养。

国际著名的软件过程博物学家 Matthew Heusser更是对《代码整洁之道:程序员的职业素养》给予了高度评价:想要从技术人员晋升为专业人士,该经历哪些步骤呢?而这本书将为你悉数讲解,让你迈上职业生涯更高的一个台阶。

03

重构的重要性

重构:改善既有代码的设计(第2版)

作者: [美]马丁•福勒(Martin Fowler)

译者: 熊节 ,林从羽

在编程世界里,有一句古老的工程谚语:“如果它还可以运行,就不要动它。”

而Martin Fowler推翻了这一说法——重构(refactoring),在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。

Martin Fowler,世界级软件开发大师,敏捷开发的开拓者和创始人全球知名的面向对象分析设计、UML、模式等专业领域的领头羊,首创敏捷开发方法论,被誉为软件开发“教父”,现任职于全球知名技术咨询公司ThoughtWorks,首席科学家。

重构更是被众人高度称赞:一本编程技术类书籍能够让读者在工作或实践多年后,还在反复咀嚼玩味、爱不释手、引导着读者前进着,那个必定是Martin Fowler的《重构》系列!

“重构”这个概念最开始来自于 Smalltalk圈子,由于重构是框架开发中不可缺少的一部分,所以当框架设计者讨论自己的工作时,这个术语就诞生了。

Martin在《重构:改善既有代码的设计》中揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。

这本书受到了广大程序员的喜爱,他们觉得在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构是一个非常妙的事,而书里提出的重构准则更是帮助他们学习如何有条不紊地、一次一小步地修改代码、改进程序结构,且不会引入错误的正确的重构方式,最终得到有效的、长期可运行的代码程序。

后来,这本风靡国际IT行业的《重构》被引入国内,在豆瓣评分以9.2的高分长期霸屏程序员必读书单中。

现在,《重构:改善既有代码的设计(第2版)》诞生了,Martin在《重构:改善既有代码的设计》的基础上做了全面修订,反映了编程领域业20年来发生的许多变化,但Martin传递的理念也始终如一:不改变外在行为,而提高代码质量,但第2版将基础功夫做得更扎实了,豆瓣评分更是高达9.5分

重构的关键是理念:通过进行最细微的改变,然后将这些变化串联起来。将一个大变化拆分为许多小变化,又在尽可能多进行细微变化的同时,不改变系统的整体表现,然后随时间推移,反复练习并思考如何进行拆分。

Martin在《重构 2》一书中通过重构框架思考问题的体验,尝试了各种高效的不同重构手法后,找出能重构手法生成理想序列,继而进行尝试识别出这种重构手法,而同样的逻辑也适用于更广泛的层面。Martin采用了70多个种可行的重构,并且把每个重构都介绍了一种经过验证的代码变换手法的动机和技术。

《重构 2》是每个程序员职业生涯中不可缺少的一本书,书中的重构准则能帮助大家一步步修改自己的代码,减少了开发过程中的风险!

 

04

程序员必看的计算机科学名著

多年以来,当让程序员推选喜爱的计算机图书时,有两本书总是位于前列,影响和激励着一代又一代程序员和计算机科学工作者。

在美国,它们不仅被用作大学低年级数据结构与算法课程的教材,还用作高年级算法课程的辅助教材。连美国著名大学麻省理工学院的电气工程与计算机科学开放式核心课程算法导论都将这两本书列为不得错过的推荐读物。

它们就是Jon Bentley的《编程珠玑(第2版)》和《编程珠玑(续)》。

Jon Bentley,世界著名计算机科学家,被誉为实践探索先锋,影响算法发展的十位大师之一,也是2004年Dr. Dobb's程序设计卓越奖的获得者以及畅销书《编程珠玑》的作者。

这两本书不但覆盖了大学算法课程和数据结构课程的大部分内容,且书中有许多真实的历史案例和许多极好的练习题以及部分练习题的提示与解答,非常适合自学。不强调单纯从数学上来进行分析的技巧,而是强调结合实际问题来进行分析、应用和实现的技巧。

Bentley建议,阅读这两本书时需要备有纸和笔,最好还有一台计算机在手边,边读边想边想边做,这样才能将阅读这两本书的收益最大化。

编程珠玑(第2版)

作者: 【美】Jon Bentley

译者: 黄倩 ,钱丽艳

《编程珠玑(第2版)》是计算机科学方面的经典名著,围绕程序设计人员面对的一系列实际问题展开。Bentley以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。

Bentley为各个层次的程序员打造了一份各个阶段都能得到收获的书籍,更独具一格的是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。

更加值得一提的是,书中解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义——每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。

编程珠玑(续)

作者: 【美】Jon Bentley

译者: 钱丽艳 ,刘田 ,等

《编程珠玑(续)》是《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识,延续了《编程珠玑》的特色,但《编程珠玑(续)》涉及的范围更广,包括文档、小语言、性能监视、图形输出等。

Bentley选取许多具有典型意义的复杂编程和算法问题放入《编程珠玑(续)》,生动描绘了历史上大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程。

Bentley将程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例等等,这些内容结合成一个有机的整体,如一串串珠玑展示给读者。

引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧——每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。

这两本书涵盖了Bentley的美好愿望:希望能让各个阶段的程序员都从他的书中学到东西。

05

程序员必备软技能

对于程序员这个行业来说,当你开始对未来的发展感到迷茫感到焦躁、迷茫——职业焦虑,就意味着,你该好好地为自己做一个规范的职业规划了。

“我该如何规划自己的职业生涯?快速的提升能力以及积攒资源,以应对一直变化的未来",答案就是软技能。

近些年来,软技能被大多数程序员认可,与越来越多的人觉得限制技术人员职场发展的因素,往往不是技术能力,而是技术之外的软技能密不可分。

在软技能的书海里,不得不读的当属John Sonmez的软技能系列书籍。里面汇集了那些John在职业生涯中遇到的所有问题。

约翰·森梅兹(John Sonmez) ,10岁时起就开始编写代码并在Q-Basic中创建了第一款游戏,知名软件开发大师,互联网上最大的程序员博客“Simple Programmer”网站的创始人,他还为在线培训机构Pluralsight开发了50多门在线课程。

被众多软件开发人员称为人生导师,他帮助软件工程师、程序员和其他专业技术人员推动事业进步,通过“化繁为简”的方法,赋予他们达成自身目标的力量,这也是他所追求的。

在2013年2月14日的时候,33岁的John正式退休。

但他又没有完全退休,而是将将所有精力都放在发展简单程序员上(使它成为软件开发人员在Internet上的最佳选择)及写出对所有人有帮助的职业生涯规划书籍(《软技能》)。

当时的John无法找出答案,因此,现在的他要创造出答案!

软技能:代码之外的生存指南

作者: 【美】John Z. Sonmez(约翰 Z. 森梅兹)

译者: 王小刚

《软技能:代码之外的生存指南》一书中,系统地介绍了软技能的培养方法,帮助很多人走出困惑。他全程从程序员的视角来撰写,很系统的介绍了程序员必备的软件能归纳为7大类:职业、自我营销、学习、生产力、理财、健身、精神,旨在帮助你成为一个成功的程序员。

聚焦于软件开发人员生活的方方面面且关注自身全方位发展的《软技能:代码之外的生存指南》,围绕“人”这一核心,用 360 度环状视角描述我们在生活中需要关注的各种“软技能”,关注于“如何让你的生活更加美好”,在豆瓣评分上获得8.0分的高分好评。

《软技能:代码之外的生存指南》书中除了针对各项重要技术的“软技能”,还包括职业规划、提高生产力、个人投资与理财,乃至健身与恋爱:如何与客户、同事以及经理们打交道,如何保证工作效率,如何保障财务安全,如何保持自己的体形,如何找到真爱……这些统统被开发人员视为畏途的问题一一解答,为开发人员提供建议。

从既涉及生活习惯到思维方式,从凸显技术中“人”的因素, 全面讲解软件行业从业人员所需知道的所有“软技能”。

帮助软件工程人员、编程人员和其他技术人员能够积极思考自己的职业生涯,丰富自己的生活,让自己更接近成功。

软技能2:软件开发者职业生涯指南

作者: [美]约翰·森梅兹(John Sonmez)

译者: 王小刚

本书是《软技能:代码之外的生存指南》一书作者的新作,专门就“职业发展”的主题做了很多深入而又富有建设性的探讨。是一本为程序员量身定做的职业发展指南,处于任何发展阶段的软件开发者,都将从本书中获益。

如果你是软件开发/编程的初学者或者只是对软件开发感兴趣的人士,可以通过本书了解如何开启软件开发的职业之旅,如何获得第一份工作;如果你是中级软件开发者,可以通过本书发现自己的知识短板,学会如何进一步拓展和掌握新的技术技能,如何学习新的编程语言,如何提升技术水平,如何在自己梦想的编程工作中深耕细作;如果你是身经百战的专业软件开发者,可以通过本书了解如何拓展和推进自己的职业生涯,如何更好地与同事和老板相处,如何推销自己的想法,如何做好向上管理,如何升职加薪。 

资深软件开发者兼软件开发者的人生导师约翰·森梅兹在本书中针对职场上的各项重要的“软技能”,为软件开发者提供专业的职业发展指导,让软件开发者的职业生涯更加精彩和辉煌。 

本书与《软技能:代码之外的生存指南》既相得益彰,又各有侧重——《软技能:代码之外的生存指南》全方位论述软件开发者生活和工作中需要关注的各种“软技能”,而本书则从软件开发者职业生涯的时空关系出发,描述软件开发者职业发展整个历程中应具备的各种“软技能”。

-END-

赠书福利区

以上 7 本书中你最想要哪一本,为什么?关注小詹的视频号「小詹同学」,在第一个视频中留言分享,24小时内点赞最多的 5 位小伙伴将获取一本以上书籍(可自由选择),在公众号本文下留言相同规则送 2 本!

点击下方“阅读原文”加我微信

↓↓↓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值