JAVA 的学习路线图
JAVA 语言是一门非常流行和重要的语言,目前仍是需求量很大的语言,应用范围很广的语言,在:企业级开发、移动开发、大数据云计算、人工智能等领域都有大量的应用。 怎么样学习好 JAVA 语言,达到可以轻松就业的地步,是每个初学者都关注的话题。我们一般将 JAVA 编程的学习分为这四个大阶段:基础阶段、WEB 开发阶段、框架阶段、高级技术阶段。各阶段具体学习内容和方法如下:
一、基础阶段
基础阶段的学习说白了就是 JAVASE 的学习,这是基础的阶段。目标是让初学者进入编程的殿堂,具备基本的编程思维。在这个阶段我们可以再细分为如下内容:
- JAVA 编程入门
入门阶段主要学习:变量、数据类型、控制语句这些基本的概念。这些技术是所有编程语言都有的内容。很基础也很重要。专心学完,大约需要 3 天时间。 - 面向对象
面向对象是深入学习 JAVA 的核心,也是大家真正进入 JAVA 世界的难点和重点。 这里会有各种各样的概念,非常重要。但是,大家在学习面向对象的时候,先注意 “开始学习语法和概念,不要期望一口气学的很透彻。面向对象,需要大家在后面做项目时才能深入体会如何将面向对象思想应用于实践”。因此,我建议大家不要在此处过于纠结概念,能学多少学多少,遇到不懂的概念,先记结论开始用,快速往后学,不要停留过长的时间在此处。如果全天候学习,建议学习时间 3 天。 - 异常
异常是 JAVA 安全机制的核心,也是让我们程序更易懂更稳定的核心。初学异常重在理解概念、学习如何解决异常的思路。如果全天候学习,建议学习时间 0.5 天。 - 数组
数组是常用的概念。在学习本内容的时候,掌握核心“数组也是对象,数组的元 素相当于对象的成员变量”,理解了这一句话,就掌握了数组的一大半了。数组学习时顺便学习一下一些基本的算法,比如:排序、二分法等。这样,既可以学习数组,也能复习前面的控制语句、面向对象等知识。因此,在此处可以多做练习, 停留时间长一点。如果全天候学习,建议学习时间 2 天。 - 常用类
我们重点掌握常用类的用法,学习 API 的查询和使用。如果你想更深入,学习时可以阅读这些常用类的底层源码,开始培养高手的格局。如果全天候学习,建议学 习时间 2 天。 - 容器
容器是开发中常用的内容。学习容器时,既要学习相关类和接口的使用,也要明白容器的底层原理。容器的底层实现和数据结构知识紧密挂钩。也是,我们在工作和面试中经常会碰到的问题。因此,容器需要初学者花大力气学习,并且要深入底 层,明白底层的核心机制。如果全天候学习,建议学习时间 2 天。 - 多线程
多线程的 JAVA 语言的特点。我们在后续学习服务器编程时,服务器的底层核心机制就是基于“多线程”的。因此,我们需要掌握多线程的基本原理和应用。为了后续学习并发编程,也有必要学习一下“生产者消费者模式”、“锁机制”、 “TheadLocal”、“线程池”等高端一点的概念。如果全天候学习,建议学习时间 2 天。 - 网络编程
更容器的网络编程是 JAVA 在互联网时代击败 C++的关键。我们需要掌握 TCP 编 程、UDP 编程的经典模式,但是不需要太深入去学习。因为,大多数项目开发时底层都做好了封装。如果全天候学习,建议学习时间 2 天。
二、WEB 服务器开发阶段
学习 JAVA,大多数人最终会进入服务器编程、企业级开发领域。因此,为了能够完整地编写项目。这个阶段我们也要学习一些 JAVA 之外的技术:网页开发和设计、数据库编程。JAVA之内的技术有:Servlet、JSP、标签库、服务器等。这都是大家进入开发领域必须要学习的内容,光会 JAVASE 是不能实现就业、不能独立开发项目的。但是,学完本阶段的技能,大家就可以独立开发一些项目、具备初步的就业能力了。
-
网页开发和设计
JAVA 程序员主要完成服务器端的开发,但是对于浏览器端如何展现数据也是很有必要掌握的。网页开发的基本知识可以说是必学的技能。HTML, CSS, JavaScript, JQuery等。网页开发也是专门的专业,JAVA 程序员去学习,掌握基本概念即可,不需要深入太多细节。大家在学习的时候,把握好“度”。如果全天候学习,建议学习时间 7 天。
-
数据库编程和设计
数据库是绝大多数项目的存储的核心,因此,作为 JAVA 程序员也必须掌握。在学习数据库技术时,重点掌握 SQL 查询、表的设计范式、JDBC 技术、ORM 思想和 Mybatis 框架。其他关于数据库管理的知识不需要掌握太多。如果全天候学习,建议学习时间 9 天。(互联网公司首选 MySQL,其次Oracle,最后SQL Server…)
-
Tomcat
Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。如果全天候学习,建议学习时间 0.5 天。
-
Servlet 和 JSP 技术
Servlet 和 JSP 是 JAVA 服务器开发的核心技术,也是必备技能。重点掌握如下知识: HTTP 协议、Tomcat 服务器、Servlet、Jsp、EL 表达式和标签库。如果全天候学习, 建议学习时间 5 天。(虽然在前后端分离模式盛行的时代,JSP显露出颓势,但在一些中小型公司中仍在使用,也是目前JAVA WEB 攻城猫必备的。)
-
做一个简单的项目
学到现在,大家已经具备初步的项目开发能力。非常有必要通过一个项目,将所学的知识串联一遍,强化所学成果。同时,也通过项目开发的学习,真正进入 JAVA 企业级开发的行列。如果全天候学习,建议学习时间 5 天。
三、框架阶段
框架作为企业使用的重要技术, 其本质是写更少的代码,做更多的事情, 从而大大减码量, 让程序员更加关注业务的实现。 自己写的少 了,都是用别人写好的东西就要明白别人写了什么,学习框架重难点不仅仅是如果使用框架而是要明白别人到底写了什么。 但是也要掌握好”度”, 不要一味追求底层, 要”择其重”, 否则可能出现东西太多, 永远也学习不完的情况。
-
MyBatis 框架
学习 MyBatis 框架要知道它是一个持久层框架。它的主要职责就是完成数据库操作,因此也要求我们有一定的 SQL 基础。MyBatis 灵活就体现在所有 SQL 都是程序员编写,想要什么样的结果就写什么样的 SQL 命令,剩下大部分的事情都交给 MyBatis 完成了。我们把Mybatis 放到了学完 JDBC 之后,这样既可以巩固 JDBC 和数据库知识,也能在即将要做的项目中开始使用 Mybatis,这样更贴合企业实战。如果全天候学习,建议学习时间 3 天。 -
Spring 框架
学习 Spring 框架的目标很明确, 就是学习好 IOC/DI、 AOP、 声明式事务。 单独使用 Spring 很简单,重点是学习了核心功能后如何把这些功能运行。目前大部分技术都需要被 Spring 整合, 所以 Spring 是很重要的框架。 Spring 框架不是专注于某一层, 哪里都有 Spring 的影子。所以基础语法学习好后要多做几个项目去, 才能真正的感受到 Spring 的魅力。如果全天候学习,建议学习时间 3 天。 -
SpringMVC 框架
SpringMVC 做为 MVC 框架, 其关注点就是控制器的编写。如何接收参数, 如何传递内容到页面,还有大量注解这些都是核心。学习时把握好主脉, 要从运行原理入手, 清楚的知道里面的核心组件, 学习起来就事半功倍了。如果全天候学习,建议学习时间 3 天。 -
Shiro 安全框架
Shiro 应用场景都是在权限、安全上,应用场景很明确,所以就导致 Shiro 里面有着大量专业术语。 学习 Shiro 从架构图出发,清晰的记忆所有专业术语。我们分两大块学习 Shiro ,分别是:认证和授权。如果全天候学习,建议学习时间 2 天。 -
Maven
Maven是项目构建工具,必须先要弄清楚分布式的概念。 从学习了 Maven 后每个项目可能不是一个 Project 而是很多个, 所以重难点是项目和项目之间的关系以及 Maven 中 POM 的配置。如果全天候学习,建议学习时间 1 天。 -
做一个完整的SSM项目
学到现在,大家已经完全具备JAVA EE 项目的独立开发能力。非常有必要通过一个完整项目,将所学的知识串联一遍,强化所学成果。同时,也通过项目开发的学习,真正进入 JAVA 企业级开发的行列。如果全天候学习,建议学习时间 7 天。
-
Spring Boot框架
学完MyBatis、Spring、Spring MVC整合后,一定会被其繁琐的配置,搞得头昏脑胀,那么你就可以好好感受一下Spring Boot的魅力喽。从最根本上来讲,Spring Boot 就是一些库的集合,它能够被任意项目的构建系统所使用。它使用 “约定大于配置” 的理念让你的项目快速运行起来。用大佬的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架。如果全天候学习,建议学习时间 3 天。
-
Spring Security框架
一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架(简单说是对访问权限进行控制嘛),应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限执行某个操作。在一个系统中,不同用户所具有的权限是不同的。比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改。一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。 Spring Security的主要核心功能为认证和授权,所有的架构也是基于这两个核心功能去实现的。如果全天候学习,建议学习时间 3 天。
四、高级技术阶段
高级技术阶段是随着电商火热后被大量使用的,这些技术大部分都是为了解决”高负载”,”高并发”等使用。
-
Linux
Linux 是操作系统,学习 Linux 就是为了让自己开发的项目发布到 Linux 中,所以学习 Linux 的主要要求是如何把项目运行的环境都配置出来。作为 JAVA 程序员不要求掌握特别深的 Linux 知识,掌握基本操作即可。如果全天候学习,建议学习时间 2 天。 -
Docker
Docker是一个开源的应用容器引擎,开发者可以打包自己的应用到容器里面,然后迁移到其他机器的Docker应用中,可以实现快速部署。如果出现的故障,可以通过镜像,快速恢复服务。诸多高级技术都可以基于Docker,实现快速安装部署,因此推荐优先学习。如果全天候学习,建议学习时间 2 天。
-
Spring Cloud
首先,尽管Spring Cloud带有“Cloud”这个单词,但它并不是云计算解决方案,而是一个基于Spring Boot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式。如果全天候学习,建议学习时间 3 天。 -
Redis
NoSQL 数据库在企业中使用越来越多,主要的优点就是效率高。每个 NoSQL 数据 库有着自己独有的操作 API,所以在能够熟练安装 Redis 基础上,更要熟练使用 Jedis、Spring Data Redis 操作 Redis。如果全天候学习,建议学习时间 2 天。 -
Rabbit MQ
基于队列实现,明白队列概念后,把 Rabbit MQ 安装上可以很快的上手。如果全天候学习,建议学习时间 3 天。 -
Lucene
Lucene是一套用于全文检索和搜寻的开源程序库,提供了一个简单却强大的应用程序接口(API),能够做全文索引和搜寻,Lucene并不是现成的搜索引擎产品,但可以用来制作搜索引擎产品。如果全天候学习,建议学习时间 1 天。
-
Solr
Solr 搜索,先要能够搭建 SolrCloud。 学会使用 SolrJ 之后,还需要明白”索引”, 搜索算法,Solr 实现原理才能掌握好 Solr。如果全天候学习,建议学习时间 2 天。 -
ElasticSearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。如果全天候学习,建议学习时间 3 天。
-
Nginx
先要弄清楚反向代理的概念,代理本机目录和代理其他主机。 熟练安装 Nginx 和 配置 Nginx 是学习 Nginx 的重点。如果全天候学习,建议学习时间 1 天。 -
MyCat
为了保留关系型数据的优点,MyCat 作为一个解决 MySql 不能分库分表的解决方案。学习 MyCat 先从配置 MySQL 主从备份开始,然后熟练配置 MyCat 配置文件。如果全天候学习,建议学习时间 1 天。…
作为开发人员,我们需要跟上技术发展的步伐。每天,我们都在学习新的编程语言、框架和库。但是,技术和时尚一样,正在以光速变化。这是一场没有赢家的比赛,因为技术的发展没有终点。
五、设计模式和框架底层深化阶段
设计模式是解决特定问题的较优代码编写方案。在程序开发中时时刻刻都有着设计模式。 学习设计模式必须理解代码是为了解决什么问题。可以先把所有设计模式都学习完, 对于 GOF23 设计模式有一个基本的认识。 然后在学习成熟框架的底层代码,这样技能将框架学习更深入也能让自己的底功更扎实。 学习设计模式可以拆分成多个小块学习,不建议一次性占用大量时间。
框架学习分为两种:
一种是使用一种是明白实现原理。 如果学习框架只是为了知道如果搭建框架的环境, 如果使用框架,框架的学习还是比较容易的。但是如果想要非常清楚的明白每个功能是如何实现的就必须清楚的知道框架底层。 学习框架底层可以帮助我们在出现异常时快速的想到是什么原因出现这个错误。 因为 我们知道自己写的代码,也知道别人写了什么,出现了错误肯定会更好的解决。 MyBatis 框架底层可以从 SqlSessionFactory 入手, 一个类一个方法的往下跟踪,一直跟踪到 SqlSession 关闭。 Spring 的底层源码要从 BeanFactory 和 ApplicationContext 入手,知道 Spring 容器作用。 SpringMVC 底层源码可以从 DispatcherServlet 入手,观察所有核心组件的运行过程。 每个框架可以自己绘制一份流程图, 这样更利于自己把整个框架的运行原理弄清晰框架底层内容可以在边学习框架边学习。
【注】框架底层的学习适合学有余力的同学。如果掌握框架的使用都比较吃力,可以先放一下。熟练使用框架以后再深入底层。
六、综合项目
技术技能学习完毕后,必须通过一个综合的项目将所学知识串一遍。既是复习,也是升华。我们采用“电商项目”作为综合项目。电商项目可以很简单,也可以很复杂。有的所谓电商项目就是一个商品管理和购物车,但是一个京东商城也是电商项目。 所以,电商项目是一个非常好的可以串联知识点的项目,以及解决高并发问题好的场景。
七、面试和求职
技术学习完毕了,我们也必须掌握一些基本的面试知识,让自己在找工作和求职过程中最少做到“不吃亏”。如果这部分知识掌握到位,可以起到“画龙点睛”的作用,让自己的临门一脚非常漂亮。为自己的职场发展开好头。
入职后如何快速成长(感兴趣的可以去B站看看尚硅谷明哥的视频)
-
入职后三个月试用期要做的事
- 三法宝,处理同事关系
- 核心两点,处理好领导关系
- 每件事都是学习的机会
- 主动加班,试用期加班是学习的好机会
- 未通过试用期,如何应对?
-
前三年需要学的技术
- 工作后,千万不要停止学习
- 项目经验如何累积?
- JAVA 高级技术还需要学习哪些?
- 架构师课程如何学习?
- 工作中,快速学习新技术的捷径(重要的是形成体系,而不是钻到某个技术点)
-
前三年需要提高的软实力
- 软实力是真实力
- 软实力的七要素,7A软实力理论
- 好的沟通有方法
- 快速说服别人的技巧
- 口才也能练出来
- 领导力如何自我修炼
- 会议发言的三要素
- 酒宴祝词、会议发言的完美公式
- 五点职场礼仪,让你秒变职场受欢迎人士
- 软实力是让你脱颖而出的关键
《就业无忧_明哥专有职场路线》
【就业攻略】
求职准备:BV1o4411p7An
就业技巧:BV1o4411p7An
初入职场:BV1o4411p7An
【职业素养】
时间管理:BV11t411J7ih
职场礼仪:BV1q4411U7TJ
沟通技巧:BV1QJ411R74p
心态修炼:BV1VJ411h7bk
ps:不管你现在的工作有多好,切记经常翻翻面试题
混〔IT〕的小学生 热爱编程,喜欢挑战新事物! 撩撩博主 😃
转载:https://blog.csdn.net/BUG_call110/article/details/104887845