Java程序员技术书籍指南

开篇

“夫夷以近,则游者众;险以远,则至者少”,希望读者可以在知识的海洋里不轻言放弃,当您面临挑战时,那才是成长的开始。 —小马哥mercyBlitz

文章总览 Java  多线程与并发 框架与中间件与存储 消息中间件  算法 操作系统
☕️
网络 系统设计 计算机系统 工具 编码规范 Java之外 课外读物
✏️
书籍鉴赏

读者须知:以上并不是推荐列表,而是我自己看过和即将要看的书籍摆在这,所以有可能有一些书并不太好,具体评分鉴赏如果我看过的话会附在书籍链接的后面(注意参考豆瓣评分和我的评分鉴赏)

点击以上索引,可以看到更加详尽的目录,并且可以定位跳转某个具体的书籍。

考虑到大家的时间都很宝贵,所以选对一本好书来看就显得特别重要了,下面,我将为我读过的书籍作出一些书籍鉴赏性的评价,读者可以以此作为选书参考。

PS:我认为读完一整本书才有资格去评价(至少读过一遍,才可以评价一本书,这是对作者的尊重,对读我的评价的读者负责,对人对事大概也是如此,了解片面就以此断定全面,未免太过肤浅了)

截止2020年,已经读过了26本书籍,会陆续进行更新书籍鉴赏评价

在读书之前,我认为有两件事比较重要:

  1. 如何读一本书
  2. 学会选择一本适合自己的书(在下面的书籍鉴赏中,有些书籍我会列出适宜人群)

这些是我看书一年多以来获得的一些经验,希望对你有所帮助。


Java程序员技术书籍指南_第1张图片


截止2020年1月1日看过的书籍

Java程序员技术书籍指南_第2张图片


计划在2020年会读的书籍

在这里插入图片描述

如何读一本书

  • 提问解答:看书的时候经常问自己问题(看的过程如果有思考,必然会产生一系列疑问),并解决它(记下暂时解决不了的疑惑点,在本章或全书解决之后大部分问题在这个时候就可以自己独立解决,但凡解决了问题,证明有思考,有理解,这样才是自己的东西
  • 输出经常动手,实践的做demo,理论的做笔记,写出自己的总结或博客文章,总之,输出很重要
  • 带着思考看书:几乎每本书都有分章节,章节下面还有小节,比如13.1.1,即为第13章第第一节的第一小节,我希望你至少看完每一节都要在心里review一下,这一小节作者在表达什么?这可以让你始终知道自己在读什么,因为有时候一个小节读着读着,会迷失在一片知识森林,都不知道自己读这一节的主题是什么了。这对你对这一整章的内容理解和掌握十分重要,慢慢的读完这一章,在你的心里就会有一个大致的知识地图,知道作者在讲什么。很多读者会忽略文章结构,这往往是作者有心编排好的,如果每一节你都会这么想一次,那么你就是带着思考在读书,而不是毫无章法的古板顺序阅读,所以读书,想要读好,得费些精力,你得全神贯注。
  • 多读:最后也是最有效的办法,多读几遍,所谓书读百遍其义自现,此处"百"指多次,我的大部分书都读了至少两遍(一些对我帮助不大的书我只读过一遍,但也会做做笔记),这有助于你理解一整本书,读第二遍和读第一遍的收获是完全不一样的!只要你试过读两遍同一本书,你就知道我在说什么了。
  • 动手:如果是源码分析类的书籍,切记务必要开启你的IDE,自己动手走一遍源码,光看作者带领你读源码你一定会一脸懵逼,源码分析的大忌就是不自己动手分析,自己DEBUG跑一遍。



☕️ Java

豆瓣评分 书名
《Java编程思想 (第4版)》
《Java编程方法论:响应式RxJava与代码设计实战》​ 书籍鉴赏
《深入理解Java虚拟机(第2版)》 书籍鉴赏
《深入理解Java虚拟机(第3版)》
《Effective java 中文版(第2版)》 书籍鉴赏
《Effective Java中文版(第3版)》
《Java程序性能优化》
《深入分析Java Web技术内幕(修订版)》
《Java虚拟机规范(Java SE 8版)》
《Java性能优化权威指南》
《Java性能权威指南》
《揭秘Java虚拟机》



多线程与并发

豆瓣评分 书名
《Java并发编程的艺术》 书籍鉴赏
《Java并发编程实战》 书籍鉴赏
《Java并发编程之美》



框架与中间件与存储

框架

豆瓣评分 书名
《Spring 源码深度解析》 书籍鉴赏
《Spring Cloud微服务实战》 书籍鉴赏
《SpringBoot 编程思想》 书籍鉴赏
《深入理解 Apache Dubbo 与实战》 书籍鉴赏
《MyBatis技术内幕》

数据库

豆瓣评分 书名
《高性能MySQL》 书籍鉴赏
《从Paxos 到 Zookeeper》 书籍鉴赏
《Redis设计与实现》 书籍鉴赏
《Redis深度历险:核心原理与应用实践》 书籍鉴赏
《Zookeeper 分布式过程协同技术详解》 书籍鉴赏
《MongoDB权威指南》



消息中间件

豆瓣评分 书名
《深入理解Kafka:核心设计与实践原理》 书籍鉴赏
《RabbitMQ 实战指南》 书籍鉴赏
《Rocket实战与原理解析》
《分布式消息中间件实践》



算法

豆瓣评分 书名
《剑指Offer:名企面试官精讲典型编程题(第2版)》
《数据结构与算法分析:Java语言描述》
《编程珠玑(第2版•修订版)》



操作系统

豆瓣评分 书名
《鸟哥的Linux私房菜 基础学习篇 第四版》 书籍鉴赏



网络

豆瓣评分 书名
《Netty实战》 书籍鉴赏
《Netty权威指南(第2版)》 书籍鉴赏
《深入理解Nginx》
《计算机网络(第6版)》
《图解HTTP》



✏️ 系统设计

豆瓣评分 书名
《可伸缩服务架构:框架与中间件》
《深入分布式缓存:从原理到实践》 书籍鉴赏
《大型网站技术架构:核心原理与案例分析》
《大型网站系统与Java中间件实践》
《亿级流量网站架构核心技术》



计算机系统

豆瓣评分 书名
《深入理解计算机系统》



工具

豆瓣评分 书名
《Maven 实战》 书籍鉴赏
《Git 学习指南》 书籍鉴赏
《精通 Git》 书籍鉴赏
《Kubernetes in Action》
《第一本Docker书 修订版》



编码规范

豆瓣评分 书名
《重构:改善既有代码的设计》
《码出高效:Java开发手册》



Java之外

豆瓣评分 书名
《C Primer Plus(第6版)中文版》 书籍鉴赏
《C++ Primer Plus : 中文版(第六版)》 书籍鉴赏



课外读物

豆瓣评分 书名
《上帝掷骰子吗?》
《无人生还:阿加莎·克里斯蒂侦探作品集10》
《尼罗河上的惨案 : 阿加莎·克里斯蒂作品11》
《五只小猪 : 阿加莎·克里斯蒂侦探作品集26》
《罗杰疑案:阿加莎·克里斯蒂侦探作品集02》



书籍鉴赏

一本书读完让人有所启发,那么这本书就是一本好书。

持续更新中…

《深入理解Java虚拟机》

  • 书籍内容:通俗易懂的介绍了JVM,知识点覆盖了GC、JVM内存模型、字节码等等
  • 适宜人群:所有Java开发(最好一年以上感悟会深些,此书难度并不大,但还是需要一点点基础)
  • 评价:一本不可多得的好书,给了我很大的启发,建议从事Java的人员必须阅读。JVM是我们每天都在打交道的东西,如果你不了解JVM,那一定不能说你了解Java!此书将JVM写的浅显易懂,在阅读此书的时候我还只有1年的工作经验,阅读起来还是轻松的。读完此书,你会对字节码、JVM内存模型、GC等等的一些Java底层形成一个系统的认识。

此书我看了有2-3遍,实在是津津有味



《Java编程方法论:响应式RxJava与代码设计实战》

  • 书籍内容:源码层面分析RxJava,讲述了一些响应式Reactive思想,属于源码分析类书籍
  • 适宜人群:此书难度较大,建议3年以上的程序员并且是想了解响应式Reactive开发的中高级程序员阅读
  • 评价:如果你看过SpringCloud Hystrix的源码的话,你应该不会对RxJava陌生,如果你不了解RxJava,看Hystrix的源码应该是会一头雾水。此书以一些实例的角度切入,去分析RxJava,并且引申出响应式Reactive的思想,在InfoQ的Java技术趋势报告中,Reactive编程是未来的热门,并且现在在国外已经是大热,包括Spring的Reactor库,WebFlux等等,想紧跟时代的程序员就不容错过这本响应式编程的书籍



《Effective Java》

第二版

  • 书籍内容:介绍在Java编程中很有实用价值的经验,对写好Java代码有一定的帮助
  • 适宜人群:必须要有实战经验(1年以上)的从事Java开发的人群
  • 评价:第二版的翻译太差劲了,很多地方翻译的实在是晦涩难懂,这也就是为什么我只能给此书7.5的分数的原因。但是书还是好书,此书总结了很多在Java编程中会遇到的问题以及如何避免,如果没有一定的Java实战经验的小伙伴可能会觉得有点晦涩,如果你没有遇到书中的一些问题,你很难知道作者在说什么,但是如果你是具有一定经验的开发人员,相信此书应该会对你有一些帮助。

前段时间出了第三版,不知道有没有改进翻译的问题,此书我已经购买,过段时间会进行评价,敬请期待



《Java并发编程的艺术》

  • 书籍内容:从JVM底层、硬件(CPU)等等方面去分析Java并发编程,并分析了一些java.util.current(java并发包)类库
  • 适宜人群:此书难度略大,需要有一定的JVM、并发机制的基础,最好是2-3年以上的开发人员进行阅读
  • 评价:此书并不能作为并发的入门书籍,因为如果你不了解一些深层次的JVM知识、并发原理之类的,你可能会看的不是很懂,但如果此前看过或学习过一些Java并发方面的知识,那么此书也可以是你一个不错的选择,它从底层JVM字节码的实现切入,大致介绍了一些并发机制的原理,个人认为,Java并发编程难度较大,所以懂得并发的原理,是写好Java并发编程不可缺少的。同时由于Java并发编程的复杂性,一两本书一定是无法很全面的介绍Java并发,对并发感兴趣的读者不妨多看几本Java并发的书籍。所以建议读者如果只是想入门,就选择其他的书籍,如果想精进Java并发,那么选它也是没有什么毛病的。



《Java并发编程实战》

  • 书籍内容:介绍了为什么需要并发、如何实现并发、并发带来的收益和风险以及一些并发机制的原理,最后也是最重要的,如何用好Java并发
  • 适宜人群:难度一般(最好有一年经验或有一些并发的使用经验)建议从事Java开发的人员都阅读一下,对Java并发会有一定程度的认识
  • 评价:编写此书的作者们是制定Java并发规范与JUC(Java并发类库)的团队,其中就有鼎鼎大名的Doug Lea,打开Java并发包的某个类,你常常会看到其作者就是他,此人为并发大师,Java并发类库就是他来主导编写的,可以说此人对Java并发编程的影响力十分巨大。由此可见此书的含金量。写好Java并发编程是一门艺术,此书我反复看了2-3遍,每一遍都是回味无穷,里面的大部分知识点都值得细品几遍,想用好Java并发,选它就对了。建议从事Java开发的人员都需要阅读一下,相信会给你一定的启发。



《Spring 源码深度解析》

关于研究Spring框架,包含我找视频,自己动手一步步看源码和对照此书学习Spring一共是花了2-3个月的时间,Spring是一个巨大的迷宫,你需要不断在里面迷路才可以走出这座迷宫,刚开始看的晕实属正常,坚持下去,一瞬间的顿悟带来的快感足以弥补你此前阅读晦涩源码的烦闷。

  • 书籍内容:源码级别分析了Spring的IOC、AOP、事务、MVC模块,对Spring Bean的生命周期可以有一定程度的认识
  • 适宜人群:必须有Spring使用经验,想了解Spring或想将Spring用的更好、会排查Spring的异常问题的Java开发人员,或者是想增加阅读源码的能力、对设计模式的理解(优秀的话半年以上经验即可)
  • 评价:此书是在我从事Java开发半年之后阅读的,是我的Spring启蒙书籍,所以我对其的评价会比豆瓣上的高。此书会开辟一个源码分析的入口,指引你如何走Spring这座迷宫,但是要走的出迷宫,还是需要靠自己,此书作为阅读Spring源码的引导书来说,是十分不错的。此书我反复阅读了2-3遍,并且反复在IDE上翻阅源码,对Spring会有一个大致的认识。此前我已经了解过十几种常用设计模式,所以阅读Spring源码也让我对设计模式有一定程度上的理解。阅读Spring源码,对于我的源码阅读能力的提升是相当大的。



《Spring Cloud微服务实战》

  • 书籍内容:详细介绍了微服务(有一点源码分析)SpringCloud的各大组件(Eureka、Ribbon、Hystrix、Feign、Zuul、Config、Bus、Stream、Sleuth)的原理和使用
  • 适宜人群:项目中需要使用到SpringCloud各个组件作为自己的微服务构建的Java开发人员(经验方面个人觉得门槛不高)
  • 评价:如果你想使用SpringCloud构建一个微服务或正在使用SpringCloud想进一步了解其机制,我都建议可以看看这本书,此书评分略低的点在于里面很多实战实例都过时了,很多都是错的,我在对照书中内容实践过程中踩过不少的坑,SpringBoot和Cloud版本改动代码较大,所以你会发现,你照着书中的内容自己动手做一遍,发现有些实例一直报错跑不起来…希望读者注意一下。同时如果是想了解SpringCloud各组件,那此书还是值得一读的。



《SpringBoot 编程思想》

  • 书籍内容:从一个比较深的层次介绍SpringBoot,从Spring发展史到SpringBoot的框架思想,不仅仅停留在SpringBoot的使用层面,更是思想的层面
  • 适宜人群:对于SpringBoot有兴趣,想深度学习SpringBoot并且要求必须对Spring源码有理解,前几章还需要一些Maven的知识和jar包的知识,难度略大
  • 评价:此书的作者是Apache Dubbo PMC、Spring Cloud Alibaba项目架构师、微服务布道师,对于Dubbo整合到SpringBoot能力有很大贡献,可以看出作者对SpringBoot的理解是极其深刻的,此书同时也介绍了很多Spring里的细节和发展史,作者同样对于Spring的理解极度深刻,其实SpringBoot更像是Spring的一个上层建筑,所以想懂SpringBoot,必须先懂Spring,正因如此,此书有一部分篇幅也正是介绍了Spring的一些机制。如果对于Spring有一定的理解的读者,并且希望了解SpringBoot(自动装配、SpringApplication、SpringBoot特性规范),此书是你的不二选择,在市面上应该没有介绍SpringBoot类的书籍比它深刻的了。



《深入理解 Apache Dubbo 与实战》

  • 书籍内容:介绍了Dubbo发展简史,Dubbo如何使用以及Dubbo核心代码的源码解析
  • 适宜人群:需要对Dubbo有使用经验或者对Dubbo有一定了解,希望深入原理学习Dubbo
  • 评价:此书是Dubbo的源码分析书籍,我对此书的评价并不是特别高,因为其中一些源码分析生涩难懂,并且有时候给我的感觉就像是,刚介绍到一个即将到来的高潮点(干货)但是突然就熄火没下文了,感觉很多时候都没有说到关键点。个人不喜欢这本书,感觉是作者赶稿赶出来的,工作之余并没有下很大功夫写出来的一堆源码的分析。对Dubbo底层实在感兴趣的读者也不是不可以将此书作为源码引导书来看。

前段时间出了一本深度剖析Apache Dubbo,但是我还没有看过,过段时间看过之后会补充此书的鉴赏,敬请期待



《高性能MySQL》

  • 书籍内容:介绍MySQL的经典书籍,书中知识点覆盖的十分全面,除了1、4、5、6章,其他都偏运维(DBA)
  • 适宜人群:MySQL运维人员或有MySQL开发经验的程序员或想精进MySQL能力的开发人员(1、4、5、6章门槛不高,使用过MySQL数据库即可)
  • 评价:这是本介绍MySQL的好书,作者有超过20年的软件经验,实属骨灰级程序员,现任数据库咨询顾问,专门解决数据库的问题,所以对于MySQL的各方面问题都遇到过很多,本书算是其经验总结,内容质量还是不错的,建议DBA或是Java开发都可以看一看。其中Java开发层面的话建议只需要看1、4、5、6章节即可,其他的章节都比较偏运维偏测试了,比较深入。



《从Paxos 到 Zookeeper》

  • 书籍内容:介绍了经典的分布式理论CAP、BASE,以及一些分布式一致性解决方案(2PC、3PC、Paxos、ZAB),然后深入原理介绍了分布式一致性中间件Zookeeper
  • 适宜人群:从事分布式开发或是公司正在使用zookeeper的人员亦或是希望了解分布式一致性的开发人员,阅读此书需要分布式一些概念基础和经验
  • 评价:前面几章如果没有分布式的一些经验和基本概念,例如CAP原理之类,难免会很生涩难懂。此书给我的启发是非常大的,让我了解了很多在分布式下遇到的问题和一些解决方案,不仅仅只是学习Zookeeper,当然对于学习Zookeeper此书更是一本好书,此书深入原理去讲解Zookeeper,让我这个没用过Zookeeper的小白都可以理解Zookeeper的原理,理解加记忆,使我加深了一定程度上对Zookeeper的认识。建议对分布式感兴趣的开发人员都可以读一读此书(前几章确实有一些难度,但是坚持多看几遍,我相信会有收获的)



《Redis设计与实现》

  • 书籍内容:全面介绍Redis的内部机制,包括单机、集群的原理
  • 适宜人群:想了解Redis的开发人员(门槛不高,此书难度不大)
  • 评价:如果想学习Redis,这本书我是很推荐的,本书不怎么需要展示C的源代码(Redis是用C语言编写的)就可以让读者懂得Redis的底层原理,并且示例丰富,图片生动(看起来好像在为这本书打广告,但是确实此书对我的帮助很大,看的时候也是津津有味,收获颇丰),很容易让读者读懂,希望更加了解Redis的读者不容错过这本书。



《Redis深度历险:核心原理与应用实践》

  • 书籍内容:实战的角度介绍了Redis能干什么事,以及实践Redis需要注意的点,其中也包括了集群的介绍以及Redis原理上的分析
  • 适宜人群:使用Redis的开发人员都可以来看看这本书(门槛不高,难度不大)
  • 评价:本书是一本好书,全彩印刷让我很喜欢,特别是前几章节在实战应用角度去分析Redis具体能做什么事情,都可以应用到工作中去,并且浅析了Redis的数据结构原理,在最后几章又具体介绍了Redis的一些底层原理,但是本书仅仅只有248页,限于篇幅问题,在Redis的原理方面并不会特别详尽,如果想精进原理的开发人员,也可以配合食用《Redis设计与实现》这本书。总而言之,本书是一本好书,推荐大家都可以购买阅读,相信会对你在Redis的开发上有所帮助。



《Zookeeper 分布式过程协同技术详解》

  • 书籍内容:介绍了为什么要用Zookeeper和使用Zookeeper会遇到的一些问题和如何正确使用
  • 适宜人群:对Zookeeper感兴趣且了解Zookeeper原理以及懂得一些分布式的基本概念(有一定门槛)
  • 评价:此书我给的评价这么低的原因是因为翻译,此书的翻译实在是太差劲了,很多地方翻译的让我看的摸不着头脑,但是书的内容讨论的议题还是不错看的,建议英文水平好的直接阅读英文原版。此书适合对Zookeeper很有兴趣,且有一定基础的开发人员看(最好英文好看原版,不然看不懂有些浪费时间),一般人还是跳过这本书吧…



《深入理解Kafka:核心设计与实践原理》

  • 书籍内容:介绍了Kafka如何使用,以及剖析Kafka的原理,介绍了Kafka的方方面面
  • 适宜人群:工作上需要使用到Kafka,需要了解Kafka原理以及如何正确使用,或是想要进行消息队列的中间件选型的开发人员(门槛适中,需要有消息队列概念)
  • 评价:本书的作者亦是《RabbitMQ 实战指南》一书的作者,他在RabbitMQ与Kafka上有自己的理解,目前正在从事消息中间件相关的研发工作。书中介绍了如何正确使用Kafka(消息可靠性的保证)以及一些Kafka的原理特性,讲的还是挺不错的,但是最后几章个人感觉有点偏运维,还有点偏大数据处理(Spark集成),这部分建议开发人员看看就好。阅读完此书相信你可以对Kafka有一定的理解和认识,在工作上使用Kafka也会更加得心应手,不会乱用导致意料之外的后果(实际上单纯用好Kafka也是一门学问)。



《RabbitMQ 实战指南》

  • 书籍内容:介绍了RabbitMQ一些基本概念以及Java API如何使用,然后就是一些运维相关的知识,最后是一些存储机制和集群、镜像队列原理知识
  • 适宜人群:工作上需要使用到RabbitMQ,需要了解RabbitMQ原理以及如何正确使用,或是想要进行消息队列的中间件选型的开发人员(门槛适中,需要有消息队列概念)
  • 评价:本书的前面几章对我的帮助很大(因为公司用的正是RabbitMQ),那时我还没有接触过任何一个MQ,记得当时任务是让我做一个RabbitMQ的延迟队列,此书正好有提到,阅读了两天就基本了解RabbitMQ的一些基本概念和延迟队列的原理。不得不说此书前几章写的还是挺不错的,我建议工作上但凡用到RabbitMQ的开发人员都来阅读一下此书的前面几个章节,内容包括了一些RabbitMQ概念和机制介绍,RabbitMQ的一些功能点(延迟队列、优先级队列、RPC),阅读完前几章就可以对RabbitMQ有一定的理解和认识,对于工作有一定的帮助。最后几个章节比较偏运维,开发人员感兴趣可以看看了解就好。



《鸟哥的Linux私房菜 基础学习篇 第四版》

  • 书籍内容:介绍Linux操作系统的基础以及方方面面的知识例如:Linux的历史、权限管理、文件目录管理、压缩、vim等等的工具、BASH、Shell脚本、定时任务等等一系列Linux的知识
  • 适宜人群:Linux小白,希望系统全面地学习Linux的开发人员(门槛较低)
  • 评价:此书面向初学者,对初学者十分的友好,介绍Linux的方面知识还算全面和基础并且不乏实用性,加上本书的作者是台湾的一名教师,我看这么多书的经验告诉我,老师写书一般都比较好懂,他更加知道如何让你理解加记忆,并且本书每章节后面都有一个习题供你练习,习题千万要完成,一个章节看完之后其实并不能算看过,做完习题才能算稍微理解了一点点,这样才是你的东西。作者作为老师很懂如何去教育、传播知识,有些重要的概念点不厌其烦会在各个章节中反复出现,这也有助于加深记忆。并且此书知名度颇高,我认为不需要我过多的介绍,读者应该可以理解到这本书的价值。现如今大部分的应用都部署在Linux上,如果你不懂Linux,那可真说不过去,试着读读这本书吧,不要觉得太厚就放弃,坚持下来你会感到收获满满。我推荐开发人员都应该读一读这本书。前面两章可以大致浏览一下,全书我大概也是花了一个多月的时间来阅读,内容还是算比较多的。



《Netty实战》

首先要学习Netty,你就必须先懂的BIO和NIO如何使用,Netty是封装了Java NIO库的一个异步事件的高性能框架,其中Dubbo框架的底层网络通信就是用到了Netty,所以想了解一些框架底层的网络编程,了解Netty是你的不二选择

  • 书籍内容:介绍了Netty的几个关键部分组件,以及如何使用Netty进行网络编程开发,最后有几个Netty的案例研究
  • 适宜人群:希望通过Netty进行Java网络编程开发或是单纯想了解Netty这个框架的开发人员(门槛是至少要有BIO、NIO使用经验的开发人员)
  • 评价:本书的作者是Netty的核心开发人员。作者首先分析了Netty各组件以及其原理,让读者对Netty有一定的理解,然后会穿插一些Netty使用上要注意的点以及如何使用好Netty,因为作者本身就是核心开发人员,所以对Netty也是有一定的了解程度,最后结合一些案例,分析Netty在实践中如何使用之类。如果读者想要了解Netty或是需要使用Netty进行网络编程,那么本书不容错过。



《Netty权威指南(第2版)》

首先要学习Netty,你就必须先懂的BIO和NIO如何使用,Netty是封装了Java NIO库的一个异步事件的高性能框架,其中Dubbo框架的底层网络通信就是用到了Netty,所以想了解一些框架底层的网络编程,了解Netty是你的不二选择

  • 书籍内容:本书基于最新版本的Netty 5.0 编写(官方弃用版本,目前广泛使用的版本是4.0以下),是一本深度源码解析Netty框架的一本书籍,讲述了私有协议开发、架构分析、Netty使用要点、高性能之道
  • 适宜人群:希望通过Netty进行Java网络编程开发或是单纯想了解Netty这个框架的开发人员(门槛是至少要有BIO、NIO使用经验的开发人员)
  • 评价:首先解释一下此书评分较低的原因,第一,此书基于官方已经弃用的版本5.0进行编写,5.0和4.0还是有一定的差别的,这让我在源码分析的时候总是会疑虑我现在看的东西到底现在有没有在使用到,不知道本书的源码分析哪块是我需要的,哪块是我并不需要看的。第二,本书的源码分析有一些晦涩难懂,个人而言印象不是特别好。除去源码分析之外,有一些章节例如私有协议栈开发也有点让我不是很理解,总之此书对我而言启发意义并不是很大。如果你只是想了解Netty,那么本书并不能是你的首选,只能是次选。如果你对Netty有一定程度的理解,并且熟悉网络编程,还想在这一领域深入学习,那么本书也不是不可以纳入你的阅读列表。



《Maven 实战》

  • 书籍内容:介绍Maven基本概念、原理与如何使用,以及Maven私服搭建相关
  • 适宜人群:使用到Maven构建项目的开发人员(门槛不高,难度较低)
  • 评价:作者是国内社区公认的Maven技术专家,对Maven有着深刻的理解,并且工作就是维护Maven中央仓库与开发Maven仓库管理器Nexus的核心开发者。所以本书的含金量也不言而喻了。本书对于你认识Maven是很有帮助的,唯一的不足之处就是本书年代有些久远(好像是零几年出版的书籍),但Maven这几年并没有什么变动,所以并不影响其对Maven的介绍,但是技术这东西变化的是相当的快速的,时隔十多年的书籍难免会与现实脱节,书中介绍的一些Maven的很多辅助工具(IDE之类)或是持续集成工具Hudson(Jenkins前身,现在基本都使用Jenkins而不是Hudson)都已经过时,读者可以快速跳过这部分内容,直接看作者对Maven的介绍即可,抛去除了Maven之外的辅助工具不谈,单论Maven,此书还是值得一看的,这也是我给这本书打上8.2的高分的原因。Maven在我们日常工作中每天都在接触,所以了解Maven是很有必要的,我推荐项目使用Maven的开发人员都应该读一读这本书,一定会对你有所帮助。



《Git 学习指南》

  • 书籍内容:很浅的介绍了一下Git一些概念以及一些Git工作流的介绍
  • 适宜人群:想看看Git工作流的开发人员
  • 评价:此书翻译生硬,晦涩难懂,并且书的质量也并不高,如果实在想看,直接去看Git工作流的那几个章节就好。不建议阅读,有这个时间还不如多看两遍下面要介绍的《精通 Git》。



《精通 Git》

  • 书籍内容:全面介绍了Git的基本概念和底层原理,以及Git工作流介绍等等
  • 适宜人群:使用Git作为版本控制的开发人员(门槛较低,使用过Git即可)
  • 评价:本书的作者们都在Git上有一定的造诣,其中一个是GitHub的联合创始人,经常进行Git技术文化传播,可见本书含金量。Git在版本控制上的表现是非常好的,现如今大部分的版本控制都是使用的Git,但其有一个缺点,就是命令太复杂太多,所以如果想要用好Git还是需要一定的学习成本的,但一旦学会Git,其带来的价值绝对是非常高的。本书介绍了Git的很多概念以及原理,浅显易懂,给我的帮助很大,一旦理解并且懂得Git,在工作上就可以得心应手地去使用它,不然你的每一个命令你自己都不知道将会造成什么结果,这不是一个好的工程师所具备的素质。总而言之本书很受用,建议使用Git作为版本控制的开发人员都应该读一读此书。



《C Primer Plus(第6版)中文版》

  • 书籍内容:讲述了C语言的基本概念和编程技巧
  • 适宜人群:C语言入门者(不管是C语言开发人员还是JVM、Redis、Nginx源码阅读都是可以的)
  • 评价:C语言经久不衰,势必有其过人之处,由于一路走来,在阅读JVM源码和Nginx源码上我有一些障碍,有些语法看的不是很懂,并且未来也一定有场景需要我会C语言,所以就下定决心学习一下C和C++。本书十分适合C语言的小白阅读,如果你具有一定编程经验(例如 Java),那此书的难度就不会很大(本书我只读了半个月就读完了,其中很多地方都是Java借鉴了C的思想,所以触类旁通了)。本书介绍了C语言的一些基本概念,浅显易懂,对我理解C语言有很大的帮助。其中本书的作者也是一名老师,老师写的书一般都比较容易理解,并且后面也有一些习题,读完每一章也可以做做,加深理解。本书也属于Java程序员的课外读物,如果你有着跟我一样的需求场景,那么此书是相当推荐你作为学习C语言的书籍。(不过一般的Java程序员好像也不会特意来读书学习C语言)



《C++ Primer Plus : 中文版(第六版)》

  • 书籍内容:讲述了C++语言的基本概念和编程技巧
  • 适宜人群:C语言入门者(没有C语言基础也可以阅读,此书是建立在C语言基础上讲解的)
  • 评价:本书针对C++初学者,从C语言基础知识开始讲解(其实C++也就是建立在C语言的基础上,增加了很多特性而已),所以读者如果是C语言小白的话其实可以直接阅读此书(直接学习C和C++配套),如果仅仅只是想学习C语言,那么《C Primer Plus(第6版)中文版》是一个更好的选择,这本书比《C++ Primer Plus : 中文版(第六版)》讲的要好一些(虽然好像都是一个作者)。虽然C++相较于C仅仅只是加入了面向对象的特性,但改变的东西是非常多的,所以本书比上面一本讲C语言的内容是多上一个层面的,同时C++其实在语言方面来说,也是比C语言复杂了一个档次。如果想要阅读JVM源码,想要学习C、C++,建议直接读这本书就好了。

《深入分布式缓存:从原理到实践》

  • 书籍内容:讲述了缓存的一些中间件和缓存思想
  • 适宜人群:用到书中讲到的中间件的开发人员可以进行参考,如果没有用到,个人感觉帮助不会很大
  • 评价:本书是我很期待阅读的一本书,但是真正阅读下来还是比较让我失望的,因为我没有读到我想看到的内容,书名为分布式缓存,我希望书中给予我的启发在缓存雪崩、一致性问题等等缓存的难点问题上给出一系列解决方案,但其实本书讲的更多的是如何使用中间件做缓存(虽然也有讲到缓存雪崩、缓存一致性的问题,但是就随便两句话说完了,没有给出一个十分明确、可以应用到生产代码上的方案),很多观点抛出来的都是很深的议题,然而作者说的很浅,两句话代过,个人感觉陷入了专家级别不用看,普通开发人员看不懂的窘境,再者本书由多名作者组合写作,使得整篇书的一个主题飘忽不定,个人感觉,扣不住全书的宗旨,分布式缓存,反而讲到很多中间件的使用(目测讲了5个以上的缓存中间件),如果没有用到这些中间件,那本书就毫无意义,没有任何参考价值。看完全书,个人观点(仅供参考),无法给我带来缓存上的一些启发和实用技巧。



文章总览

文章目录

  • 开篇
      • 截止2020年1月1日看过的书籍
      • 计划在2020年会读的书籍
    • 如何读一本书
  • :coffee: Java
  • :maple_leaf: 多线程与并发
  • :nut_and_bolt: 框架与中间件与存储
    • :wrench: 框架
    • :floppy_disk: 数据库
  • :postbox: 消息中间件
  • :thought_balloon: 算法
  • :computer: 操作系统
  • :globe_with_meridians: 网络
  • :pencil2: 系统设计
  • :desktop_computer: 计算机系统
  • :hammer_and_wrench: 工具
  • :memo: 编码规范
  • :books: Java之外
  • :ledger: 课外读物
  • :owl: 书籍鉴赏
      • 《深入理解Java虚拟机》
      • 《Java编程方法论:响应式RxJava与代码设计实战》
      • 《Effective Java》
      • 《Java并发编程的艺术》
      • 《Java并发编程实战》
      • 《Spring 源码深度解析》
      • 《Spring Cloud微服务实战》
      • 《SpringBoot 编程思想》
      • 《深入理解 Apache Dubbo 与实战》
      • 《高性能MySQL》
      • 《从Paxos 到 Zookeeper》
      • 《Redis设计与实现》
      • 《Redis深度历险:核心原理与应用实践》
      • 《Zookeeper 分布式过程协同技术详解》
      • 《深入理解Kafka:核心设计与实践原理》
      • 《RabbitMQ 实战指南》
      • 《鸟哥的Linux私房菜 基础学习篇 第四版》
      • 《Netty实战》
      • 《Netty权威指南(第2版)》
      • 《Maven 实战》
      • 《Git 学习指南》
      • 《精通 Git》
      • 《C Primer Plus(第6版)中文版》
      • 《C++ Primer Plus : 中文版(第六版)》
      • 《深入分布式缓存:从原理到实践》
  • :scroll: 文章总览
    • 贡献
      • License
      • 致谢

贡献

  • 如果有想法和创意,请提issue
  • 如果想贡献,请提PR

License

Apache-2.0

转载文章请在开头明显处标明该页面地址,公众号等其它转载请联系 [email protected]

致谢

如果对本篇文章有贡献,并且如果希望被添加到致谢名单中,并且提交过 Issue 或者 PR,请与我联系。

你可能感兴趣的:(学习计划)