程序员的内功修炼——值得看的9本书
前言
作为程序员,其能力可分为两种:
- 技术能力,对语言的理解,对所在技术栈中技术的理解,这类能力可称为外功。
- 思维的修炼,工作效率提升, 对代码的理解,对架构的理解,此类能力可成为内功。
内功和语言平台无关,修内功对于程序员总体的能力提升有潜移默化的作用
本文整理了行业内经典的书籍,工作之余不妨拿来研读。
职业生涯篇
如何理解软件这个行业,行业内的大师的职业轨迹是如何的?
作为程序员要关注哪些内容可以让自己的职业生涯之路走的一帆风顺?
这一部分便会介绍这类书籍。
程序员修炼之道 The Pragmatic Programmer
Screen Shot 2018-04-01 at 12.56.59 PM《程序员修炼之道》由一系列的独立的部分组成,涵盖的主题从个人责任、职业发展,直到用于使代码保持灵活、并且易于改编和复用的各种架构技术。利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。
书里讲到很多故事,教你如何一步一步从“菜鸟”转变成大牛。成为一名“大家”需要哪些能力。经过实践和总结,诙谐的讲述出来。
我编程,我快乐 The Passionate Programmer
Screen Shot 2018-04-01 at 1.23.09 PM要在当今的IT职场取得成功,必须像经营企业那样对待你的事业。在本书中,你将学到如何规划自己的职业生涯,让它向着你选择的目标前进,使人生更快乐、更美好。
作者运用其独特的思维方式,启发程序员不能只注重技能上的提高,还要关注自己的职业发展。书中涉及新旧技术的取舍、技术与业务的关系、技术是要专精还是要广博等,相信这也是长久以来困扰你的问题。带着这些问题去阅读此书,定会受益良多。
此外,本书中的每一章都包含一篇或几篇各领域成功人士的文章,让你直接了解他们如何规划自己的职业生涯!
中文书名看起来很山寨,但实际的内容非常棒,比如做“团队中最差的人”等等。如果你想要在这个行业走下去,热情是很重要的,推荐一边看一边思考。
编程人生 Coders at Work
Screen Shot 2018-04-01 at 1.22.38 PM世界顶尖的程序员是怎么走上编程道路的?
他们的编程工作创造和改变了人类历史,在这一过程中都有哪些经验和教训?
他们对计算机软件行业的过去、现在和未来有什么独到的看法和见解?
他们对培养、发现、选拔、面试优秀的程序员有什么建议?
放下手头的工作,听听这些软件先驱们的故事和建议,眼界可以更开阔,思路可以更清晰,方向可以更明确,人生可以更精彩。
几位计算机大牛的访谈录,你可以看看大师的路是怎么走过来,大师对待语言,对待技术的态度是什么样的,Javascript的作者又是如何看待这门语言的。
思维篇
思维篇汇总一些关于如何高效的工作,如何认识你的大脑,如何最大限度的利用你的大脑,提高效率。
效率本身很关键,掌握这些技能,做事情可以事半功倍
程序员的思维修炼 Pragmatic Thinking and Learning - Refactor Your Wetware
Screen Shot 2018-04-01 at 1.25.55 PM本书解释了为什么软件开发是一种精神活动,思考如何解决问题,并就开发人员如何能更好地开发软件进行了评论。书中不仅给出了一些理论上的答案,同时提供了大量实践技术和窍门。
左脑右脑如何工作?多任务为何效率低下?如何思考和解决这些问题?
这本书可以给你答案。
Clean code
之所以单独拿出一个章节,是因为这真的很重要
编写可读代码的艺术 The Art of Readable Code
Screen Shot 2018-04-01 at 1.24.21 PM细节决定成败,思路清晰、言简意赅的代码让程序员一目了然;而格式凌乱、拖沓冗长的代码让程序员一头雾水。除了可以正确运行以外,优秀的代码必须具备良好的可读性,编写的代码要使其他人能在最短的时间内理解才行。本书旨在强调代码对人的友好性和可读性。
Readable Code 是每个程序员应该追求的,如何写出可读代码也是有技巧的,本书讲述了为何重要,并提供了各种方法,推荐阅读
Clean Code
Screen Shot 2018-04-01 at 1.23.49 PMBob大叔写的书,与前面一本讲的是一个事情。
哲学
UNIX编程艺术
Screen Shot 2018-04-01 at 1.26.29 PM本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S. Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。本书内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。
这本书更多的将Unix系统中的一些思想和理念,对于写代码很帮助,著名的KISS原则,在本书中有很好的解释。
计算机基础
编码 Code
Screen Shot 2018-04-01 at 1.24.53 PM本书讲述的是计算机工作原理。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的。
编程语言和范式
七周七语言
Screen Shot 2018-04-01 at 1.25.19 PM通过不同的语言讲述不同的编程范式,让你明白一个问题的解决思路可以有很多,开阔视野方面非常有帮助,你不需要把这7门语言掌握的很好,但其中函数式编程、面向对象编程的概念需要特别关注。
总结
之所以要看书,是因为如今的信息过于碎片化,不成系统,所以思考的深度有时也会有所欠缺,而对于程序员而言,只要不断的积累学习,才能修炼好内功,做事情更加得心应手。