开卷有益,工程师进阶推荐的十本书

简介: 埋头赶路的同时,也要抬头看天,在开发的道路上工作越久,很容易把自己变窄。给希望提升自己的工程师们推荐十本书,有些书可能并不是讨论具体的技术,但是背后的思想和观点对工作以及生活都会有很大的启发。

之前看过一个段子,程序员的读书历程就是

x 语言入门 —> x 语言应用实践 —> x 语言高阶编程 —>

x 语言的科学与艺术 —> 编程之美 —> 编程之道 —> 编程之禅—> 颈椎病康复指南

最开始听完的时候,我的内心是这样的,

然后是这样的,

 

 

讲完段子,我们正经来推荐书。一个新人进入公司,经过最开始的快速成长,慢慢的业务开始得心应手,但是挑战越来越少,重复的内容变多,

技术的广度和深度都难继续提高,这时候很容易就进入一个平台期。

工作三年左右是一个分水岭,能否保持快速的技术成长是关键,这时候就需要找对一个合适的方式进阶。

埋头赶路的同时,也要抬头看天,在开发的道路上工作越久,很容易把自己变窄。给希望提升自己的工程师们推荐十本书,有些书可能并不是讨论具体的技术,但是背后的思想和观点对工作以及生活都会有很大的启发。

 

《暗时间》


如果你有一台计算机,你装了一个系统之后就整天把它搁置在那里,你觉得这台计算机被实际使用了吗?没有。 

因为CPU整天运行的就是空闲进程。运行空闲进程也是一天,运行大数据量计算的程序也是一天,对于CPU来说同样的一天,价值却是完全不一样的。

大脑也是如此。善于利用思维时间的人,可以无形中比别人多出很多时间,从而实际意义上能比别人多活很多年。

作者刘未鹏也是一位工程师,这本书从计算机和数学的角度去思考心智和时间管理,可以带来许多新的观点。

 

《金字塔原理》


 

如何让写作和表达更有条理?这本书对金字塔原理的概念进行了解释,以及如何利用这一原理构建基本的金字塔结构。 

《金字塔原理》帮助我们学习如何深入细致地把握思维的环节,以保证使用的语句能够真实地反映希望表达的思想要点。书中列举了许多实例,突出了强迫自己进行“冷静思维”对明确表达思想的重要性。

 

《重构 :改善既有代码的设计》


 任何一个傻瓜都能写出计算机能理解的程序,而优秀的程序员却能写出别人能读得懂的程序—— Martin Fowler 

重构,就是在不改变外部行为的前提下,有条不紊地改善代码,使得编码更合理,架构更科学。

本书清晰揭示了重构的过程,解释了重构的原理和最佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。

 

《大型网站技术架构:核心原理与案例分析》


 

这本书通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。

 

不仅适用于指导网站工程师、架构师进行网站技术架构设计,也可用于指导产品经理、项目经理等了解网站技术架构的基础概念,还可供各类软件开发从业人员借鉴,了解大型网站的解决方案和开发理念。

 

《Java并发编程的艺术》


虽然是讲解Java语言的并发,但是包括共享变量,可见性,同步等,底层的原理和机制都是相同的。 

《Java并发编程的艺术》内容涵盖Java并发编程机制的底层实现原理、Java内存模型、Java并发编程基础、锁、并发容器和框架、原子类、并发工具类、线程池、Executor框架等主题,每个主题都做了深入的讲解,通过实例介绍了如何应用这些技术。

  

《系统之美》

我一直相信复杂事情的背后都隐藏着这样浅显易懂的原理,这是一本高屋建瓴的书,

帮助你从系统和组织架构的角度思考问题,更全面的思考,避免陷入局部和表象。

系统思考将有助于我们发现问题的根本原因,看到多种可能性,

从而让我们更好地管理、适应复杂性挑战,把握新的机会,去打造一个完全不同的自我和一个崭新的世界。

 

《系统之美》是一本简明扼要的系统思考入门指南,也是认识复杂动态系统的有力工具,帮助大家提高理解和分析身边系统的能力。

小到个人问题,大到全球性复杂挑战,本书都可以为你提供睿智的解答和洞察。

  

《HeadFirst设计模式》


《设计模式》的经典性不言而喻,但是作为一本圣经级的书,相对比较枯燥,《HeadFirst设计模式》应运而生。

《HeadFirst设计模式》每一章都是先提出问题,然后讨论、分析,引导出相应的设计模式,再一步一步的实现,幽默的语言和有趣的插图,让人轻松愉快的学习了一个模式。

 

《软技能: 代码之外的生存指南》


这是一本真正从“人”的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。

本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、精神篇等七篇,概括了软件行业从业人员所需的软技能。聚焦于软件开发人员生活的方方面面,从揭秘面试的流程,到如何通过撰写博客打造自己,从提高自己工作效率到如何理财,如何关注自己的健康等诸多方面。通过阅读本书,我们可以思考自己的职业生涯,丰富自己的生活。 

 

《代码整洁之道》


这本书告诉大家,写代码好像写文章一样,“大师级程序员把系统当故事来讲,而不是当做程序来写”,如同黑客与画家说的,编程本身就是一门艺术。 

如何才能写出整洁代码呢?那就是KISS原则,Keep It Simple Stupid,让代码简单直接,让阅读者可以很容易地看出设计者的意图。

本书中给出了很多方法与规范,遵循这些规则可以帮你写出更加的整洁代码。

 

开卷有益,离开舒适区才会成长,没有终身学习观念的人很容易被淘汰。
欢迎关注公众号"越读纪",加入越读书友会,一起来组队读书!

目录
相关文章
|
SQL 前端开发 JavaScript
Java开发初级6.24.2
3.Java网站src/main/java目录保存的是什么资源? A. Java源代码文件 B. 测试代码 C. JavaScript、CSS等文件 D. 图片资源 正确答案:A 4.什么是索引Index? A. SQL数据库里的表管理工具 B. SQL数据库里的查询工具 C. SQL数据库里的目录工具 D. SQL数据库用来加速数据查询的特殊的数据结构 正确答案:D
144 0
|
Java
Java开发初级6.23.1
1.下面关于泛型的描述中错误的一项是? A. “? extends 类”表示设置泛型上限 B. “? super 类”表示设置泛型下限 C. 利用“?”通配符可以接收全部的泛型类型实例,但却不可修改泛型属性内容 D. 如果类在定义时使用了泛型,则在实例化类对象时需要设置相应的泛型类型,否则程序将无法编译通过 相关知识点: https://edu.aliyun.com/course/35 正确答案:D 2.下列选项中属于SVN中控制鉴权用户访问版本库的权限默认权限的是() A. write B. read C. none D. null 相关知识点: auth-access:取值范围为"writ
168 0
|
Java 开发工具 git
Java开发初级6.22.3
5.在Git使用过程中,进行Git配置的操作命令是哪个() A. config B. config -g C. config -a D. git config 相关知识点: 在git中,经常使用git config 命令用来配置git的配置文件,git配置级别主要有:仓库级别 local 【优先级最高】、用户级别 global【优先级次之】、系统级别 system【优先级最低】 正确答案:D 10.RDBMS是什么? A. Rela Database Management Systems B. Relational Database Management Systems C. Relation
125 0
|
Java 开发工具 git
Java开发初级6.20.3
Java开发初级6.20.3
59 0
|
Java
Java开发初级6.20.1
定义时使用了泛型,则在实例化类对象时需要设置相应的泛型类型,否则程序将无法编译通过 相关知识点: https://edu.aliyun.com/course/35 正确答案:D 2.下列选项中属于SVN中控制鉴权用户访问版本库的权限默认权限的是() A. write B. read C. none D. null 相关知识点: auth-access:取值范围为"write"、"read"和"none"。 即"write"为可读可写,"read"为只读,"none"表示无访问权限。 默认值:write 正确答案:A
111 0
|
Java
Java开发初级6.19.1
Java开发初级6.19.1
136 0
|
Java
Java开发初级6.11.1
Java开发初级6.11.1
74 0
|
SQL 前端开发 JavaScript
Java开发初级6.10.2
Java开发初级6.10.2
93 0
|
Java 开发工具 git
Java开发初级6.9.3
Java开发初级6.9.3
79 0
|
Java 开发工具 git
Java开发初级6.8.3
Java开发初级6.8.3
96 0