Java全栈(前端+后端)工程师学习路线

Java全栈(前端+后端)工程师学习路线 一.JavaSE(熟练使用IDEA(私下学习可以,但进公司做项目不要使用破解版)和Eclipse) 辅助语言:C++(面向对象语言,偏向底层,语法和Java类似,我个人偏好C++为辅助语言)+python(会一些爬虫方面就可以了)+go(因为垃圾回收器的方便,想用go学习手写Java虚拟机)

​ 重点: 基础语法(for,while,if,return,break等等),数组, 面向对象(整个JAVA开发的核心),集合(一定要熟练使用,特点是HashMap的底层原理),反射(学到jdbc和框架时很重要),常用类(主要掌握包装类), 异常机制,多线程/高并发(难,可以暂时跳过或者掌握一些基础) 其它:泛型, 枚举, Lambda 表达式 IO流,网络编程,网络密码学,注解,GUI(时间紧的话不要学了) 正则表达式 Java8-16新特性

二.数据库

​ mysql+jdbc(掌握一下它的原理)是肯定要学的,如果你想进银行,你还得额外学习oracle

三.JavaWeb(熟练使用webstorm和vscode(vscode比webstorm用的更广泛))

html+css+ps(不用精通)+javascript(重点)+tomcat+servlet(重点)+jsp(几乎过时,但不排除有些公司还在用,所以还是得学一下)+ajax+jquery(基于javascript的一个框架)+(es6+)+node.js+axios+promise+webpack+typescript+Vue2(目前是Vue2向Vue3过渡,Vue2还是主流)+Vue3+React(大厂用的多)+Angular(vue比较火,react也用的多,angular在国内存在感弱于前面两个)+微信小程序

其它前端技术:

bootstrap+elementui+less+zepto+easyui+echarts(边做项目边学,根据项目的实际需求去学习,如果你专业搞前端,这些都要掌握)

前端结合数据库:mongoDB

学到这里,最好停下来做一个项目(以图书管理系统为例),巩固一下基础。

前端项目vue实战(巩固vue)

四.专业基础课(Java五大件:计网,数据结构与算法,设计模式,操作系统,数据库原理)

线性代数矩阵(刷算法需要了解)+操作系统(学习并发编程)+计算机网络(重点)+计算机组成原理(学习并发编程需要了解这个)+离散数学(如果有研究《算法导论》的想法要学)+编译原理+数值分析+汇编语言+设计模式(先学习七大原则,再学23种设计模式)+jvm(买一本’‘深入理解Java虚拟机’’)+数据结构与算法(重点,进大厂的必备条件之一)+ 英语( 建议把英语学好)+数据库原理(因为它面试必问,所以把它列入专业基础课)

五.框架(学到这里,你可以出去实习了,前提是你要学得好,不过最好学完springboot再去找)

(学习如何创建Maven工程(管理各种jar包)后再配置阿里云镜像)mybatis+mybatis-plus+spring5(重点)+springmvc(先学好servlet)+shiro+最后ssm整合+springsecrity+日志框架(建议学习一下)+activiti+springdata+JPA

六.分布式

先学习Linux,以后做大型项目基本都是部署在Linux上的,然后学习git->svn(选学,目前主流是git)->Dubbo->springsession->Redis(缓存)->RabbitMQ->RocketMQ->ActiveMQ->Zookeeper->MyCat->Nginx->FastDFS->ElasticSearch

七.微服务(也可以先学微服务再学分布式)

springboot2->springcloud->springcloud Alibaba->Sentinel->Docker->k8s+高并发解决方案+Netty+微信支付

八.数据库进阶

mysql优化+mysql集群

九.项目实战(全栈项目开发)

首先电脑内存至少16G,8G电脑跑起来会很吃力,可以做个电商项目(以电商商城项目为例),或者其它金融、教育项目等等…

十.大数据(看你个人兴趣)

Hadoop->Spark->Spark调优->Flink->Zookeeper->Hive->HA->Flume->kafka->HBase->Sqoop->Azkaban->Oozie->Scala->Impala->NiFi->TiDB

十一.云原生实战

k8s+Docker+DevOps+KubeSphere等

十二.鸿蒙开发系统(目前它的生态还不是特别好,但未来可能有一定的概率火,如果有多余的时间,可以学一下) 十三.后端高频面试(很难)

计算机网络,数据库(索引、优化、事务隔离等),操作系统

Redis, 数据结构与算法(leetcode刷至少400道题) 并发编程 jvm 消息队列(RabbitMQ,kafka,RocketMQ) Spring 加分:Netty(需要扎实的网络编程和并发编程基础)

十四.底层源码研究(需要学好设计模式+数据结构与算法+反射等)

手写Tomcat,手写mybatis框架,手写spring框架,手写springmvc框架,手写springboot框架等 JVM源码研究(需要一定的c++基础)HashMap底层源码研究 Sentinel源码研究 手写Java虚拟机

十五.计算机推荐书籍

大话数据结构(入门)+算法导论(进阶)/算法4,Java并发编程艺术+Java并发编程实战,深入Java虚拟机,Spring5技术内幕,计算机网络自顶向下,

大话设计模式,编译原理(黑皮书), 高性能mysql+mysql必知必会 springcloud微服务原理与实战 spring5源码探究 springboot编程思想 Redis开发与运维 代码整洁之道

十六.程序员必备素质

良好的身体素质(它是我大学期间认为最重要的东西,大学期间发展运动爱好:我推荐:跑步,游泳,跳绳,篮球)
强大的抗压能力(互联网的压力非常大,具备抗挫能力,也许能解决一些事情)
良好的人际沟通能力(一直到大三才意识到人际沟通能力的重要性,不管你是内向害羞,你都应该利用机会上台演讲)

十七.竞赛(加分)

acm, 蓝桥杯算法竞赛(从大一准备最好), leetcode周赛 牛客网周赛

十八.研究简历

怎样书写简历是进入面试的关键

十九.总结

以上是偏向于后端的Java全栈工程师学习路线,至于前端、大数据学习等不用耗费太多精力,先把后端学精再说。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
来说点什么吧!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容