【2020Java最新学习路线】写了很久,这是⼀份最适合普通⼤
众、科班、⾮科班的路线
点赞再看,养成习惯,搜索【三太⼦敖丙】关注这个互联⽹苟且偷⽣的⼯具⼈。
本⽂G it H u b已收录,有⼀线⼤⼚⾯试完整考点、资料以及我的系列⽂章。
前⾔
这期我想写很久了,但是因为时间的原因⼀直拖到了现在,我以为⼀两天就写完了,结果从构思到整理资料,再到写出来⽤了差不多⼀周的时间吧。
你们也知道丙丙⼀直都是创作⿁才来的,所以我肯定不会⼀本正经的写,我想了好⼏个切⼊点,最后决定⽤⼀个完整的电商系统作为切⼊点,带着⼤家看看,我们需要学些啥,我甚⾄还收集配套视频和资料,暖男⽯锤啊,这期是呕⼼沥⾎之作,不要⽩嫖了。
正⽂
在写这个⽂章之前,我花了点时间,⾃⼰臆想了⼀个电商系统,基本上算是⿇雀虽⼩五脏俱全,我今
天就⽤它开⼑,⼀步步剖析,我会讲⼀下我们可能会接触的技术栈可能不全,但是够⽤,最后给个学习路线。
Ti p:请多欣赏⼀会,每个点看⼀下,看看什么地⽅是你接触过的,什么技术栈是你不太熟悉的,我觉得还算是⽐较全的,有什么建议也可以留⾔给我。
不知道⼤家都看了⼀下没,现在我们就要庖丁解⽜了,我从上到下依次分析。
前端
你可能会会好奇,你不是讲后端学习路线嘛,为啥还有前端的部分,我只能告诉你,傻⽠,肤浅。
我们可不能闭门造车,谁告诉你后端就不学点前端了?
前端现在很多也了解后端的技术栈的,你想我们去⼀个⽹站,最先接触的,最先看到的是啥?
没错就是前端,在⼤学你要是不到专门的前端同学,去做系统肯定也要⾃⼰顶⼀下前端的,那我觉得最基本的技术栈得熟悉和了解吧,丙丙现在也是偶尔会开发⼀下我们的管理系统主要是V UE和R eact。
在这⾥我列举了我⽬前觉得⽐较简单和我们后端可以了解的技术栈,都是⽐较基础的。
作为⼀名后端了解部分前端知识还是很有必要的,在以后开发的时候,公司有前端那能帮助你前后端联调更顺畅,如果没前
端你⾃⼰也能顶⼀下简单的页⾯。
H TML、C S S、JS、A jax我觉得是必须掌握的点,看着简单其实深究或者去操作的话还是有很多东西的,其他作为扩展有兴趣可以了解,反正⼊门简单,只是精通很难很难。
在这⼀层不光有这些还有H ttp协议和S er v l et,r equ es t、r es po n s e、co o ki e、s es s i o n这些也会伴随你整个技术⽣涯,理解他们对后⾯的你肯定有不少好处。
Ti p:我这⾥最后删除了JS P相关的技术,我个⼈觉得没必要学了,很多公司除了⽼项⽬之外,新项⽬都不会使⽤那些技术了。
前端在我看来⽐后端难,技术迭代⽐较快,知识好像也没特定的体系,所以⾯试⼤⼚的前端很多朋友都说难,不是技术多难,⽽是知识多且复杂,不到⼀个完整的体系,相⽐之下后端明朗很多,我后⾯就开始讲后端了。
零基础自学什么好⽹关层:
互联⽹发展到现在,涌现了很多互联⽹公司,技术更新迭代了很多个版本,从早期的单机时代,到现在超⼤规模的互联⽹时代,⼏亿⼈参与的春运,⼏千亿成交规模的双⼗⼀,⽆数互联⽹前辈的造就了现在互联⽹的辉煌。
微服务,分布式,负载均衡等我们经常提到的这些名词都是这些技术在场景背后⽀撑。
单机顶不住,我们就多点服务器,但是怎么将流量均匀的打到这些服务器上呢?
负载均衡,L V S
我们机器都是I P访问的,那怎么通过我们申请的域名去请求到服务器呢?
DNS
⼤家刷的抖⾳,B站,快⼿等等视频服务商,是怎么保证同时为全国的⽤户提供快速的体验?
CDN
我们这么多系统和服务,还有这么多中间件的调度怎么去管理调度等等?
z k
这么多的服务器,怎么对外统⼀访问呢,就可能需要知道反向代理的服务器。
Ngi n x
这⼀层做了反向负载、服务路由、服务治理、流量管理、安全隔离、服务容错等等都做了,⼤家公司
的内外⽹隔离也是这⼀层做的。
我之前还接触过⼀些⽐较有意思的项⽬,所有对外的接⼝都是加密的,⼏⼗个服务会经过⽹关解密,到真的路由再去请求。
这⼀层的知识点其实也不少,你往后⾯学会发现分布式事务,分布式锁,还有很多中间件都离不开z k这⼀层,我们继续往下
看。
服务层:
这⼀层有点东西了,算是整个框架的核⼼,如果你跟我帅丙⼀样以后都是从事后端开发的话,我们基本上整个技术⽣涯,⼤部分时间都在跟这⼀层的技术栈打交道了,各种琳琅满⽬的中间件,计算机基础知识,L i n u x操作,算法数据结构,架构框架,研发⼯具等等。
我想在看这个⽂章的各位,计算机基础肯定都是学过的吧,如果⼤学的时候没好好学,我觉得还是有必要再看看的。
为什么我们⽹页能保证安全可靠的传输,你可能会了解到H TTP,TCP协议,什么三次握⼿,四次挥⼿。
还有进程、线程、协程,什么内存屏障,指令乱序,分⽀预测,CP U亲和性等等,在之后的编程⽣涯,如果你能掌握这些东西,会让你在遇到很多问题的时候瞬间get到点,⽽不是像个⽆头苍蝇⼀样乱撞(然⽽丙丙还做得不够)。
了解这些计算机知识后,你就需要接触编程语⾔了,⼤学的C语⾔基础会让你学什么语⾔⼊门都会快点,我选择了⾯向对象的JA V A,但是也不知道为啥现在还没对象。
JA V A的基础也⼀样重要,⾯向对象(包括类、对象、⽅法、继承、封装、抽象、多态、消息解析等),常见A P I,数据结构,集合框架,设计模式(包括创建型、结构型、⾏为型),多线程和并发,I/O流,S tr eam,⽹络编程你都需要了解。
代码会写了,你就要开始学习⼀些能帮助你把系统变得更加规范的框架,S S M可以会让你的开发更加便捷,结构层次更加分明。
写代码的时候你会发现你⼤学⽤的Ecl i ps e在公司看不到了,你跟⼤家⼀样去⽤了I DEA,第⼀天这是什么玩意,⼀周后,真⾹,但是这玩意收费有点贵,那免费的V S Co de真的就是不错的选择了。
代码写的时候你会接触代码的仓库管理⼯具m av en、G r adl e,提交代码的时候会去写项⽬版本管理⼯具G i t。
代码提交之后,发布之后你会发现很多东西需要⾃⼰去服务器亲⾃排查,那L i n u x的知识点就可以在⾥⾯灵活运⽤了,查看进程,查看⽂件,各种V i m操作等等。
系统的优化很多地⽅没优化的空间了,你可能会尝试从算法,或者优化数据结构去优化,你看到了H as h Map的源码,想去了解红⿊树,然后在算法⽹上看到了⼆叉树搜索树和各种常见的算法问题,刷多了,你也能总结出精华所在,什么贪⼼,分治,动态规划等。
这么多个服务,你发现H TTP请求已经开始有点不满⾜你的需求了,你想开发更便捷,像访问本地服务⼀样访问远程服务,所以我们去了解了Du bbo,S pr i n g cl o u d。
了解Du bbo的过程中,你发现了R P C的精华所在,所以你去接触到了⾼性能的NI O框架,Netty。
代码写好了,服务也能通信了,但是你发现你的代码链路好长,都耦合在⼀起了,所以你接触了消息队列,这种异步的处理⽅式,真⾹。
他还可以帮你在突发流量的时候⽤队列做缓冲,但是你发现分布式的情况,事务就不好管理了,你就了解到了分布式事务,什么两段式,三段式,TC C,X A,阿⾥云的全局事务服务G TS等等。
分布式事务的时候你会想去了解R o cketMQ,因为他⾃带了分布式事务的解决⽅案,⼤数据的场景你⼜看到了Kaf ka。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。