学习方法,习惯Beautiful Java成长●随笔

书单 | 一份让一个程序员半年内收获1000+粉丝的书单

2018-01-15  本文已影响10301人  柳树之

有同学在评论里留言,说让我分享一下读过的书和感受。事实上,每个人的目标都不一样,适合我的书不一定适合其他人,因此我觉得分享一下我挑选书籍的方法,顺带分享几本好书,可能对读者来说更有价值。
所以在分享书单之前,我想先聊聊我是怎样挑选书籍的。

评价驱动 vs 能力驱动

不同于一般的评价驱动,也就是哪本书评价高,读哪本,我读书,是极其功利的能力驱动我的职业规划和工作需要我掌握什么能力,我就去看什么书。

评价驱动:


能力驱动:


这两种阅读方式,一种读书是为了接受教育,另一种,则是为了研究
评价驱动式阅读,就好比这学期有一门叫“计算机编译原理”的课,配套一本《计算机程序的构造和解释》这本书,你要把这本书读完;
而能力驱动式阅读,则好比你需要写一篇关于“计算机编译原理”的论文,你需要对这个课题进行研究,而《计算机程序的构造和解释》,只是你研究过程中的一份参考文献。

我的短期目标是成为一个专业的程序员,这是一个很空洞的描述,因此我将其细化为各种能力:

接着再根据我需要的能力,去寻找对应的书籍,这种主动式的阅读,比起传统的把读完一本书作为目的的被动阅读,会带来更高的学习效率。由于我是带着寻找答案的目的来阅读的,因此读的时候会更加专注,同时,如果书中不能完全解答我的疑惑,我还会继续寻找更多的资料,直到我认为自己掌握了足够的知识。

由此,我的书单,或者说我的能力清单,也就产生了。

Java

我不想争论到底是Java好还是Python好,我只想好好精通一门语言。

JavaSE - 《Effective Java》

这是一本很好的提升JavaSE水平的书,里面介绍了很多关于编写Java代码的优秀原则,对于养成良好的Java编程习惯和深入理解Java语法细节,都有很大帮助。唯一有点遗憾的是翻译,这是很多书籍的通病了,建议结合英文一起阅读。

说来惭愧,这竟然是我阅读的第一本技术书籍,整个大学四年,我并没有主动的去阅读书籍,后悔是没用的了,种树的最佳时机是在十年前,其次是当下。这本书让我养成了每天阅读学习的习惯,这个的重要性远超它带给我知识的重要性。

JVM - 《深入理解Java虚拟机》

要想真正精通Java,必须要掌握JVM。在掌握了JVM的内存模型、类加载机制等知识之后,后面看Java代码的视角就完全不一样了,你会不自觉的从JVM的角度去看代码,你会好奇这段代码,JVM是按照什么机器指令去执行的。

Spring - 《Spring in Action》

之前学过Spring,也做过项目,但都是利用网上一些视频、博客等资源学习的,去年年中,因为项目的变动,新的项目需要用到Spring和Spring Boot,于是打算重新学习一下。从搜索引擎的反馈结果,我认定了这本书。看看书的目录,就知道对Spring的讲解非常全面,是一本非常适合Spring入门的书,看完之后对如何使用以及为什么要使用Spring提供的各种技术,会有一个很详尽的理解。

当然,就像上面提到的,书中的内容往往不能完全满足我对知识的理解,就像这本书中提到的“控制反转对于单元测试起到很好的作用”,书中并没有做进一步解释,因此我只能自己找其他的资料继续了解。主动式的阅读也让我收获到更多的东西,最后输出了“用小说的形式讲解Spring”系列的文章。

Restful - 《Rest in Practice》

现在的接口基本上都是restful接口,什么是restful,为什么要使用restful,它是怎么发展起来的,带着种种疑问,我在网上找到了这本介绍restful的书,而它也完美的回答了我的问题。
还是和之前一样,光看一本书是不足以掌握一项技能的,利用搜索引擎可以找到更多的关于Restful的论著和讨论,以至于我研究完这个专题之后,写出了我迄今为止点赞数最高的文章——《如何给老婆解释什么是Restful》。

回过头来看这篇文章,看到文章最后的十二篇参考文献,发现自己在不知不觉中写出了一篇可以发表为大学毕业论文的文章ヽ( ̄▽ ̄)ノ。

Next

无知的人,总觉得自己很厉害,什么都懂;厉害的人,喜欢望望天空,告诉自己,“你很无知”

学无止境,对于Java这本语言,我需要去掌握的还有很多:

程序员通用技能

一个连代码都写不整洁的架构师,你能指望他设计出多好的架构?

整洁易读的代码 - 《代码整洁之道》

这是一本提升代码审美的书,看完之后,你再也不会容忍自己写出那些自己过几个月回过头再来看时,一脸懵逼完全看不懂的代码了。

代码重构 - 《重构》

《代码整洁之道》侧重于介绍什么是整洁的代码,而《重构》则告诉你怎样把不整洁的代码,修改到整洁。这本书很厚,但我只用了两个星期就把它“读完”了,就像书中作者所建议的,仔细阅读前面介绍重构通用方法的四个章节,后面的都是介绍具体重构方法的,可以粗读,然后把这本书放在桌子旁边,需要时再去查阅。
可以说,这就是一本重构的字典,就像你有了英语词典之后,学英语时就不再害怕遇到生词一样,有了这本书,你再也不必担心不会重构代码。

TDD

《代码整洁之道》、《重构》以及下面要介绍的《程序员职业素养》,都提到了TDD的重要性,这也确实是一名专业的程序员的必备素养,因此去年年末,我对TDD做了一番研究:

Next

作为一个程序员,还有很多通用技能需要掌握,可惜大学不是读的计算机专业,不过既然这么热爱写代码,那么有些技能就必须补上:

程序员软技能

生活不只有代码,还有诗和远方。

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

book.jpg

如果要选一本2017年对我影响最大的书,那无疑是这一本《软技能-代码之外的生存指南》。
在这之前,我为公司写代码只是为了交差,在这之后,我把自己当做一个公司,我写的代码影响到“我”这个公司的声誉。
在这之前,我写文章只是为了总结,在这之后,我搭建起自己的个人博客网站,开始经营自己的品牌——Sexy Code,开始用心在写作,思考怎样表达才能让读者更加容易接受,思考我所讲的内容够不够全面。
在这之前,我只知道学更多的技术,在这之后,我懂得了每天再划分一些时间出来,学习代码之外的一些技能。
我在简书上写了关于这本书的三篇读后感,不过这远远不是我所收获的一切,很多东西很零碎,不适合写出来:

《程序员职业素养》

这本书很薄,却介绍了很多程序员在工作中会遇到的事情的处理方法,比如怎么说不、怎样作出承诺、怎样管理好时间等等,特别是里面对TDD的介绍,让我对这个听过很多次却依然很陌生的名词产生了兴趣,并进行了一番研究。

阅读能力

随着看书习惯的养成,看书的效率就显得越来越重要。去年花了两个多月的时间,专门读了七本书,研究“如何高效阅读”这个课题:我读了这七本书,写了这篇关于如何高效阅读的文章

经济学

不知道为什么会对经济学感兴趣,在年初订阅了一个经济学的课程。直到最近突然发现,代码和软件架构中经常提到的“解耦”、“分层”,不就是经济学里说的“分工产生效能”吗,而软件中追求的高性能,和经济学中追求的“效率”,又何尝不是可以互相借鉴呢?当然,学点经济学对生活也是很有帮助的了。
这里就又不得不提到“跨学科”这个很潮的词了,软件工程、经济学、生物工程......这些学科之间,肯定是有可以互相借鉴的,Docker容器化的设计者,是不是从集装箱中得到灵感呢?而集装箱的设计者,是不是从某种生物的身上得到的灵感呢?

Next

代码之外的技能对自己的帮助是如此之大,以至于我在今年年初就给自己想好了要学哪些技能:

介绍了这么多书,最后还是要回到一开始提到的,能力驱动
读再多的书,也不能确保你比别人优秀,关键在于书中的知识,有没有转换成你的能力。
这个观点我已经忘了是在哪里看到的了,但是这个观点是如此明显,以至于都不需要对它进行批判性质疑。不过就是这么明显的道理,很多人都忘了。而这,也是我坚持写作的原因,只有能够用自己的语言,把知识重新输送出去,才算是真的弄懂了知识
同时,写作带给我的粉丝、评论互动、点赞,也是一种正向反馈,这促使我继续通过阅读,获得大量输入,进而持续输出。

工作一年后的自己,反而比读大学时的自己更加好学了,也许是大学时忙于写作业、泡妞、吹牛皮、防挂科而没有精力考虑人生规划了吧,也许是出了象牙塔之后接触的人和事更多了吧,anyway ( ̄▽ ̄)~*

对了,个人Bridge4You公众号已经开通,欢迎关注!
有些话只能在那里跟你说 (〃'▽'〃)

扫码关注Bridge4You
上一篇 下一篇

猜你喜欢

热点阅读