Reddit上排名前50的编程书籍

有关编程子reddit的顶级书籍建议。

R / learnprogramming,r / cscareerquestions,r / askprogramming和r / programming中评分最高的书籍。 以2011年以来的数据为基础,并根据投票,提及和修改黄金的数量计算得出。

该列表基于Reddit.com对4年的评论进行的分析。 它在数据库中的唯一行数超过20亿。

  • 分析提取的注释,然后脚本选择链接最紧密的亚马逊图书。 书籍按照subreddit和一年来不合常规地分组。 选择最流行的书籍取决于某个时期的投票数和提及数。

本文最初发表于booksreddit.com

1.清洁代码:敏捷软件工艺手册

  • 书号。 1 –3660赞
    甚至错误的代码也可以起作用。 但是,如果代码不干净,它可能会使开发组织屈服。 每年,由于编写不良的代码而浪费了无数的时间和大量的资源。 但这不是必须的。 著名的软件专家Robert C. Martin用“干净代码:敏捷软件工艺手册”提出了一种革命性的范例。 Martin与Object Mentor的同事合作,“在现场”提炼了他们最好的敏捷清洁代码实践。

2.代码:计算机硬件和软件的隐藏语言

  • 书号。 2 –2652赞
    手电筒,英军入侵,黑猫和跷跷板与计算机有什么关系? 在CODE中,它们向我们展示了我们操纵语言和发明新的相互交流方式的巧妙方式。 通过CODE,我们看到了这种独创性以及我们对交流的迫切追求如何推动了过去两个世纪的技术创新。 通过使用日常对象和熟悉的语言系统(例如盲文和摩尔斯电码),作者Charles Petzold编织出一种错觉…

3.破解编码面试:150个编程问题和解决方案

  • 书号。 3 –1853次投票
    现在在第5版中,《破解编码面试》为您提供了获得顶级软件开发人员职位所需的面试准备。 这是一本技术性很强的书,侧重于软件工程技能以帮助您进行面试。 本书共500页,包括150个编程访谈问题和答案以及其他建议。 主题的完整列表如下:面试过程本节提供有关所选问题以及您将如何获得评估的概述。

4.算法简介,第3版(麻省理工学院出版社)

  • 书号。 4 –1809次投票
    一些有关算法的书很严格,但并不完整。 其他人则覆盖大量的材料,但缺乏严格性。 算法简介独特地将严谨和全面结合在一起。 本书深入地介绍了各种算法,但使各级读者都可以使用它们的设计和分析。 每章都是相对独立的,可以作为学习单元。 这些算法以英文描述,并以伪代码描述,旨在使任何稍作改动的人都可以阅读……

5. C编程语言

  • 书号。 5 –1391赞
    作者介绍了ANSI标准C语言编程的完整指南。 这个新版本由C的开发人员编写,可帮助读者紧跟C的最终ANSI标准,同时展示了如何利用C的丰富运算符集,表达式的经济性,改进的控制流和数据结构。 2 / E已被其他示例和问题集完全重写,以阐明困难的语言构造的实现。 多年来,C程序员拥有……

6.加速的C ++:实例实用编程

  • 书号。 6 –1107赞
    这是一本一流的入门书,它采用了一种实用的方法来使用C ++解决问题。 它涵盖了比我见过的其他入门书籍更广泛的C ++编程范围,并且格式紧凑。 — ANSI / ISO C ++委员会的创始成员Dag Bruck。作者对C ++编程进行了清晰,有力的介绍,以使学生立即编写平凡的程序。 — Sun Microsystems,Inc.的Stephen Clamage,也是ANSI C ++ c …

7.代码完成:软件构建实用手册,第二版

  • 书号。 7 –911赞
    史蒂夫·麦康奈尔(Steve McConnell)的原始《代码完成》(CODE COMPLETE)被广泛认为是编程的最佳实用指南之一,已经十多年来一直帮助开发人员编写更好的软件。 现在,这本经典书籍已经通过领先的实践和数百个新的代码示例进行了全面的更新和修订,从而说明了软件构建的艺术和科学。 麦康奈尔(McConnell)捕捉研究,学术界和日常商业实践中可用的知识,综合了最大的效果……

8.设计模式:可重用的面向对象软件的元素

  • 书号。 8 –850票
    这些文本涵盖了面向对象软件的设计,并研究了如何研究需求,创建解决方案,然后将设计转换为代码,向开发人员展示了如何实际利用最近最重要的进展。 包括UML标记的摘要。

9. C ++ Primer(第5版)

  • 书号。 9 –845票
    畅销书完全针对新C ++ 11标准进行了编程教程和参考书的重写。针对最新发布的C ++ 11标准进行了全面的更新和重铸,对C ++的这一权威,全面的介绍将帮助您快速学习该语言,并将其用于现代,高效的方式。 作者重点介绍了当今的最佳实践,展示了如何同时使用核心语言及其标准库来编写高效,易读且功能强大的代码。 C ++入门,Fi…

10.务实的程序员:从旅途到大师

  • 书号。 10 –698票
    — Ward Cunningham直接从编程的角度出发,Pragmatic Programmer突破了现代软件开发不断增长的专业化和技术性,以研究核心过程-满足要求并生成使用户满意的可维护代码。 它涵盖了从个人责任和职业发展到体系结构技术等主题,这些主题使您的代码灵活,易于修改和重用。 阅读本书,您将学习如何……

11.使用窗口函数的Microsoft SQL Server 2012高性能T-SQL(开发人员参考)

  • 书号。 11 –623赞
    使用Transact-SQL中的窗口函数,在T-SQL中应用强大的窗口函数-并提高查询的性能和速度-优化查询-并获得针对各种问题的简单,优雅的解决方案。 在T-SQL专家Itzik Ben-Gan的带领下,您将学习如何灵活,清晰,高效地对行集应用计算。 无论您是数据库管理员还是开发人员,此实用指南都是理想的选择,它演示了使用十几种T-SQL查询器的方法。

12.有效处理旧版规范

  • 书号。 12 –584票
    从旧系统中获得更多收益:更高的性能,功能,可靠性和可管理性您的代码易于更改吗? 进行更改后,您能否获得几乎即时的反馈? 你听得懂么? 如果对这些问题中的任何一个的回答是否定的,那么您都有旧版代码,这将浪费时间和金钱,浪费您的开发工作。 在本书中,Michael Feathers提供了从头到尾的策略,可以更有效地使用未经测试的大型旧代码库。 这个…

13. D编程语言

  • 书号。 13 –548票
    “据我所知,D提供了前所未有的多种强大编程范例的集成:命令式,面向对象,函数式和元数据。”-摘自Walter Bright的序言“这是一本由熟练的作者撰写的书,描述了有趣的编程语言。 我相信您一定会从中受益。” —斯科特·迈耶斯(Scott Meyers D)撰写的序言中的一种编程语言旨在帮助程序员应对现代软件开发的挑战。 它是通过寄养…

14.破解编码面试:189个编程问题和解决方案

  • 书号。 14 –494票
    我不是招聘人员。 我是软件工程师。 因此,我知道当场鞭打出色的算法,然后在白板上编写无瑕的代码的感觉。 我曾作为候选人和面试官经历过这一过程。 破解编码面试,第6版在这里可以帮助您完成此过程,教会您需要了解的知识,并让您表现出色。 我已经指导并采访了数百名软件工程师。 结果就是这样……

15.火之恩赐:计算技术的社会,法律和道德问题(第4版)

  • 书号。 15 –486票
    一份礼物:4e是计算机技术的社会,法律和道德问题,非常适合计算机道德和计算机与社会课程。 对于计算机科学专业人士或有兴趣进一步了解计算技术及其总体影响的人员,它也是有用的参考。 Sara Baase探索了计算的社会,法律,哲学,伦理,政治,宪法和经济影响,以及它们引起的争议。 与计算机科学家的…

16. Head First Java,第二版

  • 书号。 16 –458票
    学习复杂的新语言并非易事,特别是当它是一种面向对象的计算机编程语言(如Java)时。 您可能会认为问题出在您的大脑上。 它似乎有自己的想法,并不总是想接受您被迫学习的枯燥,技术性的东西。 事实是您的大脑渴望新颖性。 它一直在搜索,扫描,等待不寻常的事情发生。 毕竟,这就是它用来帮助您保持生存的方式。 这需要所有…

17.游戏引擎架构,第二版

  • 书号。 17 –452赞
    第一版《游戏引擎体系结构》被誉为“必备教科书”(《选择》,2010年1月),为读者提供了有关游戏引擎软件开发理论和实践的完整指南。 为了满足当今游戏引擎架构的需求,本第二版继续更新内容,以全面涵盖构成典型商业游戏引擎的主要组件。 第二版的新知识有关新主题的信息,包括C ++ p的最新变体。

18.如何赢得朋友和影响人

  • 书号。 18 –423票
    六十多年来,本书中久经考验的坚如磐石的建议使成千上万的现在的名人在商业和个人生活中走上成功的阶梯。 现在,此先前修订和更新的畅销书将首次在贸易平装本中提供,以帮助您在下一世纪中发挥最大的潜力! 学习:*处理人的三种基本技术*使人喜欢你的六种方法*赢得人对你的十二种方法

19. C编程:现代方法,第二版

  • 书号。 19 –394个投票
    《 C程序设计:现代方法》的第一版因其清晰,全面以及商标问答部分而受到学生和教师的欢迎。 金教授的螺旋式教学方法使从初学者到高级学生的广泛读者都可以使用它。 随着225所大学的采用,第一版成为过去十年中领先的C教科书之一。 第二版保留了本书的所有流行功能,并在此基础上进行了改进。

20.算法(第四版)

  • 书号。 20 –370票
    Robert Sedgewick和Kevin Wayne的Algorithms的第四版是当今算法的领先教科书,并在全球各大学中广泛使用。 本书对当前使用的最重要的计算机算法进行了调查,并对数据结构和算法进行了全面处理,以进行排序,搜索,图形处理和字符串处理-包括每个程序员都应该知道的五十种算法。 在此版本中,新的Java实现是用a编写的。

21.计算机组织和设计,第四版:硬件/软件接口(摩根考)

  • 书号。 21 –196票
    该计算机组织和设计的第四修订版包括一整套更新和新的练习,以及教师和学生提出的改进和更改。 着眼于当今工业中发生的革命性变化-从单处理器到多核微处理器的转变-这本经典的教科书对各种形式的并行性进行了现代而最新的关注。 性能增强支持突出显示多核和GPU处理器设计的示例。

22.制作软件:真正有效的方法以及我们为什么相信它

  • 书号。 22 –195票
    关于某些工具,技术和实践如何改善软件开发的说法很多。 但是,哪些主张是可验证的,哪些仅仅是一厢情愿的想法? 在这本书中,诸如Steve McConnell,Barry Boehm和Barbara Kitchenham之类的主要思想家提供的论文揭示了事实,并揭露了软件开发社区中普遍存在的神话。 他们的见解可能会让您感到惊讶。有些程序员的生产率真的比其他程序员高十倍吗?编写测试程序是否可以…

23.学习Python,第5版

  • 书号。 23 –193票
    通过这本动手的书,可以全面,深入地介绍核心Python语言。 基于作者Mark Lutz受欢迎的培训课程,此更新的第五版将帮助您使用Python快速编写高效,高质量的代码。 无论您是编程的新手还是精通其他语言的专业开发人员,这都是一种理想的上手方法,该课程简单易学,步调一致,配有测验,练习和有用的插图,可让您同时入门Pytho …

24.一定是在开玩笑,费曼先生! (奇特的冒险)

  • 书号。 24 –190票
    《纽约时报》的畅销书-本世纪最伟大的科学思想家之一的传奇成果和传奇的美国原著。诺贝尔物理学奖获得者理查德·费曼(Richard Feynman)经历了惊人的冒险。 在这里,他以无与伦比的声音讲述了他与爱因斯坦和玻尔交换原子物理学的想法以及与希腊尼克进行赌博的想法的经验。 破解牢牢掌握最深层核秘密的保险箱; 伴随着邦戈鼓上的芭蕾舞…

25.不要让我思考:Web可用性的常识方法,第二版

  • 书号。 25 –187票
    首次发布已经五年,超过100,000份,很难想象没有从事过Web设计工作的人没有读过Steve Krug关于Web可用性的“即时经典”,但是人们仍然每天都在发现它。 在第二版中,史蒂夫(Steve)以与原著相同的风格添加了三个新章节:有趣和有趣,同时还为初学者和资深人士提供了很多见识和实用建议。 如果它完全改变了您对W的思考方式,请不要感到惊讶。

26.访谈节目的构成要素:内部指南

  • 书号。 26 –184票
    EPI的Java版本在Amazon上可用! 搜索Java编程采访的元素,或使用短链接bit.ly/epijava,这是C ++版本。在购买本书之前,请先转到示例页面-elementsofprogramminginterviews.com/sample,采样器应为您提供我们的书的质量和风格都很好。 特别要确保您对本级别和我们的C ++编码风格感到满意。解决方案包括基本的代码片段…

27.域驱动的设计:解决软件核心问题的复杂性

  • 书号。 27 –183赞
    标题:域驱动设计(解决软件核心复杂性)绑定:精装作者:EricEvans出版商:Addison-WesleyProfessional

28. 3:16圣经经文

  • 书号。 28 –181票
    当一位世界著名的计算机科学家运用科学方法学研究圣经,写下他的发现,并请世界上最好的书法家来举例说明这项工作时,会发生什么? 结果是3:16圣经经文得到阐明,这是一部深刻的圣经见解和迷人的书法宝库,将启发您的思想,眼睛和精神。 唐纳德·E·努斯(Donald E. Knuth)非常喜欢圣经,以致他毕生五年致力于创作这部杰作。 有了它,您将……

29.如何破解软件:W / CD测试实用指南

  • 书号。 29 –180票
    如何破坏软件与常规测试有所不同,在传统测试中,测试人员准备一份书面测试计划,然后在测试软件时将其用作脚本。 本书中的测试技术与传统的测试一样灵活。 而且在软件项目中需要灵活性,在软件项目中,需求可能会发生变化,错误可能成为功能,并且计划压力经常迫使计划被重新评估。 软件测试不是一门精确的科学,因此人们可以确定要测试的内容……

30.游戏编程模式

  • 书号。 30 –180票
    许多游戏程序员面临的最大挑战是完成游戏。 大多数游戏项目都因其自身代码的复杂性而失败。 游戏编程模式解决了这个确切的问题。 基于多年的AAA冠军头衔经验,这本书收集了经过验证的模式来整理和优化您的游戏,并以独立的配方进行组织,以便您可以仅选择所需的模式。 您将学习如何编写强大的游戏循环,如何使用c …来组织实体。

31.信息建模和关系数据库,第二版(数据中的Morgan Kaufmann系列…

  • 书号。 31 –359票
    信息建模和关系数据库,第二版,介绍了ORM(对象角色建模)等等。 实际上,这是唯一一本超越入门范围的书,它提供了将领域专家的知识转化为完善的数据库设计所需的所有深入指导。 本书适用于对数据库准确性和有效性有兴趣的任何人:系统分析师,信息建模人员,数据库设计人员和管理员以及专业人士。

32.重构:改进现有代码的设计

  • 书号。 32 –350票
    随着对象技术(尤其是Java编程语言)的应用变得司空见惯,出现了一个新的问题来面对软件开发社区。 经验不足的开发人员创建了大量设计不当的程序,导致应用程序效率低下,难以维护和扩展。 越来越多的软件系统专业人员发现使用这些继承的非最佳应用程序是多么困难。

33.编程面试暴露:下一份工作的秘密

  • 书号。 33 –348个投票
    借助这个久经考验的建议,为下一次工作面试做好准备。在当今严峻的就业市场中,编程工作的竞争比以往任何时候都要激烈。 编程面试的流行指南的第三版包括新的代码示例,最新语言的信息,有关排序和设计模式的新章节,使用LinkedIn的提示以及可下载的应用程序,以帮助准备申请者进行面试。 与其早期版本一样,本指南涵盖了哪些软件公司和我…

34.计算系统的要素:从第一原理构建现代计算机

  • 书号。 34 –328票
    在计算机科学的早期,硬件,软件,编译器和操作系统之间的交互非常简单,足以使学​​生了解计算机的工作原理。 随着计算机技术的日益复杂以及由此产生的知识的专业化,这种清晰度常常会丢失。 与仅涵盖该领域一个方面的其他教科书不同,《计算系统的元素》为学生提供了有关应用计算机科学的完整而严谨的图画……

35. JavaScript:优秀的部分

  • 书号。 35 –324票
    大多数编程语言都包含好坏两部分,但是JavaScript急需开发和发布,然后再对其进行完善,因此坏处所占的比重还不止于此。 这本权威性的书消除了这些不良功能,以揭示比整个语言更可靠,可读性和可维护性的JavaScript子集,您可以使用它来创建真正可扩展和高效的代码。许多人认为JavaScript专家开发社区,授权…

36. Google如何测试软件

  • 书号。 36 –310赞
    2012年Jolt奖决赛选手! 引领软件测试的未来您是否也需要正确进行测试? 然后,向Google学习。 传奇的测试专家詹姆斯·惠特克(James Whittaker)直到最近才是Google测试的领导者,还有两位Google顶级专家准确地揭示了Google如何测试软件,即使您的Google规模还不够大,也可以使用全新的最佳实践……! 您可以实际使用的突破性技术发现100%实用,可扩展性惊人的技术来进行分析…

37.微积分:微积分的前奏

  • 书号。 37 –287个投票
    Sheldon Axler的Precalculus仅关注学生在微积分中实际需要的实际主题。 因此,即使Precalculus包含学生解决方案手册,它的大小也非常易于管理。 本书适用于具有中等代数先决条件的课程,并且不假定学生会记住任何三角函数。 它涵盖了诸如反函数,对数,半衰期和指数增长,面积,e,指数函数,自然对数等主题。

38.算法设计手册

  • 书号。 38 –272赞
    畅销书经典的最新扩展和更新的第二版继续消除设计算法中的“奥秘”,并分析其功效和效率。 本书在第一版的基础上进行了扩展,现已成为算法设计课程的首选主要教科书,同时又保持了其作为程序员,研究人员和学生的首选算法实用参考指南的地位。对读者友好的《算法设计手册》提供了直接的访问权限…

39.程序分析原理

  • 书号。 39 –263赞
    程序分析利用静态技术来计算有关程序动态行为的可靠信息。 应用程序包括编译器(用于代码改进),软件验证(用于检测错误)和数据表示之间的转换(用于解决诸如Y2K之类的问题)。 这本书的独特之处在于它概述了程序分析的四种主要方法:数据流分析,基于约束的分析,抽象解释以及类型和效果系统。 …

40. C ++实际应用:工业强度编程技术(带有CD-ROM)

  • 书号。 40 –260赞
    C ++ in Action引入了最新的C ++编程和问题解决技术,用于开发高效,强大,可扩展的软件系统。 著名的软件架构师Bartosz Milewski从两个关键前提开始。 首先,程序不是为计算机编写的:它们是为其他必须集成和维护它们的程序员编写的。 其次,软件开发语言本身并不是目的:它们是解决问题的工具。 从这些原则开始,Milewski…

41.不能使用的数学:专利,版权和软件

  • 书号。 41 –248票
    本书生动有趣,内容新颖,是关于计算机代码以及对编写者的法律控制和限制的。 个人计算机和Internet的广泛使用已使瞬间将新数据或工具发布到几乎整个世界成为可能。 但是,尽管数字革命允许快速,广泛地使用这些知识产权,但这也意味着其开发商在保留其作为创作者的权利方面面临着新的挑战。 利用…的主机

42. Peopleware:生产性项目和团队(第3版)

  • 书号。 42 –242赞
    在计算方面,很少有书籍像Peopleware那样对软件管理产生深远的影响。 这个长期畅销书的独特见解是软件开发的主要问题是人为的,而不是技术上的。 他们不是容易的问题; 但解决它们,您将获得最大的成功机会。 长期以来,人们软件一直是我最喜欢的两本软件工程书籍之一。 其强大的基础是其丰富的实际经验的基础,其中许多都是量化的。 很多很多不同的产品

43.有效的编程:不仅仅是编写代码

  • 书号。 43 –235票
    关于本书杰夫·阿特伍德(Jeff Atwood)于2004年开始撰写Coding Horror博客,并坚信这改变了他的生活。 他需要一种随时间推移跟踪软件开发的方法,无论他在想什么或在做什么。 他研究了他发现有趣的主题,然后用公共博客文章记录了他的研究,他可以很容易地找到并稍后引用。 随着时间的流逝,越来越多的博客访问者发现帖子很有帮助,相关且有趣。 现在,大约有100,000位读者…

44.简而言之的算法(简而言之(O’Reilly))

  • 书号。 44 –232个投票
    创建健壮的软件需要使用高效的算法,但是直到出现问题之前,程序员很少考虑它们。 简而言之,算法描述了用于解决各种问题的大量现有算法,并可以帮助您选择和实现适合您需要的算法-仅仅具有足够的数学就可以使您理解和分析算法性能。 着重于应用而非理论,本书在以下几种方面提供了有效的代码解决方案:

45. BIOS拆卸忍术(发现系列)

  • 书号。 45 –214票
    通过系统方式解释安全漏洞,可能的利用情况和预防,此BIOS利用指南描述了用于从BIOS和扩展ROM收集信息的逆向工程技术。 还介绍了SMBIOS / DMI利用技术(包括BIOS rootkit和计算机防御)以及对嵌入式x86 BIOS的利用。

46.专家C编程:深刻的C秘密

  • 书号。 46 –209个投票
    本书适用于知识渊博的C程序员,这是第二本书,向C程序员提供了高级技巧和窍门。 这本书将帮助C程序员达到一个新的高度。 整理得井井有条,以使读者可以轻松浏览与他们的即时需求相关的部分。

47.有效的C ++:改进程序和设计的55种特定方法(第3版)

  • 书号。 47 –207个投票
    “每个C ++专业人员都需要一份有效的C ++。 对于任何想进行认真的C ++开发的人来说,这是绝对必读的内容。 如果您从未读过Effective C ++,并且您认为自己了解C ++的所有知识,那就再想一想。” — Steve Schirripa,Google软件工程师,“ C ++和C ++社区在过去的十五年中发展壮大,第三版的Effective C ++反映了这一点。 这本书清晰准确的风格是斯科特深刻洞察力和独特能力的证明。

48.黑客的喜悦

  • 书号。 48 –207个投票
    作者多年来收集的有用的编程建议的集合; 小型算法,使程序员的工作更加轻松。 *最终证明了掌握计算机编程困难方面的捷径*学习编程的水平要比学校和培训课程中通常教授的水平更高,并且要比通过个人学习/经验所学的水平更高。 *程序员的即时经典! 计算机程序员经常被称为…

49.为什么软件成本如此之高?:以及信息时代的其他困惑

  • 书号。 49 –205赞
    防尘罩完好无损。 未标记的页面。

50.波斯王子的生平

  • 书号。 50 –199票
    在波斯王子成为最畅销的视频游戏专营权和杰里·布鲁克海默的电影之前,它是由乔丹·梅赫纳(Jordan Mechner)亲自创建和编程的Apple II计算机游戏。 梅克纳尔(Mechner)从那时起坦率而具有启发性的日记记录了他从父母的地下室到迅速发展的1980年代视频游戏产业的最前沿的历程……以及创意,技术和个人的奋斗,使王子诞生并最终进入了千百万家庭世界各地的人口…。