要成为优秀的程序员,要阅读哪些书?

左视觉丶Left

国外知名网站stackoverflow上曾有一个问题调查:哪本书是对程序员最有影响、每个程序员都该阅读的书,这个调查吸引了153,432人访问,读者共推荐出了478本书,其中最火的一本书已经被顶了1333次。

如果你是个程序员,相信你一定有兴趣看看这些书都是哪些?下面就给大家分享Stack Overflow上最受欢迎的11本程序员书籍!

第一名:1333票《代码大全(第二版)》

● 出自著名IT畅销书作者史蒂夫·迈克康奈尔之手

● 曾被《软件开发》杂志授予优异产品震撼大奖

第2版的《代码大全》是对第一版完全进行了重写;增加了很多与时俱进的内容。是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。

这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。可以说,无论是什么背景的读者,阅读这本书都有助于在更短的时间内、更容易地写出更好的程序。

第二名:1181票 《程序员修炼之道》

《程序员修炼之道》由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。

第三名:701票《计算机程序的构造和解释》

以一种对解决问题和编程技术分析和严谨的态度,这本书面向于工程。这本书进一步解释了4个最著名的编程语言范式——命令式编程,面向对象编程,基于逻辑编程和应用性编程。

第四名:572票 《C程序设计语言》

在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。本书原著即为C语言的设计者之一Dennis M.Ritchie和著名计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。

我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。人们熟知的“hello,World"程序就是由本书首次引入的,现在,这一程序已经成为众多程序设计语言入门的第一课。对于计算机从业人员来说,《C程序设计语言》是一本必读的程序设计语 言方面的参考书。

第五名:481票 《算法导论》

这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。

涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。

第六名:478票 《重构:改善既有代码的设计》

Martin Fowler写的《重构Refactoring》主要关于改进现有代码的设计。这是一个改变软件系统而不改变代码的外部行为,却能提高它内部结构的过程。

《重构:改善既有代码的设计》(中文版)的核心是一份完整的重构名录(catalog of refactoring),其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术。某些项目如Extract Method和Move Field看起来可能很浅显,但不要小看它们,因为理解这类技术正是能否顺利进行重构的关键。

第七名:447票 《人月神话》

这本书为人们管理复杂项目提供了颇具洞察力的见解,既有很多发人深省的观点,也有大量的软件工程实践。书中的内容来自布鲁克斯在IBM公司System 360家族和OS 360中的项目管理经验。

第八名:440票 中文版《设计模式》

这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。书中分类描述了一组设计良好、表达清楚的软件设计模式,这些模式在实用环境下特别有用。此书适合大学计算机专业的学生、研究生及相关人员参考。

第九名:394票 《计算机程序设计艺术 (第一卷)》

这又是一部经典之作。由著名的计算机科学家教授Donald Knuth编著,并得到行业内众多顶尖程序员的一致好评。甚至连比尔盖茨也对这本书赞誉有加

本书第1卷首先介绍编程的基本概念和技术,然后详细讲解信息结构方面的内容,包括信息在计算机内部的表示方法、数据元素之间的结构关系,以及有效的信息处理方法。此外,书中还描述了编程在模拟、数值方法、符号计算、软件与系统设计等方面的初级应用。

第10名:364票 《编译原理》

这本书全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,本书进行了全面的修订,涵盖了编译器开发方面的最新进展。每章中都提供了大量的系统及参考文献。

第11名:329票 《Head First 设计模式》

看上去最不像技术的编程书籍!每个页面都包含涂鸦、图片以及其他一些吸引眼球的东西。可能给人的印象是一本阅读起来很轻松的书,但事实上它会讨论编程的一些核心主题——设计模式。

这本书虽然没有覆盖所有存在于这个世界的模式,但是会涵盖所有你可能需要用于解决现实问题的模式。它将帮助你创建功能性的,优雅的,可重用的和灵活的软件。大多数关于设计模式的书籍谈论的是如何实现模式,但这本书的作者同时还解释了为什么以及怎么样。

以上就是最受欢迎的11本程序员书籍,希望对大家有所帮助。如今,IT行业发展迅速,前景十分光明,学好编程对对日后的发展肯定有帮助,希望大家都能抓住机遇,在IT领域闯出自己的一片天。


千锋武汉

从性格上分析,要适合做程序员必须得有足够的耐心,倘若坐不住冷板凳,那么会很难胜任这份工作。其次,软件开发技术容量很大,一口吃不成胖子。所以,先需要从业内人士那里咨询一下意见,然后为自己制定学习计划,循序渐进。

在自学编程时,我们会自学的先天缺陷——没人为你纠错。在这个时候,最好的方式就是多逛技术论坛。在专业的论坛上,对于问题的解答都十分详尽,而且还有全面多样的解决方案。在打基础时,尝试这些方案是最直接有效的。

好了,废话不多说,下面直接上干货。

一.书籍类干货

1.入门书籍:《c primer plus》,一本国外的书,非常细致,本书用来入门很不错。

2.进阶书籍:《C和指针》,《C专家编程》,《C陷阱与缺陷》,《The C Programming Language》。这四本书号称C语言四大圣经。

二.公开课网站

1.慕课网(imooc.com)

对于编程学习而言,我认为慕课网是国内最优秀的免费公开课平台了。慕课网上的课程很全面,涵盖了主要的编程语言,还有数据库、移动开发和云计算等等方面的课程,这些课程是全中文的,学习起来毫无障碍。网站各个课程的交流板块和实战板块更是可以帮助学习者对学习的知识快速上手。

Coursera拥有全中文的页面,收录的课程来自全球最顶尖的大学,比如中国的北大、复旦,美国的斯坦福、加州理工等等。另一方面,coursera的课程也非常全面,从基础科学、语言学习到工程科学一应齐全。

网易公开课和coursera一样,视频内容非常全面,全球各所优秀大学的计算机知识公开课便是其中的一部分。更加难能可贵的是,网易公开课上的外语视频都会被添加高质量的中文字幕,而这可以让我们事半功倍地学习外国原汁原味的计算机知识的讲授。

4.其他公开课平台

除了以上三个笔者常用的平台之外,如今还有极客学院(jikexueyuan.com)和腾讯课堂(ke.qq.com)等繁多的教授IT知识的平台。但是比起一些“以快速就业”为目的的“培训平台”,笔者还是更喜欢来自于大学课程的那些公开课。

三.开发者论坛

除了公开课平台之外,另一个重要的自学IT技能的渠道便是各个开发者论坛,通过这些论坛,我们可以和大牛们直接交流,可以学习到更具体的知识点。

1.Github(github.com)

github是全球最大的开发者论坛和协作平台了,这里既有牛翻天的独立开发者,也有企业界的技术高手,他们供职的企业从google、microsoft、amazon到国内的BAT应有尽有。

2.博客园(cnblogs.com)

博客园是一个开发者的博客平台,以高质量的技术类博文而闻名。从它的口号“代码改变世界”,我们便可以知道这个博客平台的态度了。

3.开源中国(oschina.net)

这个论坛中是很多刚入职的新程序员,二是通过这个平台,很多城市的程序员们互相认识,结成了自己的小圈子。相较于之前介绍的网站不同,开源中国并没有太多系统讲授IT知识的资源,但是当你在开发过程中遇到了具体的困难来这里提问,会有很多程序员们帮助你解决这些具体的问题。

4.码农网(codeceo.com)

和很多论坛一样,码农网的资源也是按照学习的编程语言划分的。比如你学习java语言,那么在这里,你就可以订阅java的栏目,然后通过RSS或者微博,你就会得到这个栏目中的文章的推送了。

5.segmentfault(segmentfault.com)

6.stackoverflow(stackoverflow.com


分享到:


相關文章: