最近很多人问我读什么书,鉴于之前有空的时候也会读过一些书,特此整理一些分享给大家,如果有你读的很不错的书也欢迎留言推荐补充。
下面主要是还是针对 Java 工程师学习方向的相关书籍,我大致把进阶的书籍分为 Java 基础、数据库、网络、框架、架构、方法论和职场。
1, Java 基础
Java 基础主要还是围绕基础语法、多线程、JVM 和性能。
「基础」的书籍呢还是经典的《Java 编程思想》了,不过个人建议不必须那么早的看这本书,很多东西做项目多了,用的多了再回过头来看这本书效果会比较好。
「多线程」是 Java 基础中比较核心的知识点了《Java并发编程实战》永远是不过时的经典书籍,这本书理论多一些,可以配合阿里技术专家的一本书《Java并发编程的艺术》里面会讲很多技术的实现细节,有一些知识点是重复的所以两本书一起看也不会浪费很多时间。
「JVM」是 Java 进阶的关键,也是面试的必考知识点,首推周志明的《深入理解Java虚拟机》,当然在看的时候不要草草略过,还是需要仔细推敲里面每一个环节的始末缘由。虽然这本书上面的内容不是最新的,但是通过这本书可以了解基本的 JVM 概念,如果有兴趣深入了解 JVM 可以看每年 Oracle 发布的最新的虚拟机规范。看完 JVM 的目的是什么呢?就是更好的写出高效的程序并且可以性能调优,那么这时候如果配合看《Java性能权威指南》不仅可以巩固一下 JVM 知识,可以根据里面的工具和方法亲自实现一把。
2, 数据库
做程序数据库是必不可少看,不过只看目前用的比较常用的就可以了。
「Redis」一本经典的书便是《 Redis 实战》,里面由浅及深,通过真实的场景引导如何使用 Redis 的不同的数据结构,有助于更好的理解 Redis,这本书着重于讲解使用,如果要深入理解 Redis 的实现原理可以参照《Redis设计与实现 (数据库技术丛书)》这本书籍,里面讲解的很细致。
「MySQL」一本很经典的书就是《高性能MySQL》,随便这本书比较贵但是很值得一看。
「ElasticSearch」这个直接看 ElasticSearch 官网的《Elasticsearch: 权威指南》在线书籍就好,由浅及深讲的很全,从用法到原理再到进阶。网址如下:
https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
3, 网络
「网络」也是开发和面试的重点,涉及的知识点包含但不限于 TCP/IP、HTTP、SSL 等,《HTTP 权威指南》里面讲的非常详细,不过这本书内容较多,可以买来作为工具书遇到不懂的地方拿来翻看。但是一些具体的细节可能理解起来不容易,这时候阅读如果遇到问题可以参考《图解HTTP》,这本书就更容易理解。
4, 框架
「框架」的书太多了,良莠不齐。框架真心不推荐看什么技术书籍,如果是使用直接看 Spring 的官方文档就好了,很全还可以锻炼英文。如果是深入理解直接 Debug 看源码。
5, 架构
「架构」算是进阶的书籍了,如果上面的内容你觉得都可以游刃有余,那么可以看一些拓宽眼界的书籍,不过纸上学来终觉浅,所以这些东西还是自己实践更容易理解。《分布式服务框架:原理与实践》和《亿级流量网站架构核心技术》这两本书可以用来提升自己的视野,因为技术日新月异,里面的内容不一定是最新的,但足以拓宽自己的视野。
6, 方法论
上面的知识点是告诉你怎么做对,那么怎么做好呢?「方法论」就是在告诉我们如果做的优雅。《重构 : 改善既有代码的设计》是 Martin Fowler 的大作,里面会详细指导你怎么样写出优雅的代码去掉代码“坏味道”。《代码整洁之道》这本书通过名字就理解是用来做什么了吧。当然大家这时候想到了设计模式,那么《Head First 设计模式》是入门的最佳书籍了。
7, 职场
古语云:“万事俱备只欠东风”,技术水平足以胜任开发能力了但是互联网也是职场,那么有一些技能你还是需要了解下的。《软技能 : 代码之外的生存指南》里面确实有你想要的东西。