私下里,经常有一些大学生找我推荐 Java 书籍,并且要循序渐进型的,刚开始不要太难,否则就入门到放弃了,但收尾的时候一定要有深度,否则怎么收割大厂 Offer

大学四年因为读了这13本书,我成了别人眼中的大神!_干货
要求还不少,我给你说。不过,男人,你懂得,能说不行吗?必须硬上啊。刚好各位同学也可以趁着放寒假的时候进修一下。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_02

好了,牛逼吹完,咱们开始正文。

第一本,《Head First Java》

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_03

《Head First Java》这本书非常“厚颜无耻”:真的是厚,至少比我的脸皮厚,好几百页呢;另外就是颜值真的是高,上一张图同学们感受一下;总结一下就是“无耻”,可能换个词比较贴切——调皮吧,这样读起来才容易入门上手。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_04

就冲这张图,我觉得《Head First Java》的作者足够的大胆。本书挑选的图片可以说是张张经典,真正实现了“图文并茂”的需求,搞得你感觉有点不好意思,仿佛不是在读一本 Java 技术书,而是在读一本漫画书。

除了图片,还有游戏、拼图、解谜题以及同学们意想不到的内容。真的是一点都不“正经”,正因为如此,阅读起来才感觉兴趣盎然吧。

第二本,《Java 核心技术卷一

相比较于《Head First Java》,《Java核心技术卷一》就显得比较严肃刻板谨慎了。但绝壁是一本值得读一读的入门书,广度和深度都恰到好处。如果不喜欢《Head First Java》的风格,就选《Java核心技术卷一》。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_05

我在读这本书的时候写了 9 篇不错的读书笔记,涉及到的内容画一张思维导图同学们感受一下。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_06

这 9 篇文章在全网的浏览量非常的高,期间还创作了《教妹学Java》系列,大家如果觉得好的话,我后面会继续写一写这个系列。

Java面试官:兄弟,你确定double精度比float低吗?

请用面向对象的思想,谈一谈这次面试的过程

再谈 Java 的继承和超类 Object

Java:接口和抽象类,傻傻分不清楚?

Java生成二维码分享海报

Java:优雅地处理异常真是一门学问啊!

教妹学 Java:晦涩难懂的泛型

教妹学Java:大有可为的集合

教妹学 Java:难以驾驭的多线程

第三本,《Java 编程思想

《Java 编程思想》是个大部头,足足 880 页,文字更是密密麻麻。我不建议大家一个字一个字的读,知晓其中的精华就可以了。大学四年因为读了这13本书,我成了别人眼中的大神!_干货_07
如果你觉得这本书读起来很痛苦,不妨来读一读我加工润色后分享博文,足足 25 篇,每一篇都很精彩。

25 篇 Java 入门技术博文

《Java编程思想》无疑一直都会被大力推荐,可是第四版的出版时间竟然早在 2007 年,全书大部分的代码是基于 JDK 1.5 完成的。如今什么年代了?

告诉你一个好消息,《Java编程思想》的作者 Bruce Eckel 在 2017 年的时候发布了第五版,没想到吧?为什么在网上都看不到这本书的消息呢?因为改名了,而且只有电子版。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_08

这本书的所有源代码已经开源在 GitHub,传送门:

https://github.com/BruceEckel/OnJava8-Examples

如果英语水平像我一样菜,看英文版比较费劲,可以在 GitHub 上查看译文,传送门:

https://github.com/LingCoder/OnJava8

第四本,《Effective Java

《Effective Java》除了翻译让众多 Java 程序员诟病之外,再没有任何缺点了(有读者戏称:“这本书为翻译们作出了杰出的表率”)。这本书的目标是帮助 Java 程序员更加有效地使用 Java 编程语言及其基本类库,主要涉及到 java.langjava.utiljava.io 包下面的类。可以肯定地说,这本书达到了它的目标。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_09

《Effective Java》第三版一共包含了 90 条极具实用价值的经验规则,每条规则都值得 Java 程序员在实战中去参照。这本书不需要按部就班地从头到尾读,可以随意挑选任意小节进行阅读,因为每条规则相对都是独立的,尽管它们之间会交叉引用,但并不妨碍我们随心所欲地阅读。

作者 Josh Bloch 非常的牛逼,曾是 Google 的首席 Java 架构师,《Java开发者杂志》将他列为世界上最顶尖的四十名软件人物之一。Java 之父詹姆斯·高斯林对《Effective Java》的评价也非常的高。

第五本,《Java网络编程

《Java网络编程》全面介绍了如何使用 Java 开发网络程序。网络编程是指编写运行在多个设备(计算机)上的程序,这些设备可以通过网络连接起来。这也是 Java 基础学习完后必须要学习的一大块内容,包括:Internet 底层协议(TCP/IP 和 UDP/IP)、网络输入和输出、DNS 交互、定位、识别和下载网络资源、HTTP 协议(REST、HTTP 头部和 Cookie)、Socket 通信等等。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_10

这本书的整体评价并不算高,吐槽的反而更多。但是,对于学习 Java 网络编程的基础知识非常的有用。

第六本,《Java 并发编程实战

《Java并发编程实战》深入浅出地介绍了 Java 线程和并发编程,是一本还算不错的 Java 并发编程参考手册。本书从并发和线程安全性的基本概念出发,介绍了如何使用类库来提供基本的并发方案,包括如何利用线程来提高并发应用程序的吞吐量、如何识别可并发执行的任务、如何提高单线程子系统的响应性、如何确保并发程序执行预期的任务,如何提高并发代码的性能和可伸缩性等等内容。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_11

但我必须要说的是,《Java并发编程实战》这本书并没有摆脱翻译枯燥的老毛病,读起来很需要耐住性子,不然就很难把这本书吃透。当然了,并发编程本身就很难,同学们要做好心理准备

第七本《深入理解Java虚拟机

《深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第 2 版)》是唯一一本我们国内程序员写的经典书,可以媲美《Java 编程思想》。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_12

这本书牛逼到什么程度,几乎所有写 Java 虚拟机方面的文章,没有一个不在文章最后注明:本文参考字周志明老师的《深入理解 Java 虚拟机》。假如这篇文章最后没有注明的话,那保不准是不尊重版权。

第 1 版两年内印刷近 10 次,好评(五星)如潮,是整个 Java 图书领域公认的经典著作和畅销书。

第 2 版共分为 5 大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对 JVM 进行了全面深入的分析,深刻揭示了 JVM 的工作原理。

作者周志明更成为了广大 Java 程序员心目中的大神级人物,厉害厉害了!这本书的读者曾这样感叹道:“国内程序员很难再写出这么经典的书了!”

如果同学们想要成为一名优秀的 Java 程序员,《深入理解 Java 虚拟机》这本书不得不读啊!并且是细细品味的那种。

第八本,《Java性能权威指南

市面上专注于 Java 性能的书不多,《Java性能权威指南》算是一本很不错的。通过阅读本书,我们可以运用 4 个基本原则最大程度地提升性能测试的效果、使用 JDK 自带的工具收集程序的性能数据、理解 JIT(即时编译器)编译器的优缺点、调优 JVM 垃圾收集器、最大程度优化多线程等等。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_13

第九本,《代码整洁之道

我可以这么肯定地说:《代码整洁之道》值得所有的程序员读一读。软件的质量,不仅依赖于架构,更与代码质量息息相关。而代码的质量与其整洁度成正比关系,越整洁的代码,其质量毫无疑问的就会越高。由于本书中的例子是由 Java 实现的,因此 Java 程序员在读这本书的时候有着天然的优势。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_14

如何写出整洁的代码呢?Keep It Simple Stupid:代码简单直接,不仅能够提高代码的效率,还能够让阅读代码的人赏心悦目。

本书的第一章,对整洁代码下了一个定义,同学们都应该铭记在心。

1、整洁的代码力求专注,每个方法、每个类都应该全神贯注于一件事;命名更要给人一种“顾名思义”的感觉。
2、整洁的代码简单直接,从不隐藏设计者的意图。
3、整洁的代码应当有单元测试。
4、整洁的代码拒绝重复,其表达力直击人的心灵。

第十本,《设计模式之禅

《设计模式之禅(第 2 版)》是设计模式领域公认的 3 本经典著作之一,也是我们国内程序员写的一本书,趣味化十足,读起来也非常容易理解。这本书值得所有的程序员读一读,但 Java 程序员读起来更容易上手,因为源码是 Java 完成的。作者名叫秦小波,和我最喜欢的作家王小波同名。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_15

同学们都听说过,学习设计模式非常的重要,那么为什么这么重要呢,设计模式到底是什么?打个比喻学编程就像学武功一样。

武功要练得很牛逼,有两样东西不能丢。第一,是内功;第二,是武功秘籍。内功对应到编程就是我们编程基础能力,那编程的设计模式就可以想象成武术中的武功秘籍。

设计模式就是根据不同类型场景,设计优雅的(编码)解决方案。学好设计模式有很多好处,比如,容易看懂经典代码中的逻辑(很多优秀的开源框架大量使用了设计模式);应对面试时对答如流(设计模是面试重点);可以编写出优雅的解决方案(或者代码)。

第十一本,《Java开发手册

《Java开发手册》是每个 Java 程序员都值得拥有的一本参考指南。该手册涵盖了编程规约、异常日志、单元测试、安全规约、MySQL 数据库、工程结构、设计规约灯 7 个部分,参考价值极大。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_16

《Java 开发手册》作为阿里官方的 Java 代码规范标准,是行业内领先的开发规范文档。如果能够认真践行该手册中提到的规约,绝壁能够帮助 Java 程序员养成良好的编程习惯,并且提高代码的质量和降低项目维护的难度。

据说,这本手册在阿里内部打磨了很久很久才对外开放的,所以倾注了很多大佬们的心血。况且,阿里作为一个大厂,拿出来一份有瑕疵的手册,多少会丢脸,所以这本手册绝对值得读一读。

本手册的作者孤尽曾说:

代码规范这事情,它是一个吃力不讨好,短期没结果,费心又费力的事情。唯有自己内心的技术情怀。

第十二本,《重构——改善既有的代码设计》

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_17
这本书在业界的名声也非常的响,只不过看起来就需要一些精力和耐力,上面这些书看完后,可以看这一本,对于重新审视现有代码有极大的帮助。

重构代码对提高整体的架构能力非常有帮助,因为是站在宏观的角度去思考的。不然很容易把原有的功能给整出 bug 了。

第十三本,《算法》

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_18
说起数据结构和算法,我就觉得不好意思,脸上泛起难为情的红晕。但为什么我还要说呢?

因为我深受其苦。

我是一个农村走出来的娃,体会过其中的酸甜苦辣,所以我会奉劝各位,以后碰上什么知识分子上山下乡的活动,千万不要去。那不叫体验生活,那叫体验“艰苦”生活。

那在敲代码的过程中,我就经常遇到一些实际的问题,由于无法充分利用数据结构,将数据之间的关系通过合适的算法策略进行有效地存储转换,就导致程序的性能很低。

所以我劝各位同学,趁有大把的时间和精力,多投入一点到数据结构和算法上面去。基础知识就像是一座大楼的地基,它决定了我们的技术高度。数据结构和算法就是最重要的基础知识,学习它们的过程就像是在打地基。

对于算法,如果觉得《算法》这本鸿篇巨制太过枯燥的话,可以选择《趣学算法》、《啊哈算法》等一些非译作的,相对趣味化的入门书。

可能很多同学会存在这样一个误区:算法在工作当中很少会用到,需要的时候面向搜索引擎解决一下就行了。

但我想说的是,跳槽的时候很有用,因为一些大厂就喜欢考算法。除此之外,算法对阅读源码也很有帮助;况且,谁不想做一名编程的艺术家呢?长期来看,大脑思考能力是一个人最重要的核心竞争力,而算法是为数不多的能够有效训练大脑思考能力的途径之一。


在写这篇文章的时候,恰好有个同学问我下面这个问题。
大学四年因为读了这13本书,我成了别人眼中的大神!_干货_19

我想,顺带整个思维导图同学们可能对 Java 知识点就更清晰了,有了大纲就更容易去一步一个脚印,有的放矢的学习了。

大学四年因为读了这13本书,我成了别人眼中的大神!_干货_20