Java工程师核心书单推荐

1,116

随便打开一个招聘网站,看看对高级Java工程师的技能要求。

image-20210312224908529

抛开其它的经验能力等等,单纯从技术,或者说知识上来讲,可以发现一些共通的地方。

  • Java基础
  • 计算机基础
  • 数据库,SQL/NoSQL
  • 常用开源框架
  • 分布式/微服务
  • 中间件,缓存、消息中间件

书籍是获取知识的最好来源之一。技术书籍浩如烟海,市场上有不少《XXX入门到精通》,《XXX王者归来》,《21天学会XXX》这样的书,当然也有不少经典,个人的精力有限,这些经典不可能都通读。所以·,博主尝试整理一个Java工程师所需知识的核心书单,尽可能优中选优,挑选出Java工程师必备知识的一些最核心、最经典的书籍,希望能一起学习,一起进步。

Java工程师核心书单

Java基础

  • 《Java核心技术》

    不用多说,Java领域最有影响力和价值的著作之一。

image-20210312230306890
  • 《Java编程思想》

    这个也不用多介绍了吧,永恒的经典。

    image-20210312230527362

上面两部经典,白璧微瑕的大概就是翻译了,技术译著难免会有些词不达意的地方,英语阅读能力过关的话可以看英文原作。国内的《疯狂Java讲义》也尚可。

Java进阶

并发

  • 《Java并发编程的艺术》

    博主觉得不错,但豆瓣评分没有想象的高,可能是三人合作,导致内容有些不连贯。国内作者写的Java并发书籍,比较简单易懂,广为流传的Java线程状态变化图就出自本书。

image-20210312231235842

还有一本《Java并发编程实战》,Java并发工具包主要作者之一的著作,但是翻译的锅,能看原版的建议看原版。

JUC相关最好的资料还是看源码,Doug Lea把他的One Peace都藏在了那里。

JVM

  • 《深入理解Java虚拟机》

    JVM,这一本就够了。有个博主写过:”你看到一篇JVM的文章,如果文章的最后没有写参考这本书,那一定是作者的版权意识不够。“

image-20210312232210708

程序优化

  • **《**Effective Java》

    和《Java编程思想》一样被称为神书,介绍了如何写健壮,高效的代码,当然阅读需要有一定的开发经验。

image-20210312232551147

框架

Spirng

  • 《Spring实战》

    Spring入门经典书籍。

    image-20210312233144920

  • 《Spring揭秘》

    书比较老,但是概念和原理很清晰,看完之后,再看Spring5的源码也很不错。

    image-20210313233353617

SpringBoot

  • 《深入浅出Spring Boot 2.x》

    博主看过不少SpringBoot的书籍,个人感觉这本还不错,比较详细、全面。

    image-20210312234333809

MyBatis

MyBatis官方文档已经做得足够好了,基本的使用查看官网就够了。

  • 《MyBatis技术内幕》

    MyBatis源码解析的书不多,推荐这本,结合源码阅读更佳。

    image-20210312234955597

计算机基础

数据结构与算法

四大基础课中对Java工程师最重要的应该是《数据结构》,数据结构和算法一般不分家,所以放在一起。

  • 《数据结构与算法分析》

    国外数据结构与算法分析方面的经典教材,内容全面、缜密严格。

image-20210313234343375

其实想推荐一本教材——严蔚敏老师的《数据结构》,但是这本书是C语言版的,代码实现也不是很多,所以看起来可能比较吃力。

还有另外一本《算法导论》,不多说了😂

计算机网络

  • 《计算机网络》

    还是忍不住推荐一本教材,比较全面、系统,但对非科班选手可能不友好。

image-20210313235134976

  • 《图解HTTP》

    这本不用多介绍了吧,很生动的讲解HTTP协议的书籍,阅读起来比较友好。

image-20210313235607942

操作系统

  • 《深入理解计算机系统》

    评价非常不错的计算机操作系统书籍,但是这种黑皮书可能啃起来有些困难。

image-20210314000337590

这里带过了四大基础中的《计算机组成原理》,相比较一些比如嵌入式之类比较底层的开发而言,计组对Java开发可能没那么重要。当然,只是相对而言,理解一些编码、运算、指令、IO之类的还是对了解底层很有帮助的。作者学的时候用的唐朔飞编著的《计算机组成原理》教材。

数据库

MySQL

  • 《SQL必知必会》

    非常受欢迎的MySQL入门书籍,也可以当作工具书来用。

    image-20210314001054175

  • 《高性能MySQL》

    MySQL领域的经典著作,进阶必看。

image-20210314001247302

Redis

  • 《Redis 开发与运维》

    从开发、运维两个角度总结了 Redis 实战经验,深入浅出地剖析底层实现,包含大规模集群开发与运维的实际案例。一些api的介绍也是以Java为主。

    image-20210314001802080

  • 《Redis设计与实现》

    Redis进阶经典书籍。

image-20210314002020749

关于另一个流行的NoSQL MongoDB,考虑到应用场景没有上面两个广泛,所以没有列出,博主看过的《MongoDB实战》,觉得还可以。

分布式/微服务

  • 《SpringCloud微服务实战》

    还不错的SpringCloud书籍吧。

    image-20210314003614238

  • 《Spring Cloud Alibaba 微服务原理与实战》

    Netflex的一些组件进入了维护的状态,Spring Cloud Alibaba在最近流行了起来(技术的变迁真的太快),这方面的书不多,这本是相对而言推荐的多一些的。

image-20210314004029151

经常被拿来和SpringCloud比较的另一个开源分布式框架,官方文档大概就已经足够了吧。

消息中间件

流行的三大消息中间件,各挑出一本吧。

  • 《RabbitMQ实战指南》

    简单清晰的RabbitMQ技术书籍。

image-20210314004537483

  • 《Kafka权威指南》

    Kafka的好书还是不少的,这里推荐评分比较高的Kafka权威指南。

    image-20210314004938755

  • 《RocketMQ实战与原理解析》

RocketMQ的书籍不多,这本书入门尚可,原理解析有些单薄了。

image-20210314010757174



除了以上列出的主要一些主要分类,这里再补充一些。

容器推荐《Docker从入门到实践》《Kubernetes 权威指南》;

Maven推荐《Maven实战》;

Git推荐《ProGit》;

Linux自然是《鸟哥的Linux私房菜》;

Elasticsearch推荐《Elasticsearch实战》;

设计模式推荐《设计模式之禅》。

好了,主要的推荐就到这里,由于博主的技术视野有限,而且尽可能地压缩书单(学不动了😂),所以有些推荐未必十分合理,一些经典书籍也未列出,有不同意见或者补充,欢迎指出。

学习


参考:

【1】:有什么值得推荐的Java书籍?

【2】:2020 Java 后端工程师的书单推荐 | 芋道源码 —— 纯源码解析博客