分析了4000万条Stack Overflow讨论帖:这些才是最受欢迎的编程书

链接:https://medium.freecodecamp.org/i-analyzed-every-book-ever-mentioned-on-stack-overflow-here-are-the-most-popular-ones-eee0891f1786

程序员想要找到一本值得看的书并不是一件容易的事,而且通常伴随一定风险。

作为一名开发人员,闲暇时间很少,而阅读一本书却需要很长时间。闲暇时间你可以用来编程,用来休息,但你也可以把这个宝贵的时间用来来读书和提高自身的技能。

那么你应该阅读哪本书?我和我的同事经常讨论书籍,我发现我们对某本书的看法差异很大。所以我决定更深入地研究这个问题。初步想法是:找出世界上最受欢迎的程序员书籍。

幸运的是,Stack Exchange(Stack Overflow的母公司)刚刚发布了他们的调查数据。于是我们利用这些数据,分析了Stack Overflow上40多万个问题和答案,其中被讨论最多的编程书籍,总共5720本。

被推荐次数最多的书是《修改代码的艺术》,其次是Design Pattern: Elements《设计模式:可复用面向对象软件的基础》

虽然这些书的命名看起来很枯燥,但内容却十分高质量。你可以通过选择标签对相应进行排序,如JavaScript,C,Graphics等。如果你想入门编程或者想提升自己的技能,这些书籍无疑是一个好的开始。

1、《修改代码的艺术》

本书不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。

作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。

2、《设计模式》

这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。

作者首先介绍了模式以及它们如何帮助你设计面向对象的软件。接着介绍系统的命名,解释,评估和面向对象系统中的重复设计。读完本书,你将了解这些重要模式如何适用于软件开发过程,以及如何利用它们最有效地解决您自己的设计问题。

3、《代码整洁之道》

如何从一开始就编写出干净的代码并最终生成更强大的应用程序的实用方法手册。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码的规则。只要遵循这些规则,就能编写出干净的代码。

4、《Java并发编程实战》

这是一本关于Java线程和并发的书籍,书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何识别可并行执行的任务等内容。

5、《领域驱动设计》

介绍将领域驱动设计应用到软件开发中的方法。全书围绕着设计和开发实践,结合若干真实的项目案例,向读者阐述如何在真实的软件开发中应用领域驱动设计。

6、《JavaScript语言精粹》

介绍JavaScript的特性,涵盖语法,对象,函数,数组,正则表达式,继承和方法等主题,向读者介绍如何运用JavaScript创建真正可扩展的和高效的代码。

7、《企业应用架构模式》

本书是企业系统开发人员的手册,帮助他们了解企业应用程序开发中的复杂性和经验等。它为信息系统开发人员面临的日常问题提供了经过验证的解决方案,讲述了51个模式并给出主流平台(Java和.NET)中的应用实例

8、《代码大全》

这是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。

9、《重构》

通过这本书,用户可以显著改进面向对象代码的设计,性能和可管理性,而不会改变其接口或外部行为。向用户展示了如何一步一步地发现重构的最佳机会,以及如何去做。

10、《深入浅出设计模式》

本书集合四人帮的23个模式外加这十几年来新增的一些模式,作者群以诙谐、幽默、图文并茂、打破传统著书的方式,由浅入深地详解了设计模式的精神及重点。全书全部以当红的 Java 程序语言为范例。

11、《C程序设计语言》

介绍C编程语言的功能,讨论数据类型,变量,操作符,控制流,函数,指针,数组和结构,并介绍UNIX系统接口,人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。

12、《Effective C++:改善程序与设计的55个具体做法》

C++名著,内容不必多说,但它并不是一本读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考手册,而是需要您去反复阅读体会的。

13、《测试驱动开发》

了解测试驱动开发的必读书籍!测试驱动开发(TDD)以测试作为开发过程的中心,它要求在编写任何产品代码之前, 首先编写用于定义产品代码行为的测试,而编写的产品代码又要以使测试通过为目的。这是一种革命性的开发方法, 能够造就简单、清晰、高质量的代码。

14、《算法导论》

有些关于算法的书很严谨但不全面,有些是涵盖了大量的内容,但缺乏严谨性,本书却兼具了严谨性和全面性,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。

全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。

15、《精通正则表达式》

本书主要讲解了正则表达式的特性和流派、匹配原理、优化原则、实用诀窍以及调校措施,并详细介绍了正则表达式在Perl、Java、.NET、PHP中的用法。

16、《CLR Via C#》

针对CLR和.NET Framework 4.5进行深入、全面的探讨,并结合实例介绍了如何利用它们进行设计、开发和调试。通过这本书,读者可以掌握CLR和.NET Framework的精髓,轻松、高效地创建高性能应用程序。

17、《Cocoa Programming for Mac OS X》

一本关于cocoa的书,也是学习Mac OS App开发很好的一本入门书籍。

18、《Effective STL》

STL是C++标准库的一部分。本书是针对STL的经验总结,书中列出了50个条款,绝大多数条款都解释了在使用STL时应该注意的某一个方面的问题,内容清晰,简洁,直观的风格使其成为每个STL程序员必不可少的书籍。

19、《C++设计新思维》

本书从根本上展示了generic patterns(泛型模式)或pattern templates(模式模板),面向对象编程和设计模式。它描述了通用编程中使用的C ++技术,并实现了许多工业强度组件。

20、《大规模C++程序设计》

在本书中,Lakos介绍了将大型系统分解成较小且较好管理的组件层次结构(不是继承)的过程。

这种具有非循环物理依赖的系统的维护、测试和重用从根本上比相互紧密依赖的系统更容易且更经济。此外,本书还说明了遵从好的物理设计和逻辑设计规划的动机。

最后,值得一提的是,作者发布这篇文章的时候还公开了数据分析代码,感兴趣的可以通过此链接查看:https://medium.freecodecamp.org/i-analyzed-every-book-ever-mentioned-on-stack-overflow-here-are-the-most-popular-ones-eee0891f1786

●编号337,输入编号直达本文

●输入m获取到文章目录

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180716B0MN7R00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券