献给不知道如何提高自己的Java程序员

书单 | 一份让一个java程序员半年内收获1000+粉丝的书单
转载自知乎作者:
https://zhuanlan.zhihu.com/p/32932986

1 JavaSE - 《Effective Java》
这是一本很好的提升JavaSE水平的书,里面介绍了很多关于编写Java代码的优秀原则,对于养成良好的Java编程习惯和深入理解Java语法细节,都有很大帮助。唯一有点遗憾的是翻译,这是很多书籍的通病了,建议结合英文一起阅读
说来惭愧,这竟然是我阅读的第一本技术书籍,整个大学四年,我并没有主动的去阅读书籍,后悔是没用的了,种树的最佳时机是在十年前,其次是当下。这本书让我养成了每天阅读学习的习惯,这个的重要性远超它带给我知识的重要性。

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

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

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

4 Restful - 《Rest in Practice》
现在的接口基本上都是restful接口,什么是restful,为什么要使用restful,它是怎么发展起来的,带着种种疑问,我在网上找到了这本介绍restful的书,而它也完美的回答了我的问题。 还是和之前一样,光看一本书是不足以掌握一项技能的,利用搜索引擎可以找到更多的关于Restful的论著和讨论,以至于我研究完这个专题之后,写出了我迄今为止点赞数最高的文章——《如何给老婆解释什么是Restful》。
回过头来看这篇文章,看到文章最后的十二篇参考文献,发现自己在不知不觉中写出了一篇可以发表为大学毕业论文的文章ヽ( ̄▽ ̄)ノ。

5 Next
无知的人,总觉得自己很厉害,什么都懂;厉害的人,喜欢望望天空,告诉自己,“你很无知”
学无止境,对于Java这本语言,我需要去掌握的还有很多:
并发编程:不仅仅是Java,其他语言也都会涉及到并发,只要你想利用多CPU提升你程序的性能,你就要学会处理并发问题、学会并发编程。准备阅读的书籍:《Java并发编程实践》
微服务:不得不说,微服务实在是太火了,恰好现在所在的项目也是用到了微服务+Docker,因此了解一下微服务架构,对工作、对自己的未来都是有很大帮助的。准备阅读的书籍:Spring官网、《Spring Cloud 微服务实战》、《微服务设计》…
设计模式:以前对于设计模式都是零零碎碎的了解,准备系统的学习一下,对自己写出优雅的代码、看大神的代码乃至设计出优雅的架构都会有帮助。准备阅读的书籍:《Head First设计模式》
阅读源码:可以说,上面所学的种种Java技术,都是为了阅读源码做准备的,而阅读源码,则是为了写出和优秀源码一样优秀的代码做准备的。现在还没想好要读什么源码,到时会先搜一下阅读源码的一些技巧和适合新手阅读的Java源码。之后,可以从自己最经常使用的开源软件,比如Spring和Tomcat入手,一个个了解它们背后的机理。在一起这么久,连对方底子都没摸透,我怎么好意思?

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

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

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

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

如何说服你的同事使用TDD
如何在Spring Boot中使用TDD写出高质量的接口

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

    通讯协议:TCP/IP协议,以及应用层的Http协议,这些技术在工作中虽然很少需要直接使用,但是和JVM一样,弄清楚这些通讯协议背后的原理,以后看问题的视角也就不一样了,准备阅读的书籍:《图解Http》、《TCP/Ip协议》

解释器和编译器原理:这门课是很多计算机专业的必修课,所以准备读一下一本教科书,《计算机程序的构造和解释》
学一门新的编程语言:编程语言在很多方面都是相通的,当然也有互补的地方,而且快速掌握一门新语言,也是程序员的必备技能,准备学一门和Java比较互补的,也许是Ruby?

程序员软技能
后面的都是后话了,看原文链接吧。。。。

你可以不喜欢杜兰特,但是必须喜欢威少:打球努力,忠诚于家庭!!!!!!!!!!!!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38341437/article/details/88670495