当前位置: 首页 > Linux

Java工程师必备书单

时间:2023-04-06 11:22:14 Linux

本文来自我的公众号:程序员江湖。江湖凶险,你我同行。Java开发工程师一般负责后端开发。当然,也有专攻JavaWeb的工程师。但是随着前后端分离,越来越多的Java工程师需要往大后端方向发展。今天我们就来介绍一下Java后端开发者的书单。首先要感谢江南白衣后台超大的书架,让我在初学阶段读到了很多好书,至今印象深刻。两年的学习期间看了很多书,其中有《XXX入门到精通》、《XXX王者归来》、《XXX攻略》等。虽然这类书确实有很多问题,但作为一个非学生,还是看的津津有味。直到看到了一些优秀的书籍和白衣??哥的书架,我才渐渐体会到阅读一些优秀书籍的好处。那么今天我们就从这些优质书籍中挑选出一些优秀的书籍推荐给大家。当然,我没有时间阅读其中的一些内容。接下来我们根据后端技术栈各部分的内容来推荐书籍。Network1TCP/IPVolume1其实一开始我不是很了解。可能是当时太水了,不过大牛一般推荐。2计算机网络:自上而下本书涵盖了应用层到物理层。我觉得这样学起来比较容易。推荐小白看这本书。3图解HTTP和图解TCP/IP这两本书相比前面两本厚厚的书,更加亲民。新手可以买,还是很适合入门的。4计算机网络没错,就是这本教材,作为一个非科普玩家,如果你自己看这本书,你会想死,看完就忘了。操作系统1深入理解计算机系统本书并不是严格意义上的操作系统书籍,而是一系列计算机基础知识和操作系统,可以解决你对计算机的很多疑惑,对操作系统有一定的了解。其实这本书还是很厚的,有一定的难度。建议有一定基础后阅读。2其实我没看过现代操作系统这本书。对操作系统的讲解比较详细,但也是一本大家推崇的书。还是那句话,很厚,仔细看。3Linux内核的设计与实现在你对操作系统有了一定的了解后,本书将为你打开学习Linux内核的大门。当然,在此之前你必须要有一定的c语言开发能力和对linux的了解。不管怎样,我还没准备好读这本书。4这两本Unix网络编程书籍的厚度绝对会让你感到绝望。其实就是解释了Unix内核是如何实现网络通信的,涉及到大量的网络和操作系统知识,必须熟悉c语言。总之,这是一本被奉为网络编程之神的书,但我只是拿来给初学者压泡面。网上有很多博客引用了本书的内容,大家可以去看看。数据结构与算法说实话,由于我不是专业的,算法基础比较差。数据结构是考研的时候从天勤考研指导学习的。学习算法也很坎坷,难度很大。或者分享几本比较靠谱的书。1算法简介如果你问我是不是认真的,我只是说说而已。自从我买了这本书后,我还没有读过这本书。2DataStructuresandAlgorithms(JavaEdition)这本书对初学者比较友好,当然学习Java的人应该看看这本书。3AlgorithmDiagram,AhaAlgorithm这两本书非常适合学习算法的入门。前者主要以图的形式涵盖了大部分常用的算法,包括dp、greedy等,可以作为一本入门书,而后者涵盖了很多常用的算法。都已经实现了,包括search、graph、tree等一些比较高级的常用算法。4剑指offer这本书还是很推荐的。毕竟是面试题中经常提到的一本书。当然,最好结合前面的基础铺垫来阅读。可能收获更多。这本书一般是面试前嚼的。5LeetCode不是书,而是题库,算法,毕竟刷题提高熟练度还是很有必要的。JavaBasics1JavaProgrammingThoughts这本书也被称为Java神书的存在,但是对新手来说并不友好。适合有一定基础的阅读。当然,你必须有选择地阅读它。我当时只读了1/32Java核心技术卷1。这本书比较适合入门。当然,这种厚厚的书,读起来难度还是很大的,不过比上面那本简单多了。Step1深入理解JVM虚拟机本书是Java开发者必读的书籍。很多jvm文章都摘录了本书的内容。JVM是Java虚拟机,它赋予了Java程序生命,好好看看吧,我自己看了三遍。2JavaConcurrentProgrammingPractice这本书是JavaConcurrentPackage的作者写的,所以很权威,但是比较晦涩。我是云里雾里看的,大家可以根据自己的需要选择。3TheArtofJavaConcurrentProgramming本书是国内作者编写的Java并发书籍。比上面那本更简单易懂,适合作为并发编程的入门书籍。理解。4EffectiveJava堪称Java编程思想的神书。主要讲Java的一些优化技术和规范。没有一定开发经验的人会觉得这本书枯燥难懂。因此,让我们把它放在一边。5JavaPerformanceTuningGuide说到JVM调优,你脑子里可能会有一大堆面试题。这本书比较权威的讲解了Java性能调优的方法,但是我还没怎么看。好好看看。6Netty权威指南Netty是一个基于NIO开发的网络编程框架,使用Java代码编程,其实本书也可以放在网络或JavaWeb部分。但是,NIO是JDK的一部分,必须掌握。对于Netty,如果你有精力学习,也可以看看。JavaWeb0深入JavaWeb技术内幕这本书是JavaWeb的巨著,涵盖了JavaWeb开发的绝大部分知识点,但是显然不可能在一本书中详尽讲解所有的细节,但作为Java的入门或进阶书籍Web还是挺好看的。1Tomcat的工作原理JavaWeb是Tomcat的一个非常重要的组成部分,作为一个应用服务器,Tomcat使用Java开发,其源代码和架构设计都是经典的。这是一本讲解Tomcat基本原理的书。通过分析源码很好的解释了Tomcat的内部结构和运行机制,但是需要一定的基础才能看懂。这本书我还没看,以后再看。2Tomcat架构分析和上面的书差不多。主要讲解Tomcat的原理和架构。看懂本书,前提是你对Java基础、NIO和设计模式有所了解。我还没有读过这本书。3Spring实战本书适合作为Spring的入门书籍。它解释了Spring的概念以及如何更清楚地使用它。也介绍了SpringMVC的部分内容。Spring框架比较实用,就按照书上的内容来吧。4深入剖析Spring源码在学习了Spring的基础知识后,可以花点时间阅读本书的源码。这本书对新手不是很友好,主要是Spring的代码结构比较复杂。也可以阅读一些Blog来完成对源码的学习。5SpringMVC学习指南本书是一本内容详尽、讲解清晰的SpringMVC教程。非常适合想要使用SpringMVC开发基于Java的Web应用的Web开发者和读者。但由于发布时间较早,不适合当前版本。6Maven实战Maven是JavaWeb开发中不可或缺的一部分。如果想全面了解它的实现原理,可以阅读本书。数据库0数据库原理数据库原理应该作为教科书使用。这本书可以作为数据库的介绍。毕竟不是专门做DB的。看厚书用处不大。本书解释了数据库的所有基本概念。1你必须知道的sql本书主要讲解如何编写sql语句。毕竟数据库最重要的还是熟练使用sql语句。当然,本书也可以作为参考书。2深入浅出MySQL本书适合作为MySQL的学习书籍。当你对MySQL有一定的使用经验后,就可以阅读了。本书从数据库基础、开发、优化、管理维护、架构五个方面介绍了MySQL。详细的介绍不是很深,但是足够我们使用了。这本书我只看了一部分。3MySQL技术内幕:innodb存储引擎看了上面的书,我对MySQL还是比较熟悉的,但是对于面试经常考的inn??odb引擎,我还是推荐这本书,里面专门讲解了innodb存储的相关内容引擎。没仔细看,但是内容足够你学好innodb了。4High-performanceMysql这本书可以说是很厚了,比较适合DBA阅读。太详细了,不便之处敬请谅解。5Redis实战同MySQL。学习Redis的第一步最好先实践一下。通过本书,您可以更好地掌握Redis的使用及相关数据结构。6Redis设计与实现本书全面完整地讲解了Redis的内部运行机制,介绍了Redis大部分单机功能和所有多机功能的实现原理。这本书把Redis的基本原理解释的很清楚,包括数据结构、持久化、集群等,有空的时候应该看看。分布式0分布式Java应用本书由淘宝大牛编写。主要讲的是使用rpc构建分布式Java应用。讲了很多基础的东西,可以作为入门书。我没看过,所以没看过。1大型网站技术架构这篇基于淘宝的技术指南还是非常值得点赞的。可以说是对现代大型网站架构的简单概括。内容涵盖方方面面。主要讲概念。建筑专业的学生开始。看完你会觉得后台技术好深奥。2大型分布式网站架构的设计与实践这本书比上面的书更实用,主要讲了分布式架构的一些解决方案,但是如果你没有接触过相关场景,可能读起来云里雾里。3分布式服务框架原理与实践上面的书讲的是分布式架构的实践,而本书更侧重于分布式服务的原理和相应的实践,很好地描述了分布式服务的基本概念。相关技术、解决方案等,对于想学习分布式服务框架的同学来说是很好的书籍。4大型网站系统与Java中间件开发实践话说这几本书的名字真是够长的。本书也是阿里系出品。主要讲大型网站系统和使用的相关中间件。毕竟阿里是中间件大佬,所以网站系统应用了很多中间件。想要学习这门技术的同学可以看看。5从Paxos到Zookeeper的分布式一致性原理与实践说到分布式系统,我们需要了解它的原理、相关理论和技术。本书也从这个角度讲解了分布式系统的一些常用概念,并带出了第一本分布式小哥zookeeper,可以说是想学习分布式技术的同学必读的一本书。6大规模分布式存储系统本书由阿里巴巴Oceanbase核心开发者编写。讲了分布式存储相关的原理和解决方案。书不是很厚。如果你想做存储,你可以读一下。云计算云计算的内容主要是我在实习阶段接触到的。如果只是应用开发的方向,看不懂也无所谓。主要看个人兴趣。1OpenStack设计与实现OpenStack是一个基于KVM技术的私有云生态系统。这本书很好的解释了OpenStack的一些基本原理,包括各个组件的设计和实现,比另一本书更加简单易懂《OpenStack王者归来》。当然,前提是你对Linux内核和网络有所了解。2docker介绍与实践Docker是现在应用部署的主流方案,了解它很有必要。这本书足以让你作为docker使用的入门书籍。3Kubenetes权威指南Kubenetes是docker集群解决方案和微服务解决方案,因此本书涵盖的内容较多,需要有网络、操作系统、docker相关基础。看完这本书,可以说是看的头晕目眩了。大数据与云计算相同。大数据的内容,Java后端技术栈要求不高,但也能为你加分,让你获得一点大数据开发的职位。为什么不为。1大数据技术原理与应用作为一本大数据教材,厦门大学教授写的这本书还是很不错的。它从最基本的原理来讲解Hadoop生态系统,对各个组件的原理进行讲解。更清晰,还增加了spark、storm等内容。可以说是一本非常好的大数据入门书籍。2Hadoop实战这本书很厚,买的时候大概看了一遍,一头雾水。所以建议先看上面的书,再看更高级的书,不然可能会浪费时间。3TheAuthoritativeGuidetoHadoop本书主要对Hadoop生态系统中的组件进行了详细的讲解。它有点太详细了。如果不是做大数据的可以跳过。其他:1Git权威指南Git现在是大公司的主流代码协作工具。如果你想了解它的底层原理,你可以阅读这本书。2重构本书主要介绍代码重构的一些指导思想和最佳实践。有重构需求的同学可以看看。3-n其他方面的书太多了,比如软件工程,测试,Linux,还有一些程序员自我提升的书,就不一一列举了,因为这部分的内容可能不会被包含在Java后端技术堆栈中。*微信公众号【程序员江湖】作者黄小邪,斜杠青年,985高手,阿里研发工程师,2018秋招,拿到BAT头条、网易、滴滴等8大公司offer,等个人擅长领域:自学编程,技术类校园招聘,软件工程考研(关注公众号回复“资讯”领取3T免费技术学习资源)