Java后端开发学习路线
ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏。同时不要吝啬您的花花
面试三要素:八股,项目经验,算法
如果三项表现优秀,基本会拿到of,面试前首先要知道需要学习哪些技术栈,这些技术栈是要写进简历里的
技术栈(学习顺序从上到下)
- Java基础:https://www.bilibili.com/video/BV17F411T7Ao/ (上部) https://www.bilibili.com/video/BV1yW4y1Y7Ms (下部) 其中集合框架底层源码要重点学习,其中GUI(swing,awt包下),如果没时间可以不学。视频中的代码集合框架那一部分多敲几遍,算法中那些集合api很常用,其他代码时间充足,也可以跟着视频敲一下。
- MySQL:https://www.bilibili.com/video/BV1Kr4y1i7ru/ 其中的主从,读写分离,分库分表代码也是有时间尽量跟着视频敲一遍,知道个大概思路,理解原理,如果着急写项目,原理篇可以直接过,回来再学
- JavaWeb :https://www.bilibili.com/video/BV1Y7411K7zz 学习JavaWeb之前,尽量先了解一下计网那些协议,请求,响应,可以更加容易的理解视频中的内容。其中的项目可以不做(如果有的话),没有必要,等听完springboot时再做。还有个JSP也是比较老的,了解一下即可。
- SSM:https://www.bilibili.com/video/BV1Ya411S7aT (Spring,SpringMVC,MyBatis)属于JavaWeb的进阶。掌握Spring,SpringMVC,MyBatis的原理才是最重要的,尤其是前两个。SSM配置文件跟着视频敲一遍就行,理解每部分是干什么的就可以。不需要默写配置文件。如果着急写项目,原理篇可以直接过,回来再学
- SpringBoot:https://www.bilibili.com/video/BV19K4y1L7MT (这个是2版本,听3的也行) 属于SSM框架的进阶,这部分Thymeleaf了解一下即可(因为不是前后端分离,现阶段企业的项目都是前后端分离)。掌握SpringBoot原理十分重要(自动装配,Bean,依赖注入)这些,如果想要快速做项目找实习,这些可以回来再听。视频里的单元测试代码可以敲敲,项目(如果有的话)还是建议不要敲(因为有Thymeleaf,不是前后端分离)。如果着急写项目,原理篇可以直接过,回来再学。
- maven:在JavaWeb,SSM,SpringBoot视频中肯定会有一个出现,如果没出现,B站随便找找会用就行
- Redis: https://www.bilibili.com/video/BV1cr4y1671t/ 学习方式与mysql差不多。 其中的主从,读写分离,分片集群代码也是有时间尽量跟着视频敲一遍,知道个大概思路,理解原理,如果着急写项目,原理篇可以直接过,回来再学
- 项目(苍穹外卖): https://www.bilibili.com/video/BV1TP411v7v6/ 找不到好的项目可以写这个项目到简历上(很基础),不过推荐还是找知识星球项目写到简历上,这个可以练手。我的毕设也是这个,哈哈哈哈哈哈哈哈哈哈。这个项目推荐敲一遍,理解CRUD。
- git:B站随便找找会用就行
学习到这里可以简单写一个CRUD的项目,但是凭借这些找实习还不够
- JVM:https://www.bilibili.com/video/BV1r94y1b7eS 这里开始基本没有什么代码,最多有些命令。这部分原理很重要。
- JUC:https://www.bilibili.com/video/BV16J411h7Rd/ 这部分原理很重要,学JUC前感觉掌握一下操作系统第一章进程线程还是很重要的,知道什么是锁,CPU上下文切换是什么。这样方便学习JUC
学到这里就可以找日常实习了,常见的八股就是JVM、JUC、集合、MySQL、Redis、Spring原理。做一个稍微好点的项目,准备准备算法。海投,中小厂实习还是能找到的。(大厂日常实习也有希望);如果要找暑期实习(带转正),下面的技术栈也要会。
日常实习全年都招(不招说明不缺人),暑期实习一般在年后就得开始盯着官网了(差不多与春招一起开放)。
例如25届春招(只招25届)和26届暑期实习(只招26届)。
ps:找实习基本都是骑驴找马(尤其是中小厂),不要满足于现状,尽量在大厂实习。要在实习结束前准备好投下一家的打算
- SpringCloud:https://www.bilibili.com/video/BV1LQ4y127n4/ 里面包含很多(Redis,RabbitMQ,docker,SpringCloud),如果有学过的,可以跳过,至于差不多会用就行
- 消息队列(kafka,RocketMQ二选一,三个最好全会)
- kafka: https://www.bilibili.com/video/BV1Gp421m7UN/ 掌握消息队列原理很重要
- RocketMQ: https://www.bilibili.com/video/BV1cf4y157sz/ 掌握消息队列原理很重要
- RabbitMQ: https://www.bilibili.com/video/BV1mN4y1Z7t9/ 掌握消息队列原理很重要
- 设计模式:掌握常见的几种,面试有可能会手撕
- MongoDB:https://www.bilibili.com/video/BV1bJ411x7mq/ 知道与MySQL的区别,了解一下就好。
- Elasticsearch: https://www.bilibili.com/video/BV1b8411Z7w5 知道用途,了解倒排索引就好。
- Linux:https://www.bilibili.com/video/BV1n84y1i7td/ 掌握常用的命令就好
- docker:在springcloud视频中会出现,如果没出现,B站随便找找会用就行
有些公司可能需要shell编程,例如阿里就好多,这个根据时间情况吧,有能力就学一下
- 操作系统:掌握常见的:线程进程管理,锁机制,内核态用户态(CPU上下文切换),零拷贝,IO,内存管理、磁盘管理
- 计算机网络:主要是应用层(HTTP),传输层(TCP,UDP),网络层(ip),了解七层结构,每层协议有哪些,三次握手,四次挥手,状态码,DNS这些
总结:学习Java技术栈之前,最好还是了解一些计算机网络和操作系统的知识,理解起来更容易一些
八股
- javaguide : 结合自己听的课做的笔记,掌握原理,最好都看
- 小林coding : 这里面主要学操作系统,计算机网络。里面主要看图解Mysql,图解Redis,Java面试题这三个都要看
图解网络与图解系统感觉太深了,感觉有点像考研408的感觉了,面试从没问这么深过。我看了感觉都记不住。如果能理解时间充足,还是掌握一下(计多不压身)。
八股也要多刷牛客,会有很多实习和校招面试题
算法
平台:代码随想录,likou,牛客网,洛谷,acwing
算法可以在学完Java基础时就可以刷了,边听课学技术栈,边刷算法
我刷的是likou,但代码随想录听说也挺好,建议刷一遍
likou上的算法最好有一些基础,起码知道什么是链表,数组,树,图这些数据结构,科班的看一下老师上课讲的ppt就好,非科班上B站找数据结构与算法课挑着听,例如手撕B+树感觉就没必要听了。(也可以看看代码随想录)
刷likou算法最好按照模块刷,例如数组,链表,树,图这样的;也可以按照算法来刷:贪心,动态规划,双指针,二分查找,BFS,DFS这些,切忌从头刷,起码我遇到的没有这么干的,效果不好,接着就可以刷hot100,面试经典150这些。如果时间不够的话,可以直接上hot100和面试150
最后likou刷题数量:我刷了350道,感觉不用再刷新题了。如果没时间,刷hot100,面试150就行了
ps: 实习要刷够hot100和面试150。校招再加上力扣前300道题(非会员题),没做的都做了
likou刷题感觉至少需要250道题目(校招想要冲击大厂)
likou题目,面试会出现原题,所以尽量要多刷,来回刷,要不然容易忘
牛客网上也可以刷算法,likou主要是核心代码模式,牛客网上有的是ACM模式,起码要把牛客网上的输入输出模型做一遍
我之前牛客网笔试算法题,题目用户输入一个数组,使用scanner,likou题目做多了,main方法scanner输入不会了。
剩下的acwing模板题也可以做做
项目经验
最好找知识星球上的项目,复杂点的,最好不要选苍穹外卖,无论是实习还是校招。如果找不到其他项目,做苍穹外卖属于保底行为
另外就是多实习,尽量一直实习,不要停止(3-6个月,尽量不要停下来,尽量找大厂)
简历
- 个人信息:姓名,年龄,电话,邮箱这些是最重要的,是预备党员和党员的话写上
- 校园经历:学校(本还是硕,92特殊标记,哪年毕业),专业,打过哪些竞赛(ACM,蓝桥杯国奖很加分),其他非算法竞赛可以凑字,绩点,成绩排名高就写,感觉没人会看这个
- 实习经历:主要就是介绍在公司干了什么,具体内容分点列举,实习时间也要写上,负责什么也要写上(前端还是后端),实习收获(别写那种套话,要写就写点有用的,除非是凑字,要不然不要写)
- 技术栈:就是上面列举到的,熟悉掌握,熟悉了解,分点列举。某些可以写的详细一些(Redis熟悉了解主从,读写分离,分片集群这些)
- 项目经历:跟实习经历差不多。时间可写可不写
- 个人总结:网上随便找找就好
有博客的,gitee,github开源项目也可以加上,有的也很加分
面试官有些东西你简历上没写也会问:例如操作系统,计算机网络,数据结构与算法。 git,maven虽然不常问,但也是默认会的
总结
面试三要素:八股,项目经验,算法。
- 八股:多看javaguide,小林coding,另外不会的面试题也要自己记录下来。
- 算法:多总结,面试算法题做不出来直接挂
- 项目经验:是企业的刚需,可以给公司带来更高的价值。因为八股,算法到公司有些用不上,是为了筛选你,考察你的能力
最后:Java后端开发准备就业是个漫长的过程,都是以年为单位计算的(半年,一年,一年半,两年)
所以希望如果有就业意向,确定Java后端开发。要尽早的开始准备。
鼠鼠末211本非科班转码学习Java不到一年参加秋招,现在只有小米一个of,有一些后悔没有早点准备。如果大二开始准备,现在估计能拿好几个大厂of了。
现在就业对学历要求很高,很多公司卡92。
所以
- 本科非92的最好保研保92学校或考研考92学校,然后参考下面研究生的规划。
- 本科92的想就业就可以参考下面本科的规划。
当然双一流也可以看作2(个人感觉),例如深圳大学,杭州电子科技大学,非常好的普通本科
如果想要Java后端开发就业,本科大学四年规划:
- 大一:尽可量多学习几门语言,C,C++,Java,Python。另外还要掌握数据结构与算法,操作系统,计算机网络。大一主要是能多学点尽量多学一些。多打打算法竞赛(蓝桥杯,ACM),打竞赛结果不重要,过程很重要。顺利通过四六级。剩余时间可以参与一些社团工作。(当然错过影响也不大)
- 大二:要开始准备好方向。如果是Java后端的话,按照我的学习路线学习,在大二下学期开学时,差不多能找到大厂实习,接着就是实习快结束一个月内找下一家实习(骑驴找马),如果第一段是大厂,后续最好也是大厂
- 大三:继续找实习,大三下2-3月份就可以投暑期实习(转正的),然后拿一个转正的of
- 大四:转正of下来的估计8月份,如果转正of不满意,正好赶上秋招多拿几个of
本科阶段过于理想化了,但机会是留给有准备的人,其实哪怕大二暑假准备也不晚,但尽量越早越好
如果想要Java后端开发就业,研究生四年规划:
- 研0:尽量在考完研或保研后就要开始准备了,考研的大四寒假1月份准备,保研大三暑假7月份没什么事(9月份问题也不大)就可以开始准备了,按照我的学习路线学习。在大四暑假,差不多能找到大厂实习,如果第一段是大厂,后续最好也是大厂
- 研一:继续找实习
- 研二:继续找实习,研二下1-3月份就可以投暑期实习(转正的),然后拿一个转正的of
- 研三:转正of下来的估计8月份,如果转正of不满意,正好赶上秋招多拿几个of
研究生毕竟不能像本科那样水,所以找一个好的导师,能出来实习是十分重要的(dddd)
虽然我没考研也没保研,但我认为什么都不管的导师才是好的导师(事比较少的)
毕竟有很多研究生导师不让出来实习
如果大一或大二(研0)的牛友看到这篇文章,按照这个做的话,相信秋招会拿到好几个大厂ssp,大三(研二)的牛友看到这篇文章,也不晚,校招也会有一个满意的of。
最后祝福牛友25年春招能拿到自己满意的of。欢迎各位牛友在评论区评论。如果有不对的地方,欢迎指正。
ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏。同时不要吝啬您的花花