【1024程序员节福利】最全面的Java后端零基础学习路线(附带教程链接)

路 飞
2021年度博客之星Top8
博客专家认证
2021-10-27 19:57:08

大家好,我是路飞!Java后端从入坑到放弃的学习路线来啦!

阅读文章之前,欢迎大家加入抱团学习社区: 抱团内卷,冲大厂 https://bbs.csdn.net/forums/caomaolufei ,以及我们的自学大家庭:941088436

1、JavaSE 基础知识

JavaSE 基础知识,是大部分入坑Java的小白们必须经历的一个阶段。这里我建议那些学习时间充裕的大一的学弟们,可以参考一下尚硅谷、黑马程序员的网课,他们的课程课时较长,课程比较细致,此外,最好结合相关书籍去系统性学习;而对于大二、大三(Java基础差,之前没有好好学习,或者非科班出身)的学弟们,由于学习时间有限,即将面临实习、校招,这里我建议可以看狂神老师的Java基础课程,课时较短,比较通俗容易理解,能够帮大家快速补上Java基础知识的短板。



:非常建议0基础的小伙伴,可以先看一看狂神老师的JavaSE课程,快速入门一下,然后回头看书复习一遍,可以学得很扎实哦!

2、JavaWeb 阶段

2.1 Web 基础——前端知识(HTML、CSS、JavaScript)

作为一个后端开发者,不仅要精通后端方向的技术栈,前端方向的一些基础知识也是要了解一下的!同样的,对于大三、大四急需投递实习或者校招的同学,可以选择看狂神老师的快速入门版本;而对于大一、大二的同学,学习时间充裕的情况下,尽量以硅谷和传智的完整教程为主!

狂神老师快速入门版:

尚硅谷、黑马程序员完整版:

2.2 Web基础——前端知识(jQuery、Ajax、Vue、UI框架)

对于jQuery、Ajax的掌握程度,大家会使用即可,并不需要去看一些很细致很完整的教程,因为后期自己在做项目的时候,这部分东西写着写着就熟悉了。而对于Vue,我是很建议大家花时间细致去学一学的(如果学习时间充裕的话)!至于UI框架的话,其实会搬运组件即可,知道一些栅格布局知识等等就可以啦!

快速入门版:

:前端方向的学习内容远远不止这些,但是对于后端方向的校招生,会使用上面的一些内容即可,毕竟术业有专攻,各有各的侧重点。如果对前端方向感兴趣的小伙伴们,可以私信或者留言给我,有时间也可以给大家出一篇前端学习路线文章。

前端这些知识,不要求每一位同学深入掌握,所以就不推荐书籍了,直接看视频教程即可!

2.3 Web基础——MySQL数据库

数据库的种类很多,对于校招生,我们把侧重点放在MySQL数据库上就行啦,这一小节只是入门学习MySQL阶段,后面小节会继续总结MySQL进阶学习教程。

视频教程:



:MySQL基础入门阶段,可以先以网课为主,先学会用,之后深入学习MySQL阶段再看书去追求深入学习!

2.4 Web基础——Servlet、JSP、JDBC

JavaWeb学习阶段要重视Servlet、JDBC、 Tomcat这部分的学习,而JSP标签语法可以作为次要(目前很少有公司继续使用JSP作为页面渲染了),这里直接推荐狂神老师的课程,硅谷和黑马程序员也有类似的课程,但是课时比较长。我认为应该先快速入门一下,然后做综合案例沉淀即可!

注:对于大三学生即将面临实习、校招,如果时间不充裕的情况下,可以跳过JavaWeb阶段的综合案例练习,直接看框架阶段的项目练习教程,而大一大二学生,学习时间充裕的话,尽量学习完Web阶段后,就做一下上面的几个小案例练习一下(任选一个即可)。

3、后端框架阶段

框架阶段的学习是整个Java阶段技术体系最繁琐最重要的阶段,其中主要以SSM:Spring(Java后端的核心灵魂)、Spring MVC、Mybatis为基础,在SSM三大框架掌握的基础之上,可以继续学习Spring Boot(以后吃饭的工具)等进一步封装Spring的框架。

框架阶段学习很重要,但是对于目前还是学生的大家,千万不要以堆积框架为方向去准备校招求职面试,学几个重要的框架即可,切勿把时间都放在堆积框架而忽略基础夯实!

个人建议:这一阶段在学习时,一定要反复练习使用,多做一些项目案例,提高熟练度!

3.1 SSM框架学习

SSM三大框架学习:

扩展:

如果时间充裕,扩展学习一些常见的框架,对大家做项目案例还是很有帮助的。

3.2 项目实战

SpringBoot项目实战教程(学以致用,巩固沉淀):

3.3 推荐书籍

推荐书籍:(框架这些东西,需要大家先跟着网课学会熟练使用,然后再追求读书深入学习!)




4、中间件阶段

中间件学习阶段,目前对于校招生来说,主要学习一下ElasticSearch、Redis、MQ(Kafka/RabbitMQ/RocketMQ任选其一)即可。 其中Redis不光要学会使用,更重要的是需要去了解一些其原理层面的知识。

:中间件技术的学习,对校招学生不过多要求底层原理深度,因此主要是锻炼大家的使用能力,学习任何一项技术,都需要先会使用,然后再追究其原理!

5、微服务阶段

微服务阶段的学习,需要大家掌握各种各样的组件,目前常见的开源的微服务一站式解决方案有:Spring Cloud、Spring Cloud Alibaba、Dubbo等等。

由于目前各个互联网大厂的微服务解决方案都有各自的自研体系,因此,这一学习阶段主要是入门了解,不需要花过多时间在一阶段上面,但是要搞懂到底什么是微服务,它比传统的单体应用开发优势在哪里?微服务不同模块之间的调用方式是怎样实现的?

项目案例推荐:

微服务这部分的项目练习,我觉得主要是增加大家对微服务开发流程的了解,选一个项目练习就够了,这几个项目路飞都跟着做过,有些地方其实都是千篇一律的模子,不建议把这些项目放到简历里面,更建议大家把自己做的项目或者阅读的开源项目作为自己的简历项目!

6、计算机基础学科知识(重中之重的基础)

大厂校招面试中,计算机基础学科知识的考查是非常常见的,可以不夸张的说,大厂校招面试,百分之九十以上的概率都会被问到计算机基础学科相关的问题,例如计算机网络的HTTP协议,操作系统IO模型等等。

培训机构的课程往往是不会花时间在这些基础学科讲解上面的,因为培训班的目的是为了让学生找一份程序员的工作,相比于花大精力在计算机基础学科教学,他们更愿意花时间在快速突击的框架课程上面(小公司更在意你能不能上手干活,而大厂更在意你的培养潜力)。

对于计算机基础学科的学习,我建议大家尽量回归书本学习,高校中的应用框架教程可能没有培训班讲的那么前沿,但是高校科班的计算机基础学科课程还是很值得上课跟着老师认真听讲的。

计算机网络



操作系统

计算机组成原理

计组在校招中考察的比较少,所以对于不考研的同学,了解一下即可。

数据结构与算法

7、深入学习MySQL数据库

MySQL数据库是目前国内互联网企业最常用的关系型数据库之一,目前大厂校招面试中,MySQL数据库除了考察一些SQL场景问题,还会考察校招生对索引原理、数据库引擎、锁、隔离级别、日志等方面的掌握程度。

对于深入学习MySQL数据库,回归书本是比较好的一种方式,这里也简单给大家推荐一些教程,但是视频教程都只是某一个侧重部分,没有权威的书籍全面。



8、深入学习JVM

9、算法(持续刷题)

算法虽然放在第9这个位置,但是它的重要程度应该是最高的,建议小伙伴,学完语言的语法知识(Java或者C++均可),就开始尝试去接触数据结构与算法知识,然后累计刷题!

算法能力是需要日积月累,短时间无法快速突击上来的,坚持leetcode每日一题,每天进步亿点点!

下面是一些算法刷题网站:

:刷题没有捷径,只有量变引起质变的一个过程。

10、开源项目

10.1 RuoYi

  • 若依:RuoYi是一个后台管理系统,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf)主要目的让开发者注重专注业务,降低技术难度,从而节省人力成本,缩短项目周期,提高软件安全质量。
  • 项目演示地址: http://demo.ruoyi.vip/login ,账号:admin、密码:admin123

功能展示:

该项目有多种不同版本,可以分为前后端一体版本、前后端分离版本、微服务版本,大家可以根据自己的学习情况和技术栈广度自行选择。

10.2 EL-Admin

  • EL-Admin:一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue、Element-UI 的前后端分离的后台管理系统。
  • 项目演示地址: https://el-admin.xin/ ,账号:admin、密码:123456

功能展示:

10.3 蘑菇博客

  • 蘑菇博客:一个基于微服务架构的前后端分离博客系统Web 端使用 Vue + ElementUi , 移动端使用 uniappColorUI。后端使用 SpringCloud + SpringBoot + Mybatis-plus进行开发,使用 Jwt + SpringSecurity 做登录验证和权限校验,使用 ElasticSearchSolr 作为全文检索服务,使用 Github Actions完成博客的持续集成,使用 ElasticStack 收集博客日志,文件支持上传本地七牛云Minio
  • 项目案例演示:

博客前端地址: http://demoweb.moguit.cn/#/

博客后端地址: http://demoadmin.moguit.cn/ ,账号:mogu2021、密码:mogu2021

10.4 newbee-mall

  • newbee-mall:是一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,基于 Spring Boot 2.X 及相关技术栈开发。 前台商城系统包含首页门户、商品分类、新品上线、首页轮播、商品推荐、商品搜索、商品展示、购物车、订单结算、订单流程、个人订单管理、会员中心、帮助中心等模块。 后台管理系统包含数据面板、轮播图管理、商品管理、订单管理、会员管理、分类管理、设置等模块。
  • 演示地址: http://mall.newbee.ltd/?from=github

10.5 SpringBoot-ElasticSearch

  • SpringBoot-ElasticSearch:基于Springboot2.1.1+elasticsearch6.5.3搭建的企业级搜索平台,支持PB级数据(需要elasticsearch分布式部署),目前已经支持中文分词,检索关键词高亮操作。
  • Gitee地址: https://gitee.com/11230595/springboot-elasticsearch
  • 演示截图:

:本篇文章只给大家推荐了5个开源项目,这些项目都是在Gitee、GitHub上的星标项目,大家可以自己去搜集一些自己感兴趣的项目,自己一个人或者几个人一起去读一读代码,去吃透项目的业务逻辑、功能模块。看开源项目非常耗费时间,但是大家花时间去掌握之后,会比看视频做的项目写在简历里更有价值。

12、JDK源码

看源码,我就不再推荐视频教程了,既然已经到了阅读源码阶段了,大家多少都已经对Java这门语言有足够的熟悉程度了,我认为最高效的学源码方式就是看博客、看书,自己搭建源码阅读环境,一步一步的去debug。

对于初次接触JDK源码的同学,可以试着从简单的部分学起,比如java.lang包下的 Object、String、StringBuilder、StringBuffer等等,以及java.util包下的简单集合ArrayList、LinkedList、Hash Map等等,然后逐步去看current包(JUC)下的源码等等。

这里给大家推荐一下: 彤哥源码 https://gitee.com/alan-tang-tt/yuan/tree/master/ ,他的文章讲解的非常细致。

13、深入学习Spring

Spring源码非常庞大,哪些网上吹自己面试时候能手写Spring源码的,其实都是阉割版,真正的Spring源码体系是非常庞大的,就算照着源码抄,面试环节的一两个小时也根本抄不完!

对于校招生面试,我们不需要把《Spring源码深度解析》这本书的十几个章节都搞懂,只需要重点去看IOC容器、AOP、Bean加载等几个核心模块的源码即可。

  • 推荐书籍:《Spring源码深度解析》yyds的一本书!

14、设计模式

23种设计模式,我们不需要全部掌握,也很难全部掌握,只需要会几种面试常考的设计模式即可。

校招面试,常考设计模式有:工厂模式、单例模式、代理模式、策略模式、适配器模式、模板模式等等。

15、深入学习Netty


16、Linux、Docker

Linux、Docker这一学习阶段,知道一些常见命令和一些基本操作即可。

17、Git(会用即可)

Git会使用即可,主要还是动手操作,命令行模式也好,IDEA可视化操作方式也好,自己知道怎么用就够了,平时我自己也是用IDEA操作居多。

18、面试题和八股文

Java后端校招面试,不光要掌握一些技术栈和项目经历,背八股文面试题也是必须的。这里主要给大家推荐以下几个刷八股文面试题的网址:

18.1 JavaGuide

18.2 牛客网

牛客网有很多大厂面经,都是一些大佬们参加校招面试上岸大厂后,对自己的面试经历进行复盘总结,他们会把一些自己面试中遇到的问题写成帖子分享出来(他们只总结面试问题,没有给出答案),我们要做的就是总结这些经常在面试环节出现的问题,自己去搜集答案,然后整理起来,尤其是对于哪些自己不会的问题,要反复研究反复理解。

18.3 LeetCode

LeetCode: https://leetcode-cn.com/leetbook/


推荐书籍汇总

微信公众号:《兴趣使然的草帽路飞》回复 002 获取学习路线博客MD版本、以及文章推荐的电子书

最后,希望每一位普通本科出身,正在埋头自学的小伙伴,要对自己的努力有足够的信心!祝一键三连的大家前程似锦,offer连连!

...全文
326 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

411

社区成员

发帖
与我相关
我的任务
社区描述
CSDN Blog 官方博客
社区管理员
  • CSDN官方博客
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

本社区是CSDN官方博客社区,在这里您可以:

  • 给CSDN提建议
  • 举报抄袭文章
  • 推荐自己的文章

等等......

但是这里禁止打广告哦,还请遵守社区规则

 

试试用AI创作助手写篇文章吧