软件工程师必读的10本书,你读了吗?

全文共4614字,预计学习时长14分钟

若想成为一名优秀的软件工程师,在努力写代码的同时,“读代码”同样至关重要。

在当代 会,人们的日常生活因各种各样的新奇玩意儿而变得丰富多彩,比如播客、视频以及博客等等。尽管如此,仍然有许多人会选择捧读一本好书。笔者作为一名资深“书虫”,也已经涉猎过许多技术类书籍,例如软件工程。至今,笔者仍然在试图通过阅读以求新知。

软件工程领域的发展日新月异,今天的热门可能不久后就沦为明日黄花,因此要在该领域寻得一本好书,实为不易。尤其是如果要找一本与某一特定编程语言相关的书目,则更为艰难。

然而,在该领域也有一些书籍历久弥新,比如那些探讨元主题、设计模式或者一般思维模式的软件工程类书籍。

在下文笔者列出的书单中,就包括目前最热门、最畅销的软件工程类书籍。下文所推荐的书目非常经典,至今依旧光彩熠熠,并且颇受高级软件工程师们的推崇,因此常将其推荐给初级开发人员。在当今这个时代,时间的确很宝贵,尤其是对软件工程师而言。但是,如果真的能花上些许时间拜读一下这些书目,则无论对于自身的提高还是未来的职业生涯而言,必将有所裨益。在这里有必要说明一下,下文书目的排列顺序完全随机,与其重要性的大小无关,因为每本书均有其侧重且值得被推荐。

注意:下文出现的所有链接皆非附属链接。

《代码大全(第二版)》(Code Complete)

此书对软件构建进行了全面分析,逻辑严密,因此在业界颇受好评。在本书中,涉及的话题主要涵盖软件设计、编码、调试以及测试等。

因此,对于有着一至三年专业编程经验的工程师而言,这本书尤其值得阅读,因为他们会受益良多。但是笔者认为,即使是软件编程的初学者也不妨试读一下,因为他们可以从这本书中获得更多的自信,以面对未来的软件编程工作。

指点迷津:软件开发人员必须要有能力处理复杂事物,编写易于维护的代码,并且手不释卷——这不仅仅是为了自己,也是为了他人。

《程序员面试金典》(Cracking the Coding Interview)

《代码整洁之道》(Clean Code)

另外同样值得注意的一点是,由于此书著于2009年,且受限于现有的工具与IDE,因此书中某些内容已经过时,例如代码格式部分。但总体来说,这本书仍然值得拜读。

《重构(第二版)》(Refactoring)

· 为什么应该重构代码?

· 如何辨别哪些代码需要重构?

· 如何成功重构代码?

在阅读此书后,人们将能更好地理解重构的过程及其一般原则,并将其快速应用于自己的代码库。另外,此书的读者可能还会额外获赠一个灵敏的“狗鼻子”,当自己的队友写的代码亟需重构时,这个鼻子就能立马闻出来并提醒对方。

《Head First设计模式》(Head First Design Patterns)

编程著作《Head First设计模式:重视大脑的学习指南》(Head First Design Patterns: A Brain-Friendly Guide)由埃里克·弗里曼(Eric Freeman)、伯特·贝茨(Bert Bates)、凯西·塞拉(Kathy Sierra)与伊丽莎白·罗伯森(Elisabeth Robson)合作完成,主要教授人们设计模式与方法,以供其他开发人员用于创建可重复使用且灵活度高的功能性软件。在该书中,有许多高质量的可视化图表,通过这些图表,读者们能够更加容易地学习新概念。

对于想要了解工厂、单例或者依赖注入等模式的人而言,这本书绝对是不二选择。由于本书所使用的案例均由Java写成,因此读者最好能对该语言或其它面向对象的编程语言有所了解。

《企业应用架构模式》(Patterns of Enterprise Application Architecture)

通过阅读此书,人们将能够对企业应用进行分层,获悉组织业务逻辑的主要方法,使用MVC模式来组织Web应用,并且在多事务运行时处理并发数据。

然而,这本书正逐渐淘汰于时代无情的洪流中,因此许多现代术语都未及时更新,例如REST、云端、JSON等。尽管如此,此书仍然不啻为一本好书,但在真正阅读时要注意取其所长,弃其所短。

《修改代码的艺术》(Working Effectively with Legacy Code)

通过阅读此书,人们将能够理解修改软件的一般机制,例如添加特性、修正缺陷、优化性能、改进设计等。除此之外,读者也能学会如何准备遗留代码的测试,以及如何确定哪些代码需要修改。

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

(The Clean Coder)《代码整洁之道:程序员的职业素养》(The Clean Coder: A Code of Conduct for Professional Programmers)是“Bob大叔”的另一著作,书中阐述了软件工艺的技术、原理、工具和实践,并且提供了一些关于估算、编码、重构与测试的实用建议。

在阅读本书后,程序员们将能够更好地处理矛盾,缓解紧迫的日程表,以及应对不近人情的上司。此外,他们也能够学会如何高效管理时间,长期应对工作压力,以及避免身体或精神上的崩溃。最后,读者也能从这本书中学会如何做到流畅编码,以及如何在开发人员与团队之间培养一种合作共赢的良好氛围。

虽然此书在业界声誉颇高,但笔者自觉其并非金科玉律。例如,书中包含许多未经证实的事件与假定情况,并且常会由此得出结论称,软件开发人员最终要为自己的工作全权负责。为此,书中竟然提出了如下建议:开发人员编写的代码如果出了问题,则由该开发人员对因此错误而受损的公司进行经济补偿。

因此笔者建议,阅读此书时注意仔细甄别,披沙拣金。

《算法导论(第三版)》(Introduction to Algorithms)

《算法导论(第三版)》由托马斯·科尔曼(Thomas H. Cormen)、查尔斯·雷瑟尔森(Charles E.Leiserson)、罗纳德·李维斯特(Ronald L. Rivest)与克利福德·斯坦(Clifford Stein)合作编撰而成,被誉为“计算机算法的圣经”,可用于指导各种算法。《算法导论》一书所涵盖的内容包罗万象,并且受众广泛,无论是“菜鸟”还是“老司机”皆可入坑。此外,书中措辞言简意赅,涵盖主题丰富多样。然而,此书内容偏复杂,因此不易消化。

具体来说,书中涉及的主题包括数据结构、图论、计算几何学、快速算法,以及用于处理复杂任务的多项式时间算法等等。虽然书中还包含一些伪代码示例,但笔者认为,它依旧是一本经典的理论著作。

《程序员修炼之道》(The Pragmatic Programmer)

《程序员修炼之道》曾是笔者读过的最重要的书目之一。无论是在技术上还是专业领域,该书都热心地建言献策,最后不仅协助笔者完成了众多项目,而且也让笔者自身得以进步与发展。

通过阅读此书,人们将能够获知持续学习的定义及其重要性,编写灵活、动态、可适应的代码,解决并发代码问题,防范安全漏洞,以及进行有效的测试等等。

因此,如果必须推荐一本书,那么《程序员修炼之道》必定是笔者的首选。

综上:在全世界程序员的圈子内,上述书单中的作品最受追捧。如若要为读者从中挑选一本,那么毋庸置疑,一定是安德鲁·亨特(Andrew Hunt)执笔的《程序员修炼之道》。

“Bob大叔”的系列著作虽然在业界赫赫有名,也广受同行青睐,但笔者仍然选择批判性地去阅读,因为其中某些观点,笔者不敢苟同。

留言点赞关注

我们一起分享AI学习与发展的干货

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月18日
下一篇 2020年2月18日

相关推荐