如何学好java程序设计这门课

主要概括


  • 学习路线及方法
  • 通过优秀的 github 学习库学习
  • Java工程师必看书籍

学习路线以及方法推荐

对于学习路线的话,我说一条我比较推荐的,我相信照着这条学习路线来你的学习效率会非常高。

  1. 掌握 Java 基础知识:可以看《Think in Java》、《Java 核心技术卷1》、《Head First Java》这几本书,一定不要忽略书籍,书籍的阅读过程会变成一种思考过程,能够锻炼理解力和定力,当然你也可以边看视频边看书学习(推荐黑马或者尚硅谷的视频)。记住初学者一定要跟着视频一起写,哪怕不懂也要写,只有写了记录才能总结,最好代码分章节提交到 github。
  2. 掌握多线程的简单实用(推荐《Java并发编程之美》)。
  3. 想进入高级岗位,就一定要持续的提升自己,我推荐在学习完Java基础或者多线程之后,就开始每天抽出一点时间来学习算法和数据结构。为了提高自己的编程能力,你也可以坚持刷Leetcode,这是一个艰难的过程,但是会让自己更加完美。
  4. 学习前端基础(HTML、CSS、Javascript),当然BootStrap、VUE、react、angular等等前端框架你也可以了解一下,如果不感兴趣建议放弃,因为人的精力有限,需要放到自己更喜欢的方向。
  5. 学习MySQL 的基本使用,基本的增删改查,SQL命令,索引、存储过程,而且最好看看mysq 原理,这个很重要,只有知道了底层原理比如 mysql 书籍存储结构,才能更好的理解索引,如何优化等。
  6. 建议学习J2ee框架之前可以提前花半天时间学习一下Maven的使用。(到处找Jar包,下载Jar包是真的麻烦费事,使用Maven可以为你省很多事情)
  7. 学习Struts2(可不用学)、Spring、SpringMVC、Hibernate、Mybatis 等框架的使用,(可选)熟悉 Spring 原理(大厂面试必备),然后很有必要学习一下SpringBoot。我也遇到很多公司对于应届生直接上手SpringBoot,不过我还是推荐你把Spring、SpringMVC好好学一下。
  8. 学习Linux的基本使用(常见命令、基本概念)
  9. 学习Dubbo、Zookeeper、常见的消息队列(比如ActiveMq、RabbitMQ)的使用。
  10. 可以学习一下NIO和Netty,这样简历上也可以多点东西。

推荐java 学习仓库

https://github.com/Snailclimb/JavaGuide

这个仓库现在 star 78.3K ,涵盖了非常丰富的 java 知识体系,可以不用一下子全看,从基础的开始,随着自己的水平不断提升,经验更加丰富以后,可以接触分布式、JVM、算法之类的。

但是同时,还是要有自己的学习笔记。不断的整理查漏补缺。这个习惯非常有用,能够让自己不断提升的同时,有其他意外惊喜,比如交到同行的朋友,这些都是隐形资源。

书籍推荐

  • 《Head First Java》 : 可以说是我的 Java 启蒙书籍了,特别适合新手读当然也适合我们用来温故 Java 知识点。
  • 《Java 核心技术卷 1+卷 2》: 很棒的两本书,建议有点 Java 基础之后再读,介绍的还是比较深入的,非常推荐。这两本书我一般也会用来巩固知识点或者当做工具书参考,是两本适合放在自己身边的好书。
  • 《Java 编程思想 (第 4 版)》(推荐,豆瓣评分 9.1,3.2K+人评价):大部分人称之为Java领域的圣经,但我不推荐初学者阅读,有点劝退的味道。稍微有点基础后阅读更好。
  • 《JAVA 网络编程 第 4 版》: 可以系统的学习一下网络的一些概念以及网络编程在 Java 中的使用。
  • 《Java性能权威指南》:O'Reilly 家族书,性能调优的入门书,我个人觉得性能调优是每个 Java 从业者必备知识,这本书的缺点就是太老了,但是这本书可以作为一个实战书,尤其是 JVM 调优!不适合初学者。前置书籍:《深入理解 Java 虚拟机》

并发

  • 《Java 并发编程之美》 :我觉得这本书还是非常适合我们用来学习 Java 多线程的。这本书的讲解非常通俗易懂,作者从并发编程基础到实战都是信手拈来。 另外,这本书的作者加多自身也会经常在网上发布各种技术文章。我觉得这本书也是加多大佬这么多年在多线程领域的沉淀所得的结果吧!他书中的内容基本都是结合代码讲解,非常有说服力!
  • 《实战 Java 高并发程序设计》: 这个是我第二本要推荐的书籍,比较适合作为多线程入门/进阶书籍来看。这本书内容同样是理论结合实战,对于每个知识点的讲解也比较通俗易懂,整体结构也比较清。
  • 《深入浅出 Java 多线程》:这本书是几位大厂(如阿里)的大佬开源的,Github 地址:https://github.com/RedSpider1/concurrent几位作者为了写好《深入浅出 Java 多线程》这本书阅读了大量的 Java 多线程方面的书籍和博客,然后再加上他们的经验总结、Demo 实例、源码解析,最终才形成了这本书。这本书的质量也是非常过硬!给作者们点个赞!这本书有统一的排版规则和语言风格、清晰的表达方式和逻辑。并且每篇文章初稿写完后,作者们就会互相审校,合并到主分支时所有成员会再次审校,最后再通篇修订了三遍。
  • 《Java 并发编程的艺术》 :这本书不是很适合作为 Java 多线程入门书籍,需要具备一定的 JVM 基础,有些东西讲的还是挺深入的。另外,就我自己阅读这本书的感觉来说,我觉得这本书的章节规划有点杂乱,但是,具体到某个知识点又很棒!这可能也和这本书由三名作者共同编写完成有关系吧!
  • ......

JVM

  • 《深入理解 Java 虚拟机(第 3 版)》):必读!必读!必读!神书,建议多刷几篇。里面不光有丰富地JVM理论知识,还有JVM实战案例!必读!
  • 《实战 JAVA 虚拟机》:作为入门的了解 Java 虚拟机的知识还是不错的。

Java8 新特性

  • 《Java 8 实战》:面向 Java 8 的技能升级,包括 Lambdas、流和函数式编程特性。实战系列的一贯风格让自己快速上手应用起来。Java 8 支持的 Lambda 是精简表达在语法上提供的支持。Java 8 提供了 Stream,学习和使用可以建立流式编程的认知。
  • 《Java 8 编程参考官方教程》:建议当做工具书来用!哪里不会翻哪里!

代码优化

  • 《重构_改善既有代码的设计》:豆瓣 9.1 分,重构书籍的开山鼻祖。
  • 《Effective java 》:本书介绍了在 Java 编程中很多极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。这篇文章能够非常实际地帮助你写出更加清晰、健壮和高效的代码。本书中的每条规则都以简短、独立的小文章形式出现,并通过例子代码加以进一步说明。
  • 《代码整洁之道》:虽然是用 Java 语言作为例子,全篇都是在阐述 Java 面向对象的思想,但是其中大部分内容其它语言也能应用到。
  • 阿里巴巴 Java 开发手册 :https://github.com/alibaba/p3c
  • Google Java 编程风格指南: http://www.hawstein.com/posts/google-java-style.html

网络

  • 《图解 HTTP》: 讲漫画一样的讲 HTTP,很有意思,不会觉得枯燥,大概也涵盖也 HTTP 常见的知识点。因为篇幅问题,内容可能不太全面。不过,如果不是专门做网络方向研究的小伙伴想研究 HTTP 相关知识的话,读这本书的话应该来说就差不多了。
  • 《HTTP 权威指南》:如果要全面了解 HTTP 非此书不可!

操作系统

  • 《鸟哥的 Linux 私房菜》:本书是最具知名度的 Linux 入门书《鸟哥的 Linux 私房菜基础学习篇》的最新版,全面而详细地介绍了 Linux 操作系统。

数据结构

  • 《大话数据结构》:入门类型的书籍,读起来比较浅显易懂,适合没有数据结构基础或者说数据结构没学好的小伙伴用来入门数据结构。

算法入门

  • 《我的第一本算法书》 (豆瓣评分 7.1,0.2K+人评价) 一本不那么“专业”的算法书籍。和下面两本推荐的算法书籍都是比较通俗易懂,“不那么深入”的算法书籍。我个人非常推荐,配图和讲解都非常不错!
  • 《算法图解》(豆瓣评分 8.4,1.5K+人评价) :入门类型的书籍,读起来比较浅显易懂,非常适合没有算法基础或者说算法没学好的小伙伴用来入门。示例丰富,图文并茂,以让人容易理解的方式阐释了算法.读起来比较快,内容不枯燥!
  • 《啊哈!算法》 (豆瓣评分 7.7,0.5K+人评价) :和《算法图解》类似的算法趣味入门书籍。

经典

下面这些书籍都是经典中的经典,但是阅读起来难度也比较大,不做太多阐述,神书就完事了!推荐先看 《算法》,然后再选下面的书籍进行进一步阅读。不需要都看,找一本好好看或者找某本书的某一个章节知识点好好看。

  • 《算法 第四版》(豆瓣评分 9.3,0.4K+人评价): 我在大二的时候被我们的一个老师强烈安利过!自己也在当时购买了一本放在宿舍,到离开大学的时候自己大概看了一半多一点。因为内容实在太多了!另外,这本书还提供了详细的Java代码,非常适合学习 Java 的朋友来看,可以说是 Java 程序员的必备书籍之一了。再来介绍一下这本书籍吧!这本书籍算的上是算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。
  • 编程珠玑(豆瓣评分 9.1,2K+人评价) :经典名著,被无数读者强烈推荐的书籍,几乎是顶级程序员必看的书籍之一了。这本书的作者也非常厉害,Java之父 James Gosling 就是他的学生。很多人都说这本书不是教你具体的算法,而是教你一种编程的思考方式。这种思考方式不仅仅在编程领域适用,在其他同样适用。
  • 《算法设计手册》(豆瓣评分9.1 , 45人评价) :被 Teach Yourself Computer Science 强烈推荐的一本算法书籍。
  • 《算法导论》 (豆瓣评分 9.2,0.4K+人评价)
  • 《计算机程序设计艺术(第1卷)》(豆瓣评分 9.4,0.4K+人评价)

面试

  1. **《剑指Offer》(豆瓣评分 8.3,0.7K+人评价)**这本面试宝典上面涵盖了很多经典的算法面试题,如果你要准备大厂面试的话一定不要错过这本书。《剑指Offer》 对应的算法编程题部分的开源项目解析:CodingInterviews
  2. 程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版) (豆瓣评分 8.7,0.2K+人评价) :题目相比于《剑指 offer》 来说要难很多,题目涵盖面相比于《剑指 offer》也更加全面。全书一共有将近300道真实出现过的经典代码面试题。
  3. 编程之美(豆瓣评分 8.4,3K+人评价):这本书收集了约60道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。

数据库

MySQL:

  • 《高性能 MySQL》:这本书不用多说了把!MySQL 领域的经典之作,拥有广泛的影响力。不但适合数据库管理员(dba)阅读,也适合开发人员参考学习。不管是数据库新手还是专家,相信都能从本书有所收获。如果你的时间不够的话,第5章关于索引的内容和第6章关于查询的内容是必读的!
  • 《MySQL 技术内幕-InnoDB 存储引擎》(推荐,豆瓣评分 8.7):了解 InnoDB 存储引擎底层原理必备的一本书,比较深入。

Redis:

  • 《Redis 实战》:如果你想了解 Redis 的一些概念性知识的话,这本书真的非常不错。
  • 《Redis 设计与实现》:也还行吧!

系统设计设计模式

  • 《设计模式 : 可复用面向对象软件的基础》 :设计模式的经典!
  • 《Head First 设计模式(中文版)》 :相当赞的一本设计模式入门书籍。用实际的编程案例讲解算法设计中会遇到的各种问题和需求变更(对的,连需求变更都考虑到了!),并以此逐步推导出良好的设计模式解决办法。
  • 《大话设计模式》 :本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GOF(即《设计模式 : 可复用面向对象软件的基础》这本书)),但是不像《设计模式 : 可复用面向对象软件的基础》难懂。但是设计模式只看书是不够的,还是需要在实际项目中运用,在实战中体会。

常用框架Spring/SpringBoot

  • 《Spring 实战(第 4 版)》 :不建议当做入门书籍读,入门的话可以找点国人的书或者视频看。这本定位就相当于是关于 Spring 的新华字典,只有一些基本概念的介绍和示例,涵盖了 Spring 的各个方面,但都不够深入。就像作者在最后一页写的那样:“学习 Spring,这才刚刚开始”。
  • 《Spring源码深度解析 第2版》 :读Spring源码必备的一本书籍。市面上关于Spring源码分析的书籍太少了。
  • 《Spring 5高级编程(第5版)》 :推荐阅读,对于Spring5的新特性介绍的很好!不过内容比较多,可以作为工具书参考。
  • 《精通Spring4.x企业应用开发实战》 :通过实战讲解,比较适合作为Spring入门书籍来看。
  • 《Spring入门经典》 :适合入门,也有很多示例!
  • 《Spring Boot实战派》 :这本书使用的Spring Boot 2.0+的版本,还算比较新。整本书采用“知识点+实例”的形式编写。本书通过“58个基于知识的实例+2个综合性的项目”,深入地讲解Spring Boot的技术原理、知识点和具体应用;把晦涩难懂的理论用实例展现出来,使得读者对知识的理解变得非常容易,同时也立即学会如何使用它。说实话,我还是比较推荐这本书的。
  • 《Spring Boot编程思想(核心篇)》 :SpringBoot深入书,不适合初学者。书尤其的厚,这本书的缺点是书的很多知识点的讲解过于啰嗦和拖沓,优点是书中对SpringBoot内部原理讲解很清楚。

Netty

  • 《Netty进阶之路:跟着案例学Netty》 : 这本书的优点是有不少实际的案例的讲解,通过案例来学习是很不错的!
  • 《Netty 4.x 用户指南》 :《Netty 4.x 用户指南》中文翻译(包含了官方文档以及其他文章)。
  • 《Netty 入门与实战:仿写微信 IM 即时通讯系统》 :基于 Netty 框架实现 IM 核心系统,带你深入学习 Netty 网络编程核心知识
  • 《Netty 实战》 :可以作为工具书参考!

分布式

  • 《从 Paxos 到 Zookeeper》:简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了 Paxos 和 ZAB 协议。同时,本书深入介绍了分布式一致性问题的工业解决方案——ZooKeeper,并着重向读者展示这一分布式协调框架的使用方法、内部实现及运维技巧,旨在帮助读者全面了解 ZooKeeper,并更好地使用和运维 ZooKeeper。
  • 《RabbitMQ 实战指南》:《RabbitMQ 实战指南》从消息中间件的概念和 RabbitMQ 的历史切入,主要阐述 RabbitMQ 的安装、使用、配置、管理、运维、原理、扩展等方面的细节。如果你想浅尝 RabbitMQ 的使用,这本书是你最好的选择;如果你想深入 RabbitMQ 的原理,这本书也是你最好的选择;总之,如果你想玩转 RabbitMQ,这本书一定是最值得看的书之一
  • 《Spring Cloud 微服务实战》:从时下流行的微服务架构概念出发,详细介绍了 Spring Cloud 针对微服务架构中几大核心要素的解决方案和基础组件。对于各个组件的介绍,《Spring Cloud 微服务实战》主要以示例与源码结合的方式来帮助读者更好地理解这些组件的使用方法以及运行原理。同时,在介绍的过程中,还包含了作者在实践中所遇到的一些问题和解决思路,可供读者在实践中作为参考。

网站架构

  • 《大型网站技术架构:核心原理与案例分析+李智慧》:这本书我读过,基本不需要你有什么基础啊~读起来特别轻松,但是却可以学到很多东西,非常推荐了。另外我写过这本书的思维导图,关注我的微信公众号:“Java 面试通关手册”回复“大型网站技术架构”即可领取思维导图。
  • 《亿级流量网站架构核心技术》:一书总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看后能快速运用到实践项目中。
  • 《从零开始学架构(李运华)》 : 这本书对应的有一个极客时间的专栏—《从零开始学架构》,里面的很多内容都是这个专栏里面的,两者买其一就可以了。我看了很小一部分,内容挺全面的,是一本真正在讲如何做架构的书籍。
  • 《架构修炼之道——亿级网关、平台开放、分布式、微服务、容错等核心技术修炼实践》 :非常喜欢的一本书,对一些知识点比如消息队列、API网管讲解的很好,通俗易懂。

底层

  • 《深入剖析 Tomcat》:本书深入剖析 Tomcat 4 和 Tomcat 5 中的每个组件,并揭示其内部工作原理。通过学习本书,你将可以自行开发 Tomcat 组件,或者扩展已有的组件。 读完这本书,基本可以摆脱背诵面试题的尴尬。
  • 《深入理解 Nginx(第 2 版)》:作者讲的非常细致,注释都写的都很工整,对于 Nginx 的开发人员非常有帮助。优点是细致,缺点是过于细致,到处都是代码片段,缺少一些抽象。

java开发技术所运用的范围在逐渐扩大,由于java开发语言性能的安全性与较强的扩展性,被应用到其他编程领域,市场上相关java开发的岗位也在逐渐增多,同时,也有越来越多的小伙伴选择学习java开发技术知识。

学习java开发技术的方式有多种,小伙伴选择的学习方式不同,意味着最后所学习到的知识结构和学习结果不同。对于零基础小伙伴来讲,java培训无疑是比较靠谱的学习方式,那小伙伴在java培训班该如何学习java开发技术呢?

1.确定发展方向,以用为学

小伙伴在java培训班学习开发技术知识过程中,可以通过了解企业对java开发技术的需求来确定自己的发展方向,在发展方向所需求的开发技术知识方面,针对性学习,以用为学,提高学习效率。

2.基础知识积累很重要

小伙伴要以java培训班课程内容为主,学习java开发技术基础知识,在学习java基础知识过程中,小伙伴要课前认真预习,将本章节要学习的知识先预习一遍,把不会不懂的做上标记,在课堂上认真听讲,着重听讲预习时所不懂的技术知识,仔细记笔记,在课下要积极复习所学习的内容,并通过实践去深入了解。

3.项目实战案例练习的重要性

小伙伴在学习过程中,如果只学习基础知识,那无异于纸上谈兵,不能深刻的理解java开发技术知识。想要更好的学习java开发技术知识,在积累基础知识的同时,小伙伴还需要结合项目实战案例的练习来深入理解java开发技术,况且小伙伴在面试入职时,企业更看重的是小伙伴的实战经验。

最后,小伙伴想要学好java开发技术,除了以上几点内容,还需要端正自己的学习态度,养成良好的学习习惯,结合适合自己的学习方法,才能事半功倍。尚硅谷java培训是全日制线下面授教学,以理论实践相结合的教学方式传授java开发技术知识,培训班还有更多的java视频供小伙伴下载学习!

http://www.atguigu.com/download.shtml

本文来自用户投稿,不代表【51考个证】立场,如若转载,请注明出处:https://www.51kgz.cn/33586.html

发表评论

登录后才能评论

评论列表(0条)