作为一个有理想的程序员,必读的书都有哪些?

其中起到关键性作用的,是“好书”二字。“就算不好好看完一本好书,只要书是真的好书,也肯定会有很大的提高。”

但是一旦读到坏书,将大大影响你的学习效率和思考方向。“读烂书浪费时间,但读好书却节省时间。”

想必在此之前大家都已经看过不少类似的书籍推荐,部分书单一次性列出太多书目,不仅让人挑花了眼,不同的人对不同书籍的评价也是众说纷纭。

所以本次答主“优中选优”,分别从技术经典实用工具思维进阶职场知识四个维度精选了几本经典书籍。

看书贵精不贵多,将以下书籍全部吃透,相信可以帮助大家全方位提升。


一、技术经典

《C程序设计语言》是提到计算机科学领域的书籍绝对绕不开的一本书,如果有人没提到,评论区的各路大神们一定也会给到补充。

《C程序设计语言》是一部介绍标准C语言及其程序设计方法的权威性经典著作,由C语言之父Dennis M. Ritchie和著名计算机科学家Brian W. Kernighan合著而成。所以这本书在领域内也被称为:你永远可以相信的“K&R”!

《C程序设计语言》被奉为“C语言的圣经”,全面、系统地讲述了C语言的各个特性及程序设计的基本方法,包括基本概念、类型和表达式、控制流、函数与程序结构、指针与数组、结构、输入与输出、UNIX系统接口、标准库等内容。

事实上,领域内的权威人物就是我们永远的指路明灯,跟着他们可以少走很多弯路。这本书能够让你高效地打下扎实的计算机基础,而又不用把操作系统计算机结构编译原理这些书通读一遍。

若是阅读初期感觉比较深,可以用C Primer Plus作为过渡。并且,在学习C语言时,建议能够先安装一个Linux操作系统,实践出真知,结合实操能够让你理解知识更透彻。

这一本书也是老生常谈了。

这是每个程序员都不可错过的一本书籍,看不完至少也要看前三章(强烈建议读完)。因为讲述深入浅出,配合典型例证,通俗易懂,实用性强,所以也是国内外诸多名校的必修基础课程公认的经典中的经典

就算不用C语言,也可以作为论文写作的参考样板,学习它行文结构和思路。

与《算法导论》和《计算机程序设计艺术》合称为计算机科学的三本圣经。

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

“计算机算法里的圣经”,阅读此书需要拿出在学校上课的状态,这本书也确实是MIT的教材。建议可以先阅读《算法》或者其他数据结构与算法的书,并结合LeetCode刷题。


二、实用工具书

一本编程圣经,所有需要写代码的人都建议读一下。

Steve McConnell的原作《代码大全(第1版)》是公认的关于编程的最佳实践指南之一,在过去的十多年间,本书一直在帮助开发人员编写更好的软件。

McConnell汇集了来自研究机构、学术界以及业界日常实践的主要知识,把最高效的技术和最重要的原理交织融会为这本既清晰又实用的指南。无论是经验丰富的程序员、技术带头人、还是自学的程序员,不管你在怎样的开发环境中工作,也无论项目是大是小,本书都将激发你的思维并帮助你在更短的时间内,构建高品质的代码

《代码大全(第2版)》做了全面的更新,增加了很多与时俱进的内容,包括对新语言、新的开发过程与通用的概念的讨论等等。

一本《论语》似的书。初读时你可能会觉得“浅显” 甚至“离谱”,但是一边工作一边带着踩过的坑来看,会发现它为代码实践提供了重要的方法论,并且在代码、项目和人性管理上有相当的普适性。

软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关。这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认。

对于刚开始工作的同学们,接触过的代码还不够多,读设计模式之类的书可能还没什么体会。但这本提供代码细节的书,却是能立竿见影,直接用到工作中去的。

书中给出了70多个可行的重构示例,演示了重构的过程,并且解释了重构的原理和最佳实践方式。每个重构都介绍了一种经过验证的代码变换手法的动机和技术。

《重构:改善既有代码的设计》提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

重要的不只是具体的方法,正如书中总结所说,懂这些只是入门,知道何时重构,选择哪种方法重构,何时停止重构才是需要更进一步感悟的地方。能够从此书中明白提升代码品位和行动力的重要性就是弥足珍贵的了。

觉得太长的,可只看目录和要点列表,将本书作为一个重构方法论合集的索引。

本书结合设计实例从面向对象的设计中精选出23个设计模式, 总结了面向对象设计

中有价值的经验, 并且用简洁可复用的形式表达出来。

本书分类描述了一组设计良好、 表达清楚的软件设计模式, 这些模式在实用环境下特别有用。 适合大学计算机专业的学生、研究生及相关人员参考。

对本书的阅读建议是先积累一定编程经验,并且看之前先看重构和(或)代码简洁之道,最终目的都是为了复用和减少耦合。

正如书中所讲述的那样“这不是读完一遍就可以束之高阁的书”。只有在实际应用中去应用它,才能体会到设计模式带来的优势与艺术。


三、思维进阶

这一部分书籍会深入软件开发的心理层面,帮助大家在思维上有所进益。

弗雷德里克·布鲁克斯(Frederick P. Brooks, Jr.)是北卡罗莱纳大学Kenan-Flagler商学院的计算机科学教授,图灵奖的获奖者之一。他被认为是IBM 360系统之父,曾担任360系统的项目经理、360操作系统项目设计阶段的经理。

初版的20年后,布鲁克斯重新审视了他原先的观点,增加了一些新的想法和建议。新增加的章节包括:原著中一些核心观点的精华;在经过了一个时代以后,布鲁克斯博士对原先观点新的认识;1986年的经典文章《没有银弹》;对1986年所下论断(在10年内不会出现银弹)现在的认识。

经典之所以是经典是因为其中的内容经久不衰。虽然部分内容可能已经有些过时,但是如概念完整性,人的重要性,增量式开发等实用的思想到现在仍有存在感。

即使你遇到的是与书中不同的事例,但是深究之下会发现其中的共性问题。此书能帮助大家更好地在较大的团队软件项目中进行实践,十分适合有志于向项目管理层面发展的小伙伴。

又是一本超越了时间空间的经典书目。

“管理上的最大罪行是浪费人的时间”。本书从人的因素出发来分析和挖掘软件开发中的风险/成本/进度等方面的制约和协调艺术。对当今的项目管理仍然有宝贵的借鉴意义。

《编程珠玑》书如其名,是计算机科学大师Jon Bentley从围绕程序设计人员面对的一系列实际问题中凝结出的一篇篇不朽的编程“珠玑”。

本书通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。

探究问题的本质,真正的优雅地解决问题,才是本书所要传达的精神。

顾名思义,“从小工到专家”意味着这本书从初学者到有经验的程序员,再到软件项目经理都适合阅读。

因为它在内容上颇为全面,由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术

本书列举了从业者在成长道路上必经的弯路,同样适合一边实践一边阅读,能够帮助你解决许多当下遇到的难题。

告诉人们如何从业者团队化和产品角度思考整体问题,并且附录提供了完整的思考指南和贴士。
在行动之前,问自己“我为什么这样做?这样做值得吗?”

《素数之恋》是一本科普读物。围绕黎曼猜想,深入浅出地阐述了相关知识以及数学家们的趣闻轶事。目标是让非数学专业的读者可以理解这个数学中最深奥的问题,感受数学之美。

相信无论是程序员还是非程序员,对计算机领域中的的职业,都有过一个“黑客”的幻想。那么“黑客”与“画家”的碰撞,也太酷了吧!

这是一本能引发技术人思考的佳作,真正意义上的黑客精神、创业、编程语言,是这本技术散文集的三个主题。


四、职场知识

为了未来更好的发展,我们都在努力地把技能点点满。但步入了工作岗位朋友们应该都知道,技能还分硬技能软技能

对于程序员来说,硬技能就是上述书籍中我们提到的技术相关的知识。软技能则是除了自身工作岗位必备的知识和使用工具的能力外,围绕着工作和生活的方方面面产生的相关能力。在相似的技术水平下,软技能能够成为你在职场上获得差异化竞争力的关键!

计算机科学的知识世界浩如烟海,不像K&R和CSAPP等绝大部分书籍关注的是技术,也不像《人月神话》注重项目管理,《软技能》是一本真正从“人”的角度关注软件开发人员自身发展的书。书中涉及的内容从思维方式,到生活习惯甚至包括求职技巧以及不动产管理。可谓是全方位囊括了软件行业从业人员所需的“软技能”。阅读这本书,希望你在工作和生活中的重大时刻能够“软硬兼施”,突破难关。

本书提到了一些大部分技术人员在以往会忽略的问题,实际上也适合各行各业的伙伴阅读,在职业发展的初期帮助自身进行自我管理及规划。

答主曾经听到过一个故事:某个新人开发比较内向,在做一个需求的时候遇到了问题不敢和同事与上级沟通,只顾埋头苦干,直到排期中的交付节点将至,对应的产品经理来询问进度,才得知进展状况不佳。此事大大影响了迭代进度,而会议上因为进度带来的压力,这个开发新人原本就生疏的表达能力更是受到了负面影响,多方沟通都遭遇了瓶颈。一时间,需求能否如期交付被打上了一个大大的问 。

无论是什么职位,在职场中难免都要与其他不同部门与岗位的同事进行沟通和对接。尤其是当你成为一名开发人员的时候,将会面对大量的需求。此时,良好的沟通力将帮助你更高效地完成工作

“马歇尔?卢森堡博士发现了一种沟通方式,依照它来谈话和聆听,能使人们情意相通,和谐相处,这就是《非暴力沟通》

你可能会问,为什么会把谈话和“暴力”扯上关系呢?实际上如果细心留意日常生活中的谈话场景,并用心体会不同的谈话方式给我们带来感受,我们一定会发现有的话虽然看上去不起眼,但确实让人很受伤。肉体伤害固然可怕,但语言暴力在潜移默化中给我们带来的情感和精神上的创伤就像钝刀子割肉,是无法忽视的隐痛,加剧人与人之间的阻碍与隔阂。

非暴力沟通能够:1.疗愈内心深处的隐秘伤痛;2.超越个人心智和情感的局限性;3.突破那些引发愤怒、沮丧、焦虑等负面情绪的思维方式;4.用不带伤害的方式化解人际间的冲突;5.工作效率

中国文化提倡含蓄,我们中大部分人更愿意默默体会而不是直接表达。”他人的言行举止或许会激发我们的感受,但这绝非产生这些感受的原因。感受源自我们如何看待他人的言行以及我们当时的需要和期待。”
非暴力沟通建立了观察、感受、需要的一个感受和处理自己情绪的流程,帮助人们和解自己,也和解他人。在表达时将重心从指责他人转移到自己的感受和需求上,更容易去构建同理他人和自己的平和交流场景。

番茄工作法是弗朗西斯科?西里洛于1992年创立的。他在大学生活的头几年,曾一度苦于学习效率低下,“于是我和自己打赌,下猛药,狠狠鄙视自己说:‘我能学一会儿习吗?真正学上10分钟?’我得找个计时教练,谁来替我掐表呢?后来我找到了,是一枚厨房定时器,形状像‘西红柿’(Pomodoro ,意大利语的“番茄”)。就这样,我邂逅了我的番茄钟。”

作为一个有硬性项目任务的开发人员,效率一定是你一直在努力攻克的难关!写不出代码时抓耳挠腮,学习和工作无法有效集中注意力?任务太多手忙脚乱,每件事都做了但都没有进度?

本书分解了番茄工作法的使用法则,帮助你:

  • 减轻时间焦虑
  • 提升集中力和注意力,减少中断
  • 增强决策意识
  • 唤醒激励和持久激励
  • 巩固达成目标的决心
  • 完善预估流程,精确地保质保量
  • 改进工作学习流程
  • 强化决断力,快刀斩乱麻
  • 所有人都以为“杰出”源于“天赋”,“天才”却说:我的成就源于“正确的练习”

    著名心理学家艾利克森在“专业特长科学”领域潜心几十年,研究了一系列行业或领域中的专家级人物后发现,不论在什么行业或领域,提高技能与能力的最有效方法全都遵循一系列普遍原则,即针对不舒适不安全的区位刻意练习并且反馈效果。他将这种通用方法命名为“刻意练习”

    对于在任何行业或领域中希望提升自己的每个人,刻意练习是黄金标准,是迄今为止发现的最强大的学习方法。

    人是生而自由的,却无往不在枷锁之中。这句话同样精确地描述了人类受困于思维错误的情形。人并非无所不知,无所不能的。思维错误、认知陷阱就像是伴生于人类,让人难以察觉,却又无处不在。

    适合刚开始了解思维谬误的人阅读,穿插其中的趣味小故事可以让你一口气快速读完。

    可以采纳书籍末尾的建议,拿出一张白纸,将书中列出的52中思维错误列成清单,在生活中有意地去进行矫正练习,并且当面临难题和重大决策时,逐项排查。


    以上就是得小帆的珍藏分享,希望能帮助大家在职业道路上更进一步~
    更多优秀内容请关注@得帆云,欢迎点赞、关注、分享支持!

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

    上一篇 2022年8月17日
    下一篇 2022年8月17日

    相关推荐