开发永不过时!Java入行学习超详细路线不来看看吗?
虽然我们现在已经有了学习Java的充足信心,你也做好了学习Java的思想准备,但你现在的Java水平还没入门呢,那到底怎样才算入门呢?接下来壹哥再给你分析分析,到底学到什么程度,到底学完哪些Java知识,你才算真正的入门!壹哥会结合2022年最新的Java学习路线,给大家分析一个入门级的Java程序员应该具备的知识技能!
一. Java学习路线
Java作为后端开发中首选的编程语言,在与各种编程技术的综合对比中都是非常优秀的,当然对于初学者来说,也是具有一定的学习难度的,这也就是为什么学Java的女生比较少的一个原因。Java相对于其他编程技术来说,其内部包含的技术点可以说十分的庞大,初学者如果没有一个清晰的学习路线,很容易学着学着就学偏了,进而就可能会放弃继续学下去的勇气和毅力了。所以壹哥就给各位初学者整理出了Java中最核心的内容,只要你按照我整理的这个路线学下去,就可以保证你不会步入歧途。
刚才壹哥就说过,Java的知识点非常的庞杂,所以这里壹哥就把初学者所应该学习的内容,归为如下几大块:
计算机基础知识(如果你具备相关技能,可以略过);
JavaSE必备核心;
JavaWeb开发必备(前端基础+数据库基础);
Java经典框架及前后端分离开发模式;
微服务架构及实战;
性能调优专题;
基本运维技能;
面试准备
二. 计算机基础阶段
这一部分的内容主要包括计算机基础及网络知识、Linux和操作系统原理、软件项目管理、Oracle数据库系统等内容。有的小伙伴可能会问,我是来学习Java的,你让我学这些干嘛?其实壹哥列出的这些内容,是计算机专业的必学课程。而我们如果想要成为一个合格的程序员,虽然主要的工作内容是进行编码,但对计算机基础和网络、操作系统等内容,也需要有所了解。有些时候,在科班毕业的同事眼里很正常很普通的操作,你就是不知道,为什么?因为他脑子里比你有更多的知识储备!
当然这一部分内容,如果你本就掌握了,可以直接略过这一部分。另外这部分内容并不是我们学习的重点,和Java开发本身也没有直接的关联,你也可以放在以后去学习。如果你还是在校学生,时间比较多,壹哥还是希望你先对计算机基础内容能有一些基本的了解,这样不管你以后是学习Java,还是其他的编程语言,都对你大有裨益。
接下来壹哥简单给大家梳理一下这部分的学习重点。
1、计算机网络
学习这部分的内容,主要是能够对计算机的软硬件有基本的了解,掌握计算机网络分层机制和,理解网络信息传输的基本原理,掌握计算机网络常用协议,掌握路由管理和配置等。下面是这部分的主要内容:
1.1 计算机基础及网络概述
计算机软硬件基础;
计算机网络层次划分;
计算机网络OSI层次详解;
各网络层核心协议讲解;
计算机基本通信协议及原理;
1.2 集线器、交换机、虚拟局域网
集线器和交换机的区别;
交换机的自学习算法;
虚拟局域网VLAN;
1.3 IP、子网掩码、网络划分
IP详解;
子网掩码;
网络划分;
总线型以太网的特性;
IPv4-划分子网;
IP数据报的发送和转发流程。
1.4 TCP协议和HTTP协议
TCP协议;
HTTP协议;
2、 Linux和操作系统原理
作为一个后端程序员,我们编写好的项目,主要是部署运行在Linux系统中,所以Linux操作系统是我们必须要熟悉的。而Linux系统的使用,与Windows还是存在着较大差异的,所以作为一个合格的Java程序员,必须学习Linux操作系统的使用。而作为初学者,我们先会基本使用即可,以后随着工作经验的增加,Linux会越来越熟练。
对于Linux,我们需要掌握Linux操作系统的安装、基本常用命令、Linux环境下的软件安装和配置、了解操作系统的原理和组成。本部分核心内容如下:
2.1 Linux安装和基本使用
Linux介绍;
Linux安装(基于虚拟机安装);
Linux的目录结构;
Linux基本命令;
Linux管道命令
2.2 Linux用户组和权限系统
用户和用户组;
Linux权限系统;
Shell基本语法;
Shell条件分支;
Shell调用系统命令
2.3 Linux系统下软件安装
Linux系统下的软件安装;
配置Java开发环境;
2.4 操作系统简介
操作系统概述;
操作系统启动;
操作系统接口;
CPU管理;
进程和线程;
内存详解;
IO和显示器;
目录和文件系统
3、软件项目管理
我们进行项目开发时,不是天天坐在那里敲代码,很多时候是要进行项目的规划、分析、需求讨论和设计等各种项目管理的工作。有的童鞋可能会问,程序员还要有项目管理能力吗?当然,作为一个初级程序员,对项目管理能力要求并不是那么高,但我们多多少少还是要具备这方面的能力,而且面试时也经常会问我们一些关于项目开发流程等管理性的问题。另外我们以后也不是一辈子就做码农,有很多后端程序员会走向管理路线,所以项目管理的知识也应该是需要储备的。
我们在这一部分,需要了解软件项目的管理体系,具有一定的项目需求分析能力,具备基本的任务分解和时间评估、软件质量控制、了解项目进度管理等能力。
3.1 软件开发生命周期、软件开发模型
软件工程介绍;
软件项目开发生命周期;
软件开发模型(瀑布模型、快速原型模型);
3.2 软件项目管理介绍、需求管理
软件项目管理概述;
软件项目管理的意义;
软件项目管理的内容;
需求管理介绍;
需求管理要完成的任务;
需求分析与文档制定;
需求变更及需求跟踪;
需求管理技巧;
3.3 软件项目管理—进度管理
项目进度过程介绍;
项目任务分解;
项目进度管理工具简介
3.4 软件项目管理—成本及人员管理
软件成本估算;
软件规模估算;
工作量估算;
成本估算模型及方法;
人员规划;
人员组织与管理;
项目组的组织与管理
3.5 质量管理、能力成熟度模型CMM
软件质量的定义;
软件质量模型;
软件质量的属性;
软件质量管理内容QA/QP/QC;
质量标准—产品标准与过程标准;
软件项目版本控制(开发—测试—交付发布)
4、Oracle数据库系统
现在大多数企业开发时使用的关系型数据库,已经不再是Oracle数据库了,因为成本实在太高!即使之前的很多土豪企业,比如一些金融、银行、国企等公司,也在纷纷进行数据库的迁移。所以我们以后学习数据库的重点是MySQL,而不是Oracle!当然,因为两个数据库其实都遵循的是SQL规范,两者绝大多数的用法都是一样的,所以会了一个,另一个基本也就会了。你可以对Oracle适当了解一下,后面我们主要掌握MySQL即可。
我们可以先对数据库有个基本的了解,了解Oracle数据库管理和操作,掌握SQL语法和使用,掌握PL/SQL基本使用。
4.1 数据库简介
数据库介绍;
数据库相关术语;
Oracle数据库介绍;
Oracle数据库发展历程;
Oracle访问机制;
Oracle12c的下载与安装;
4.2 Oracle实例管理、管理工具使用
Oracle数据库及实例介绍;
创建及删除Oracle数据库实例;
Oracle监听程序介绍及配置;
Oracle管理工具介绍;
SQLPlus的基本使用;
PLSQL Developer的安装和使用;
本地网络服务介绍及配置
4.3 结构化查询语言—DDL、DML
SQL概述;
Oracle数据类型;
SQL语句之DDL介绍;
创建、修改、删除数据表;
字段约束-主键、唯一、非空、check等;
字段约束-数据表关联关系、外键关联;
SQL语句之DML介绍;
insert、update、delete
4.4 结构化查询语言—DQL
SQL语句之DQL介绍;
简单查询;
查询结果排序;
条件查询;
分组查询;
嵌套查询/子查询;
连接查询(内连接、左连接、右连接)
4.5 Oracle函数
Oracle内置函数介绍;
数值函数;
字符函数;
PL/SQL介绍;
存储过程、触发器、函数介绍
以上这些内容,与Java开发并没有太直接的关系,你如果有时间就可以进行基本的了解,但如果你想快点学习Java,也可以先把这部分内容略过,等以后有时间和精力再进行学习!接下来壹哥给大家分析Java自身的知识点!
三. JavaSE必备核心
虽然Java的开发分为好几个方向,但无论哪个方向,我们都要先学习Java的基本语法,而这部分基本语法就是所谓的JavaSE!所以JavaSE是我们学习Java开发时必学的第一步!
这部分的内容对初学者来说很多,也比较枯燥,但这部分的掌握情况,会决定你未来的发展高度,所以每个Java程序员都必须把这部分知识学扎实了,这就相当于Java大厦的地基!如果地基不牢,你的高度是不可能很高的!
我们在这部分,要搞清楚Java的发展规划、基本概念,清楚不同JDK的区别及选择;能够熟练地进行Java环境搭建;熟悉Java语言规范要求;对条件、分支、循环结构、方法/函数、数组、面向对象、接口、抽象类、常用类(Object/内部类/包装类/String)、集合、常用算法(排序和数据结构)、异常机制、多线程、I/O流、网络编程、JDK新特性、JVM内存模型、反射、注解、XML解析等要熟悉。因为这部分的内容很多,所以壹哥就把JavaSE的核心知识点用下图所示:
当然,JavaSE里的知识点并不是只有这些,我们作为初学者,把这些核心内容先搞定就可以了。其他一些不常用的内容,没必要花费很多时间和精力去搞。作为初学者很容易失去学习的兴趣和信心,我们把开发时最常用的东西先掌握了,之后在其他阶段还会对这部分的内容进行补充。
这里壹哥专门在B站上找了这套最适合初学者的学习视频:全网最新最全Java零基础入门视频教程1400集,学Java这一套就够了!https://www.bilibili.com/video/BV1gC4y1p7z2?
四. JavaWeb开发必备
当我们熟练掌握了JavaSE的知识之后,就可以去学习一些稍微不那么枯燥的内容,比如前端的知识。有的小伙伴会问,我们作为后端程序员,怎么还要学习HTML5这样的前端知识呢?壹哥这么跟你说吧,如果我们真要在开发团队里筛选出真正的全栈工程师,那么非Java后端程序员莫属!其实在很多的中小公司里,为了节省成本,有些小项目,都是Java后端程序员前后端一肩挑的。对于我们搞后端的程序员来说,只要前端界面不是特别的复杂,我们搞起来是很容易的。所以,这就要求我们Java程序员也要学习基本的前端知识点!
在这部分,你主要学习HTML5、CSS3、JavaScript、jQuery等基本语法,学习Bootstrap、LayUI等常用前端框架,学完这些前端内容之后,一些常见的后端页面我们就足够可以实现了。接下来要重点学习MySQL、JDBC、Servlet的内容、掌握JSP等Web知识。
当我们把这些Web和数据库操作的内容学习完,至此你就具备项目开发的能力了,这时你就可以尝试着找一些项目,比如一些后台管理系统项目进行练手。另外为了方便我们进行项目管理,你还应该重点学习Git这样的版本控制工具的使用、冲突解决等。这部分的核心内容,你可以参考下图:
学习到这里,恭喜你已经具备了基本的项目开发能力,稍微优秀的学生足以做出来一些管理类型的项目了!接下来请再接再厉,继续学习更先进的Java知识,你的功力会更深厚哦!
这里是壹哥给你挑选的Web阶段全套视频课程,也是免费的哦,B站就能看:
最新版JavaWeb全套教程,java web零基础入门到实战完整版
https://www.bilibili.com/video/BV11U4y1u7L3?
最新mysql全套教程,MySQL数据库基础+进阶教程,轻松入门MySQL数据库
https://www.bilibili.com/video/BV1qb4y1Y722?
五. Java经典框架及前后端分离开发模式
其实我们在真正进行项目开发时,很少会直接使用类似于JDBC这样的原生操作,因为虽然可以实现功能,但编码效率太低了,所以Java开发时主要是使用一些框架,提高开发效率和程序性能。
不同的公司使用的开发框架并不完全相同,有些公司会封装使用自己的框架,但对于Java开发来说,更多的是使用经典的Spring全家桶系列框架,比如Spring、SpringMVC、SpringBoot等,另外还有数据库操作框架Mybatis、Hibernate等,这都是我们Java程序员所应该具备的技能。
所以在这一部分,我们要学习Maven构建工具,熟悉Spring、SpringMVC框架,理解各种常见的设计模式,熟悉Spring的底层和源码;熟悉MyBatis的使用及其源码;学习常用的安全框架Shiro或者Spring Security,方便我们后面进行项目的权限管理。学习完这些经典框架之后,我们可以利用SSM+Shiro组合开发另一个Java项目,比如做一个电商项目。
因为现在SpringBoot日渐流行,尤其是在一线城市中,SpringBoot基本已是标配,所以我们需要对前后端分离模式进行掌握。在这个阶段可以学习一些前端的高级框架,比如Vue;然后熟悉SpringBoot及其底层,掌握RESTful风格、Swagger接口文档,设计出安全的URL接口;
为了将我们以后的前后端分离项目部署到真实的Linux服务器上,我们还要学习Linux操作系统,并且学习任务调度Quartz/Elastic-Job、阿里云OSS、FastDFS、Nginx负载均衡、CDN加速、PowerDesigner等技能。
这样,我们学习完这些技能之后,就可以具备前后端分离的开发模式了,你可以再找一个项目进行练手,将该项目分为前端和后端两个项目,并分别部署到Linux的两个不同的服务器上,实现前后端对接。这部分的内容特别多,核心内容可以参考下图:
如果你可以坚持学习到这里,并且学习的还不错,其实就足以具备项目开发能力了,在一线城市找一个9k+的工作是完全没问题的!也就是说,你已经算是真正地进入了Java开发大门了!但如果你对自己的要求比较高,希望自己以后能够有更高的技术成就,那可以继续学习一些分布式、微服务这样的架构师课程。
这里是壹哥给你挑选的SpringBoot免费学习视频课程,链接如下:
SpringBoot全套视频(源码解析,全程代练)
https://www.bilibili.com/video/BV1jg4y1B7er?
六. 微服务架构及性能调优
既然你选择了Java,壹哥希望你不要做一条没有梦想的“咸鱼”,所以现在请继续坚持,把分布式、微服务架构师的课程继续学习下去,毕竟,哪个程序员不想成为一个牛逼闪闪的架构师呢?
在这一部分,我们可以学习常见的架构演进,熟悉容器化Docker技术,重点掌握分布式数据库Redis,熟悉分布式搜索引擎Elasticsearch、分布式消息队列RabbitMQ & Kafka;重点掌握SpringCloud系列技能,熟悉微服务治理;掌握MySQL主从复制,熟悉分布式事务、数据库中间件、分布式全局ID等技术;并且能够对数据库、Web服务器、JVM等进行调优。
在这个阶段,你当然也得搞一个项目进行练手,这是可以搞一个比较大的项目,重点掌握如何进行微服务的拆分、多服务的集群化部署、项目优化、分布式经典问题的处理等。该部分的内容也非常的多,核心内容可以参考下图:
如果你可以坚持学习到这里,那壹哥就真的恭喜你了,现在你真的可以放心的去闯“十八铜人巷”去下山历练了!这些内容如果你学的挺好,那你的薪资拿到15k+,是不成问题的!
当然,壹哥也给你挑选了微服务的一套视频哦:
SpringCloud全套教程(史上最简单全面的微服务架构教程)
https://www.bilibili.com/video/BV1tU4y1P7nT?
还有这套价值2w+的架构师视频哦,拿去吧:
2022全网最强Java架构师实战课程,从0到1实现企业级微服务架构(价值2W+)
https://www.bilibili.com/video/BV16Z4y1z7f3?
七. 基本运维技能
壹哥说过,我们这些Java程序员,虽然从不号称自己是全栈工程师,但却实打实的干的是全栈的活!有些小型初创公司,都没有专门的运维,这是一般都是把Java程序员拉过来搞运维,因为让其他方向的人去搞,一般也搞不定。所以为了以备不测,我们还可以学习现在的一些较为流行的运维技能,比如自动化发包工具Jenkins,Kubernetes/K8S、日志搜集ELK等。
八. 面试准备
如果你更喜欢看视频,这里也有壹哥在B站上精心挑选的2套Java最新面试题精讲视频:
千锋JAVA面试题集大全-前后端程序员必看的Java面试宝典
https://www.bilibili.com/video/BV1aE411b7JZ?
千锋教育大厂高频java面试题合集,Java面试60问,通关秘籍—阿里架构师授课
https://www.bilibili.com/video/BV1Cr4y1i7Yo?
现在你知道自学Java时,先学什么后学什么了吧?壹哥给你准备的这个路线是不是足够清晰呢?如果对于这个学习路线你还有不明白的地方,可以私聊或评论哦。
如果你看技术文章有点学不下去,对文中的技术概念还是不好理解,或许是因为之前的基础确实不够扎实,可以移步查看壹哥给大家筛选的技术视频。
如果你自己去筛选视频,又得浪费很长的时间,而且找出来的视频也未必适合你。所以壹哥花了一周的时间,专门找了这套学习视频,请点击下方链接,免费学习……
全网最新最全Java零基础入门视频教程1400集,学Java这一套就够了!
https://www.bilibili.com/video/BV1gC4y1p7z2?
👀想成为一名优秀的Java程序员需要学习哪些知识?
🔥千锋大牛李卓轩老师为你解答
直播时间:2022年5月13日20:00-21:00
课程内容:
作为Java程序员应该具备哪些技能?
Java历史框架是如何演进的?
千锋Java学科教学新大纲解读。
如何快速安装Java开发环境?
点击【阅读原文】,零基础免费学Java!