有什么书是程序员奉为宝贝的吗?
➷▀有什么书是程序员奉为宝贝的吗?
颈椎病康复指南
◆≂有什么书是程序员奉为宝贝的吗?
感谢阅读!
作为C++程序员的我来分享一下我的那些宝贝儿们。对于北漂的我,每次搬家都会扔掉一些不用的衣服或者书籍。但是我已然对我这些宝贝们不离不弃!
这些书鉴证了我在程序员之路上的日日夜夜!
这些书也是我曾经有一头乌黑亮丽的黑发的鉴证!
为了写这个回答,我又把他们从书架上拿下来,逐一擦拭,逐一给他们拍了个靓照。
01
作为C++程序员,有关C++的书自然是不能少。对于C++程序员你来说,那可真是“一入侯门深似海”,C++语言特性复杂,有且还在不断的更新。还记得我大学购买的第一本C++书是《C++ Primer》第四版,这本书真是前前后后看了四五遍。还有一本侯婕跟孟岩的工具书《C++标准程序库》,虽然很厚,当时也硬着头皮看了一遍。
02
对于程序员来说设计模式更是不能少的,一个好的设计模式对于大型程序的后期升级维护都是至关重要的。由设计模式的四位大牛写的《设计模式:可复用面向对象软件的基础》这本书自然是经典中的经典。
03
作为一名程序员,学习时下新技术是生存下去的不二法则!在人工智能发展如此兴盛的时代,学习机器学习自然是首选。我买的第一本人工智能的书是《深度学习:核心技术与实践》,后来的学习就大部分看电子书或者视频了。
要学习人工智能,学习Python的书当然是必备。我买了《Learning Python》的英文版,上下两册。虽然没看完,但是一直视为宝贝。
04
对于什么都好奇的我,还特意买了两本关于区块链的书,不过这两本书基本没怎么看。还真是应了那句“书非借不能读也”的古语。它们是:《区块链革命》和《区块链技术指南》。
这些书现在放在书架上几个月也不动一下,每次打扫卫生我都擦拭一番,但是就是舍不得扔。也许他们代表着我逝去的青春,代表着我曾经也年轻过!
你有哪些书一直不离不弃?又是为什么呢?欢迎留言交流!
▃✄有什么书是程序员奉为宝贝的吗?
《C程序设计语言》是提到计算机科学领域的书籍绝对绕不开的一本书。《深入理解计算机系统》这是每个程序员都不可错过的一本书籍,看不完至少也要看前三章(强烈建议读完)。因为讲述深入浅出,配合典型例证,通俗易懂,实用性强,所以也是国内外诸多名校的必修基础课程,公认的经典中的经典。 《算法导论》这本书深入浅出,全面地介绍了计算机算法。对每一种算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。“计算机算法里的圣经”,阅读此书需要拿出在学校上课的状态,这本书也确实是MIT的教材。建议可以先阅读《算法》或者其他数据结构与算法的书,并结合LeetCode刷题。
✝▤有什么书是程序员奉为宝贝的吗?
从事嵌入式软件开发十几年,比较喜欢研究的书这么基本,《高质量C/C++编程》,《TCP/IP详解》,《数据结构和算法导论》主要还是自身的开发经历有关,主要是C/C++开发用的多,所以看这方面书看的相对比较多,现在就这几本书看的背景拿出来分享给大家。
高质量程序设计指南
开始入行写代码用的C语言,由于开始计算机语感感觉不好,对于C语言的指针琢磨不投,有一次在网上搜到了一本我的编程十年的是一个叫西电毕业的叫林锐写的,语言朴实而不失风趣,无心之中增加对编程的兴趣,文章中提到自己倾家荡产写了一个软件请教一个技术大拿,结果被这大拿说了一段,这产品完全是程序员思维制作的,根本没有市场,最后赔的精光。后来才了解这位的技术大拿是现在360的掌门人周鸿祎。有时候这个圈子还是挺小的。
还是受文章的影响,就在网上下了电子档学习起来,先把后面的题目做了由于基础不咋样得了40分,觉得差距太大,于是把这书一口气看完了,这次算是把C语言的指针给搞明白了。所以讲编程的学习,培养兴趣是一个非常重要的过程,当然兴趣的培养可能是因为一个小事情的发生导致的兴趣一下子变得强大起来了。
很多程序员开始做程序就是觉得是个工作,相对来讲工资还不低,最后玩的时间长了自然就容易产生兴趣,有句经典的话叫,这玩意不但能挣钱还挺好玩,这本书整体来讲对于学习C/C++值得一看。
TCP/IP详解
这本书算是网络协议的经典书籍,基本上学习网络都研究过这本书,之所以对这本书深刻,主要在入行第一份工作在一家公司呆了半个月,这家公司专门制作局域网网路监控软件,就是研究各种网络协议,监控局域网内的qq,msn等聊天软件,发现有人登陆直接就发送模拟的服务器密码错误报文,这样局域网内的聊天工具就完全登录不上,基本上大家都通过抓包工具研究协议内的格式,因为网络层传输协议是有规范的,所以研究规则成为网络监控的重中之重,在这里面熏陶了半个月,还买了一本tcp/ip详解,后来因为有个嵌入式的工作岗位更加有吸引力就果断换了工作,但对于网络的热情并没有减少,平时就喜欢拿这本书作为补充知识来学习。
对于网络编程感兴趣的这本书是必备的入门书籍。
数据结构和算法分析
这本书算是嵌入式开发的常备书籍,编程写代码必然涉及到算法,在学习算法之前需要对数据结构有一个了解,数据结构是设计函数的基础,一个功能模块的设计首先要考虑其数据机构内容,有了主的脉络后面的功能实现起来就比较方便了。如果是C语言编程就是设计结构体的主要内容,C++编程的话就要涉及到类的内容设计。
数据结构就是常见的数据结构类型,链表,队列,堆栈等等,稍微复杂点有二叉树,树等数据模型,复杂的算法都是这些基本数据模型的基础上衍化而来,先从基础的算法结构开始慢慢的渗透,在编程领域算法无处不在,算法就是编程逻辑最直接的体现,很多人讲算法能决定程序员的上限,虽然说得有点夸张但也存在一定的道理。
数据结构是一个程序员的必备基础,算法是编程的代码的灵魂。
希望能帮到你。
≣∱有什么书是程序员奉为宝贝的吗?
1 前言
对于计算机相关专业的学生来说,学校教会我们编程语言,学习诸如 Java,Python 或 C ++ 之类的编程语言很容易,但是学习编写好代码不是。
编程并不等于写代码,编程是一个更广泛的过程,它还涉及提出开发程序的想法以及对其进行测试等等的方法,所以提升编程思想和能力也是一个合格程序员不可或缺的能力。
对于从事技术岗位工作的我们来说,必须得自学编程技术,提高编程的能力。编写良好的代码比只完成简单重复的需求更重要,这也是普通程序员与好程序员之间的重要区别因素。那么除了工作中的实践经验,关注前辈的思想和阅读相关的书籍也是不可或缺的。虽然说现在科技日益更新,技术网站和个人博客也很多,但关于技术的经典的书籍和思想却能反复一直流传下来。因为书籍不仅是作者和编辑是对某个领域更加全面和系统的梳理,而且阅读书籍能给自己带来许多的不一样的体会。
本文给大家分享几本高价值书单,并不一定全面,欢迎读者补充,希望能对你有帮助。
2 关于编码与重构
2.1 代码整洁之道
英文名《Clean code》,该书出自 Robert C Martin 之手,又被称为 Bob 大叔,是一位美国著名的软件工程师和作家,他已经写了有关敏捷软件开发的书籍。书中提到众多有名的编程原则:比如 SOLID 原则、 Law of Demeter(LoD,又被称为最少知识原则)。
推荐理由:
每个程序员都必须拥有本书并阅读它。这是一本非常著名的书,它将完全改变您的编程风格,书中介绍的规则均来自作者多年的实践经验,涵盖从命名、数据结构、面向对象的设计原理到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。或许,真正整洁的代码真能让同行读起来像诗一样。
任何傻瓜都可以编写计算机可以理解的代码。优秀的程序员编写人类可以理解的代码。— 马丁·福勒
如果只能读一本书,我就推荐这本。最后,基于本书,众多开发者还推出了各种语言的整洁之道:
• Javascript 整洁之道
• PHP 整洁之道:https://github.com/jupeter/clean-code-php
• ABAP 整洁之道:https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md
• Java 整洁之道:https://github.com/leonardolemie/clean-code-java
• .NET 整洁之道:https://github.com/thangchung/clean-code-dotnet
还有各大科技公司的代码风格指南:
• Google 风格指南
• Uber Go 语言风格指南:https://github.com/uber-go/guide/blob/master/style.md
Bob 大叔的《架构整洁之道》也值得推荐,这本书是在架构领域的登峰之作,围绕“架构整洁”这一重要导向,系统地剖析其缘起、内涵及应用场景,涵盖软件研发完整过程及所有核心架构模式。
还有《程序员的职业素养》,作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。
2.2 重构(第2版)
英文名: 《Refactoring: Improving the Design of Existing Code,2nd Edition》,作者 Joshua Kerievsky。本书是理论和实践最佳组合的罕见书籍之一。重构是一个使您的工作代码更加美丽的过程,这本书可以利用已经尝试和测试的软件开发世界的模式来为您提供帮助。
推荐理由:
重构一词经常在各种大会上被提及,那就是这本书带来的影响。重构也就是重写软件的过程,而无需更改其功能,以提高其可读性,可检验性或可维护性。重构是使工作代码美观的过程,重构有助于改进工作代码的设计。这也是优秀程序员的必备技巧之一,通常优秀的程序员也擅长重构。
本书将教你重构代码的艺术和科学。无论您是 Java 程序员、C++ 开发人员还是 Python 开发人员,每个程序员都可以从本书中受益。
与《重构》经常被提及的书就是大名鼎鼎的《代码大全》,书中解释的也是久经考验的技术和策略,能有效帮助程序员和软件开发人员。笔者也曾在大学的时候把这本书图书馆借出来,发现这本书太厚,啃不动,到期就立马归还了。
2.3 代码之美
英文名:《Beautiful Code: Leading Programmers Explain How They Think》,作者:Grey Wilson。
推荐理由:
大牛前辈的博客合集,同时也是提高编码技能的好书之一,因为它为您提供了一个机会,让您了解专业程序员如何处理问题、编写的代码以及他们如何解决问题,并且仍然能够保持他们的代码美观。
这本书是一系列案例研究的集合,揭示了 Emacs 到 Facebook 等大型网站架构秘密,讲述了那些专家程序员,包括布莱恩·克尼原,乔恩·本特利(Jon Bentley)(编程珠玑的作者),蒂姆·布雷(Tim Bray),卡尔·福格尔(Karl Fogel),迈克尔·菲瑟斯(Michael Feathers)(有效地使用旧版代码的作者),以及许多更多伟大的作者和程序员。关于二分查找,在书中数次被不同作者提及,了解不同作者的观点。无论您使用哪种编码语言,例如 Java,C#,Python 或 Ruby,都会在本书中找到有趣的东西。
代码之美调查了一项努力的人类发明和创造力的范围:计算机系统的开发。每章中的美观来自发现独特的解决方案,这是作者的力量超越界限,识别他人所忽略的需求,并找到令人惊讶的解决方案,以解决令人困扰的问题。
3 关于职业成长
3.1 程序员修炼之道(第2版)
英文名《Pragmatic programmer》,作者是 Andrew Hunt & David Thomas。中文版的译者是大名鼎鼎的云风,副标题是:通向务实的最高境界。
推荐理由:
本书是时隔 20 年的新版,覆盖哲学、方法、工具、设计、解耦、并发、重构、需求、团队等务实话题的最佳实践及重大陷阱,以及易于改造、复用的架构技术。
刚出来的时候博文出版社举办了一个推广活动,在云风和皓子叔联袂推荐下,毫不犹豫的入手了本书。程序员往往最难得就是务实主义,总想追求新技术,炒新概念。工作后才逐渐明白,编程的本质,均不依赖于特定语言、框架和方法,技术改变世界在于能够有效解决用户的真实需求。
本书本质上是程序员的自助指南。它探索了良好的软件开发实践,并为您提供了出色的建议、提示和技巧,以更有效地编程。正是对经典和现代轶事、引人入胜的类比和发人深省的例子的创造性使用,使每个部分的学习都变得有趣而有趣。如果说大学期间读的都是类似于 C 语言圣经和 Head First 系统书籍的话,工作后的人才会真正懂得为什么这本书籍不厚,读起来拍案叫好,这大概就是大道至简。
作者另一著作:《程序员修炼之道: 从小工到专家》也是值得推荐的
3.2 卓有成效的程序员
英文名:《The Productive Programmer》,作者:Neal Ford。
推荐理由:
本书就是讲述如何在开发软件的过程中变得更加高效。同时,《卓有成效的程序员》的讲述将会跨语言和操作系统:很多技巧的讲述都会伴随多种程序语言的例子,并且会跨越三种主要的操作系统,Windows(多个版本),Mac OS X 以及 *-nix (Unix 或者 Linux)。
贯穿全文的思想大概就是尽量让机器做机器该做的事情,让程序和程序打交道,发挥程序员在这方面的先天优势。学会善用工具,命令行、学会写脚本,学会宏。提供效率,不去做重复单调的工作。
最终的目的:成为一个“慵懒”的程序员。
3.3 软技能:代码之外的生存指南
英文名:《Soft Skills: The software developer's life manual》,作者:John Z. Sonmez
推荐理由:
研究生期间读过最受益的一本非技术书。程序员都知道编码很重要,这是我们吃饭的硬技能。
可是实际工作上才发现不止写代码,代码之外的软技能也很重要:比如面临着与客户沟通、与产品打交道的沟通问题;比如应该关注自身发展,书中也介绍了怎么做职业突围;还有更多章节介绍了作者如何学习、如何理财、健身、自我营销等等。
分享书中有趣让我印象深刻的点是作者去面试,面试官浏览过他的博客文章,两人因此相谈甚欢。 最后也想给阅读的朋友声明一下:这本书涉猎了很多方面,但是并不是没一点都是一套可以照抄的完美答案,毕竟作者也是从当时的环境和自己经历出发介绍这些内容,每个读者应该都有自己的选择,
综合而言,这本书挺适合各个阶段的人阅读的,尤其大学生和初入职场的朋友。
作者也出了《软技能2:软件开发者职业生涯指南》,如果说软技能关注于生活,那软技能 2 则更加关注于了软件开发职业。
4 关于黑客与开源
4.1 Unix 编程艺术
书籍英文名:《The Art of UNIX Programming》,作者:《Eric S. Raymond》从 1982 年开始就是 UNIX 开发者。
推荐理由:
本书涉及 Unix 系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的 Unix 编程大师、开源运动领袖人物之一 Eric S.Raymond 倾力多年写作而成。
程序会过时,编程语言会更新,代码会跟随业务不断改动,但编程思想的生命力会长盛不衰,好的编程艺术也是具有穿透力的,尽管书中的案例已经偏老,但贯穿始终的 KISS 原则、思想文化体系、设计与开发哲学一定能够给你带来醍醐灌顶的感觉。
Keep it simple stupid,简称 KISS 原则。在做软件设计的工作中,很多时候都不要想得过于复杂,也不要过度设计和过早优化,用最简单且行之有效的方案也就避免了复杂方案带来的各种额外成本。这样既有利与后续的维护,也有利于进一步的扩展。
另外,本书还可以与“左耳朵耗子”ef="">皓子叔推荐 过的《UNIX传奇:历史与回忆》结合着一起看,了解 UNIX 的诞生记与发展史,贝尔实验室的幕后故事!本书不但书写 Unix 的历史,而且记录作者的回忆,一探 Unix 的起源,试图解释什么是 Unix,Unix 是如何产生的,以及 Unix 为何如此重要。
4.2 大教堂与集市
英文名:《The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary》, 《Unix编程艺术》作者 Eric S. Raymond 的另一封神之作,副标题是《对 Linux 和开源革命的沉思》。
推荐理由:
大家都知道程序员热衷于开源文化,都在说不要重复造轮子。开源时代下的软件开发可能只需要三个键盘按钮:CTRL + C + V,开个玩笑。
说到开源文化,那么本书《大教堂与集市》是开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者把软件开发思路类比于古代的大教堂文化和集市文化,讲述了集市如何变成大教堂,书中系统解释了开源软件是如何生产的,开源开发的优势在哪,开源软件的传承是如何做到的。
4.3 黑客与画家
英文名:《Hackers and Painters: Big Ideas from the Computer Age》,作者:Paul Graham,本书的译者是大名鼎鼎的阮一峰大佬。
推荐理由:
说到黑客文化,就不得不提到硅谷创业之父Paul Graham 的这本书,本书主要介绍黑客 Hacker,即优秀程序员的爱好和动机,讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。
本书是一本为黑客正名的技术散文集,看完书后第一次将我从电影中的黑客形象颠覆过来,才了解到并不是入侵系统、制作病毒、各种解密的人就是黑客,Hacker 是专家级程序员,是一群与画家有着极大的相似性,他们都是在创造,而不是完成某个任务,“黑客”象征着第一流的能力,以及求解问题过程中产生的精神愉悦或享受。他们崇尚分享、开放、民主、计算机的自由使用和进步。而那些恶意入侵计算机系统的人更应该被称为 cracker(骇客)。
5 关于算法与设计模式
5.1 算法设计手册
英文名:The Algorithm Design Manual (2nd Ed.),作者:Steven S Skiena
推荐理由:
关于算法的重要性大家都知道,大家肯定都知道另外两本著名的《算法导论》和《算法4》:《算法导论》侧重与算法的数学推导,适合研究,而《算法4》侧重于算法的代码实现,适合入门。
而这次推荐的《算法设计手册(第2版)》却没有那么有名气,但也不失为设计实用且高效算法的最全面指导书。该书揭密了算法的设计与分析,以简单易懂的写作风格,介绍了各种算法技术,着重强调了算法分析。
目前市场上算法书层出不穷,但是经典的算法却一直在那里,不曾走远。
5.2 Head First 设计模式
英文名:《Head first design patterns》,作者:Elisabeth Freeman / / Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson
推荐理由:
这本书完整地涵盖了 GoF 版本全部23个设计模式,毫不费力地解释了世界各地熟练的软件开发人员和程序员用来构建优雅、功能齐全、灵活和可重用的软件的几种软件设计模式。。图文并茂,配有大量说明性和启发性的示例,它们将使学习同时变得高效和有趣。与其他文本繁重的编程书籍不同,这本书具有引人深思、视觉丰富的格式。
Head First 系统书籍充满了幽默感,选题和编辑都很用心,值得一读。相信读完的读者逐步迈向对软件设计模式的深入了解。再来读 GoF 不失为一个不错的选择。
5.3 设计模式:可复用面向对象软件的基础
英文名:《 Design Patterns: Elements of Reusable Object-Oriented Software》,又被简称为计算机领域的 GoF ,因为本书的作者是四个人:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides。
推荐理由:
本书是任何使用面向对象代码的开发人员的必备入门读物。而且作者 Erich Gamma 是 jUnit、Eclipse、IBM Jazz 项目、Visual Studio、Azure 和 Office 365 的幕后推手。
如果您没有很好地掌握 UML,您可能会发现很难吸收编程书中汇编的一些信息和示例。然而,这不会阻止您欣赏设计模式书中叙述的美妙之处,它既简单又内容丰富。
《设计模式》一书详尽地解释了 23 种软件设计模式,可帮助软件开发人员和设计人员制作更好、更优雅、更灵活的软件。这本书讨论了针对常见软件设计问题的大量简洁明了的解决方案。
如果说 GoF 太难读下去,那么就推荐程杰的《大话设计模式》,这本书通过对话的形式带领大家入门设计模式,人人都可以是好学的小菜和经验丰富的大鸟。
5.4 编程珠玑(第2版•修订版)
英文名:《More Programming Pearls,Second Edition》,作者:John Bentley
推荐理由:
这是一本带你真正领略计算机科学之美,融深邃思想、实战技术与趣味轶事于一炉的奇书。与大多数其他编程书籍不同,这本书侧重于基本问题和一般问题。它讨论了可以提高性能或减少内存需求的各种算法和技术。
作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程。
就如书名一样,大浪淘沙,计算机科学中的智慧正如自然界里珍珠出自细沙对牡蛎的磨砺,留下一个个编程“珠肌”。
题外话:
上面的书都是本人曾经阅读过,或者说在图书馆中有借阅翻过的书。也是计算机领域评分很高、有口皆碑的书籍。但计算机行业的经典书籍太多,本人能推荐的也只是其中一部分,想要推荐的内容也不想针对某个特定编程语言和领域,所以像《C++编程思想》和《On Java8》这类书籍没有进行推荐,推荐理由也不一定完全正确,欢迎大家批评指正。另外,看完上述的书并不能说自己就能在工作中就能运用到,看完就能成为一个顶尖的程序员。何况看书也不能完全接收前辈们的这些大智慧,但如果在某个瞬间(看书过程或者实践过程中)对自己有一种醍醐灌顶的感觉,就已足够。
参考链接:
• UNIX传奇(上篇)
• 假期好读书
• Top 5 Books to Improve Coding and Programming Skills
• http://www.osnews.com/images/comics/wtfm.jpg
本文分享自华为云社区《【云驻共创】对于编程思想和能力有重大提升的书有哪些》,作者:宇宙之一粟 。
------------------
推荐阅读: