本人已参与「新人创作礼」活动,一起开启掘金创作之路。
一般来说,很多老鸟会上来就给你贴一个大图,图上的内容多的吓死人
像这种。↓
还有这种↓
像这种学习流程图,但又大又吓人。关键上面很多东西你都不知道拿来干什么用,专业术语一个比一个多。 自家的前端技术主管估计都没有学的那么全乎。尤其是有一些技术,还存在赘余。学完发现这两个技术根本不能在同一岗位上用,学了个寂寞。
今天我们聊聊,关于能应用到工作场景上的学习路线是什么样的。
前端学习路线(排序即是学习顺序)
一、html,css,javascript
这三个被称为“前端三件套”,是前端学习中必须需要掌握的基础。至少从当下的框架上来看,不论后面需要去学习哪个框架,往哪个方向发展,都逃不过运用这三个技术。需要牢牢的掌握。
对于刚入门的同学来说。,javascript一定是重中之重。
html标签不熟悉你可以全用div啊(万物皆可div,只是这样写不太好)。
css就那么点东西,用来用去逃不过那么十几个属性(displat,position,width,height,padding,margin....)。
javascript不会你只能干瞪眼。js的东西,写不出来是真写不出来。
二、CSS3和ES6
“前端三件套”学习完毕之后你需要去学习,javascript的ES6。后面学习vue或react都有涉及到这一块内容。而css3也能帮助你在css达到更高的水平。
三、ajax
当你学会html,css,javascript,css3,ES6之后,基本上就可以正常的把页面写出来了。现在,你需要去了解什么是异步数据交互。现在的框架,几乎都采用了前后端分离,所有的数据交互都采用了ajax技术。这个技术还是非常重要的。
四、学习框架 --- vue\react(二者选其一)
前端其实有三大框架 ,react/vue/Angular。但是Angular国内基本上没人用,学了容易找不着工作。这里并不建议。
vue和react不能一起学吗?
当然可以。如果你有这个时间把两个都学精的话。
但这两个框架在工作中基本上是只用其中一个的。也就是说,你两个都学了。有一个工作后注定要被抛弃。与其有时间把两个都学会,不如把一个学精通。
聊聊vue
vue,他有中文的一手文档。对于我们来说,更友好。
而且他上手很快。学习难度不高。
一般情况下在二线三线城市,vue需求量要比react多的多。
但大公司用的少。构建大型项目的时候灵活度上面不必react。这也是大公司都喜欢用react而不是vue原因之一。
聊聊react
学习难度相对要高一些。相对于vue,react就更吃javascript的基础了。基础不好的话,理解上可能会有点磕磕绊绊。
一般情况下,一线城市使用react的比较多,和vue的需求量大约55开。
大部分大公司都喜欢用react,因为大厂有庞大的技术研发团队,他们可以基于react深度定制出符合公司业务的一套项目架子,并且也有较好的执行力将其推广到下面的开发人员
到底应该学vue还是react?
作者个人建议是:
这取决于你在什么样的城市以及你希望自己达到什么样的高度。如果你在二三线城市(当然具体取决于所在城市的框架需求比),react需求量本身不多。那还是建议学vue。毕竟react找工作不会像vue那么顺利。
取决于自己对自己的期望,如果你有一颗进大厂的心,那还是react机会更多一些。
等学完vue/react之后,基本上,就可以找一家小公司去实习工作了。工作已经开始了,但学习远没有结束。为了更上一层楼。
五、熟悉组件库 --- Element Ui(vue) 或 Ant Design(react)
如果在框架上选择了vue的话。那么就去学习Element Ui组件库。反之,如果在框架上选择了react。那么就学习Ant Design组件库。
当然,这绝不是说市面上就只使用Element Ui /Ant Design 这两种组件库,组件库的种类有很多。只是对于react和vue来说,这两个组件库的市场占有量最大。
而且,只要会一个组件库,有需要时候再去了解其他组件库,速度简直不要太快。看看文档,当场看当场就能上手。
组件库的学习不需要我们去了解每一个组件有几个属性有几个事件。没必要的,成百上千个属性和事件,鬼都记不住。我们只需要知道这个组件库中能实现哪些功能。在需要用到时候,知道去哪找到,能看懂文档,就可以了。
一些常用的属性,工作上用的多,自然而然也就记住了。
六、学习一门后台语言
为什么要学习一门后台语言?我们的工作不是前端吗?
没错,我们的工作确实是前端。所以我们的后端语言不需要特别精通。但至少的至少。需要了解。我们需要明白,数据从哪里来。数据又去哪里。后端是如何去处理数据的。了解后端语言是成为一个优秀前端工程师必经的路。只有了解后端的处理机制,才可以对前端有更深刻的理解。 等你在向一名前端大牛进发的时候会发现,和后端挂上钩是不可避免的。
而作为一名前端工程师,因为我们只是靠着了解后端来更进自己前端的水平。所以我们不需要去考虑后端语言的就业率和就业前景。我们只需要考虑成本,如何在尽量短的时间内获得最大的收益。
node.js简直是为我们量身打造的后端语言。是基于javascript构建的一门后端语言,语法几乎是和前端一模一样的。对我们前端来说,学习成本远低于其他语言的学习成本。如果以后不打算转后端的话。node.js无疑是 最好的选择。
但如果你打算前端只是过渡,以后希望自己可以成为一名全栈。
那在后台语言的选择上,作者的建议是:java或go。
为什么是java或go?
Java:虽然近年黑马很多,比如Go,比如Rust,比如Python。但,Java依然是当前市场上使用量最多的语言,没有之一。大中小公司都有在用。一门语言占了半壁江山。因为工作岗位多,学 Java可以更好的融入市场。
Go:Go语言是近年来的黑马。相比于Java,Go语言在并发等方面上有着先天的优势,更适合构建大型项目。在国外很火,在国内也有很多大厂再用,小厂用的不多。所以在当今的市场下就业情况不是很好。但随着Go技术的逐渐成熟,在未来 有一定希望被市场接受。学习Go语言,压的就是未来,或者一开始就打算冲着中大厂去的话。是一个比较好的选择。因为Go语言在国内有许多大厂再用,所以他的文档和教学体系相对于Rust来说要完善很多。
为什么不是php,python,c#和rust?
简单来说:
Php:前几年很火,凭借他轻量的优点。但不得不承认,这些年的已经没有那么热门了。
Python:的确,python在人工智能的领域,确实是成绩斐然。但最突出的优点也是最致命的弱点。python也只能在人工智能方面。其他方面,很一般。所以在开发其他 非人工智能领域产品的时候。python很少被使用。一言以蔽之:就业方向固定,岗位没有想象的那么多。
C#:这个...咋说呢。十几年前其他技术还没有做的很完善的时候,c#的确火的一塌糊涂,但现在,很一般,近年来也一直都在走下坡路,不过C#有一个游戏引擎 Unity 。在做游戏方面有一定优势。而其他方面。C#大多在银行和医院被使用,因为老一套的代码框架固定,和钱还有医疗挂钩的东西。那些单位不会冒风险去重构。都是一些很老的网站和技术。 很少有人用。国内的市场占用,远没有java高。
Rust:作为最近很火热的一款后端语言。他像一匹黑马。在国外很受欢迎,在性能上更是超越了java。但是学习难度很大,加上国内的文献资料和教学体系不是很完整。而且在国内使用的公司也不太多。 好是好,就是找工作会比想象中困难一些。
七、性能优化 和 深入了解框架和javascript
能够到这里,我们至少已经可以在一家公司立足了。已经可以拿着一份相对可观的薪水。但学习远远没有结束。
性能优化是成为前端大牛或者进入中大厂亦或者成为小厂的技术组件所避不开的一个点。当我们可以满足业务需求的时候,我们就需要去考虑,如何把需求写的更好。
这个时候,我们需要知道:
重绘和回流是什么。他们会造成什么影响并如何避免(前端性能优化篇之重绘和回流 - 掘金 (juejin.cn))
(vue)v-if为什么不能和v-for一起使用(Vue性能优化篇之为什么v-if和v-for不能同时使用? - 掘金 (juejin.cn))
(react,概念上Vue也适用)虚拟DOM是什么,diff算法是如何运作的。它是如何提高性能的(React原理剖析之diff算法,一点也不难!!! - 掘金 (juejin.cn))
等等。需要关注的性能优化点有很多。文章内就不再举例。有需要了解更多关于性能优化和深入javascript的小伙伴可以去作者的主页中逛一逛。
多端编译技术(Taro/Uniapp)
可以到这里的,说明我们在web端已经具备了一定的水准。可以轻松的完成自己的工作。接下来,需要全面的了解前端除了web之外东西了。比如小程序,比如App。
成为一家企业的前端小头目,我们需要具备的技术除了都某一方向的技术上有一定深度以外还需要一定的广度。谁也想不到明天领导会给你编排一个什么样的任务。假设有一天,你的上司找到你,让你写一个小程序,说不会显然不合适。在满足当前工作需求的同时,我们也需要去了解工作以外的一些技术。
原本app,小程序,web端,是三套技术。但是多端编译框架的诞生解决了这个问题。
让我们只需要会react(或vue)就可以使用一套代码编译出可以在各种环境下运行的程序。
如果我们使用的框架是Vue,那么就选择 Uniapp。
如果我们使用的框架是React,那么就选择 Taro。
不论是uniapp还是taro都是可以将一套代码编译到不同平台的技术。
他们的区别是
Taro主要是基于React的。而uniapp主要是基于Vue的。
Taro相对比较年轻,在生态上可能不比Uniapp,但基本上也可以满足日常工作需求。
当学习完多端编译技术的时候,你就是一个成熟且优秀的前端工程师了。
TypeScript(可选项)
为啥说TypeScript是可选项呢。虽然也是有很多公司在用的。但是它对找工作影响没那么大。
只是说。学了,机会更多一点而已。
如果你有空的话,就学嘛。
如果公司有需要的话,就学嘛。
反正又没有怎么的难。学了又不亏。
作者的工作就是React+TypeScript。
再然后
再然后,其实当你学习完上面所说的这些技术。我想你已经不需要别人再给你什么建议。后面的路该如何去走,你已经可以指导自己。
是否需要学习 “前端算法”,“web安全”等等。你已经可以自己去思考,去决定。
希望这篇文章可以对你有些帮助。
最后
祝你好运,祝你有似锦前程。
欢迎技术沟通,摸鱼聊天~
备注来自掘金~
wx:XXF1096032096