一.为什么选择前端?
这点非常重要。做任何事情如果没有目的性,那么做到一半多半就会懈怠以至放弃。我在这里抛出几个问题,并给出一些可能的答案:
1.为什么不从事算法/机器学习/人工智能等方向?
竞争过于激烈。应聘人数远超招聘人数。
而且算法工资与研发工资差距在缩小。
2.为什么不从事后端?
自己不感兴趣。学了一个月Java,不知道能做些什么,正向反馈太少。但是后端的发展是强于前端的。
3.选择前端所带来的优缺点:
工资还行(年平均年薪在25W);市场需求量巨大,説是研发中需求量数一数二的应该不过分;入门简单/学习曲线平滑/成就感强;飞速发展/处于上升期
但缺点也很明显:
a.入门门槛低,导致专科生上个培训班也能与你竞争…
那怎么去想通这个事情呢?
平心而论,前端确实是研发岗位中门槛最低的,但是所承担的任务会越来越重,当一个事情复杂起来之后,人与人之间的差距自然就会拉大。
而且,对前端的热爱程序也会决定你究竟能走多久。如果你是真心看好前端的,和带有其它目的学习前端的人,最后的学习效果必然是不同的。
从公司的角度来讲,公司是以盈利来目的的,并不是你学的东西有多难而招聘你,而是你能为公司解决什么问题来招聘你。
b.无法与计算机专业毕业的相比
好在应该没有学校专门去开授前端课程,都是自学的,前端方面差距不大。但是在一些计算机基础课程上,差距巨大,需要后期自己去弥补了。
二.前端的发展情况
1.前端的历史
Web1.0(切图仔)
年之前,处于后端重,前端轻的状态。技术栈主要为JSP,ASP.NET等
Web2.0(前后端分离)
年,AJAX技术的出现。代表为Gmail和GoogleMap。兼容性问题开始出现,导致jQuery的流行。
Web3.0(前端赋能):
年HTML5第一份草案发布,直至年,HTML5成为标准。赋予了前端更强的能力—多进程,Web3D,动画,视频,音频
年。谷歌浏览器发布,研发了高效的JavaScript引擎V8。年在全球浏览器占有超过50%。国内的很多浏览器无非是谷歌浏览器换了个壳,作为一个前端,强烈建议大家使用谷歌浏览器。
年以谷歌的V8引擎为基础的Node.js诞生,使JavaScript突破了只能在浏览器运行的限制。更重要的构建了一个庞大的生态系统。你可以写后端,APP,爬虫等等
年ECMAScript6发布,对JavaScript语言层面进行了增强,大部分是一些语法糖。个人认为,最重要是对模块化/异步编程进行了标准化
2.前端的当前发展状态
飞速发展期。各种新技术,黑科技层出不穷。欣欣向荣的同时,也意味着混乱。不过换个角度来讲,混乱也意味着机遇啊。
框架上,jQuery正逐渐退出历史舞台。不同方向出现了不同框架:
网页:MV*框架出现,React/Vue
Web3D:threejs等等
数据可视化:D3.js
游戏引擎:egret/pixi/layabox等等
桌面应用:nw.js/electron
APP:React-Native/pwa
后端中间件:express/koa(与PHP抗衡)
语言上:JavaScript每年更新一次。CSS3分模块更新。
浏览器:开始逐步放弃低端浏览器。谷歌浏览器全球占有率已近70%,中国占有率已近50%。
3.前端的未来
用户体验/富媒体/富应用/富交互/个性化定制交互/等等
三.前端的工作内容
1.传统网页开发
工作职责是提升用户体验。
工作内容是配合公司其它部门实现业务逻辑。
2.前端开发
给公司额外的技术造型,在一些性能要求不高的场合,会选择前端技术降低成本进行开发。
四.如何进行前端学习?
保持旺盛的好奇心,以及对知识的渴求。
对0基础的人来説,我建议你花个几千块钱去学习一个培训班。这样你对这方面的基础知识就有了一个大概的总体性的认识。不要上来就学习什么框架,先把基础打好是重中之重。
再深读一下相关行业的经典教材。这样你的基础就已经过关了。这两部分我建议至少花上半年时间。
再考虑做一些实际的项目,或参加一些实习,加入工作室等等。
一些关键点:
1.零基础入门:
捷径就是对着视频/书敲代码,一定要亲手敲。无他,唯手熟尔。
先学半年基础,再考虑学习框架。
对HTML/CSS要引起重视,我学CSS就花了一个多月,也只是学了一些皮毛而已。
2.项目哪里去找?
不一定很高大上,可以是自己感兴趣做了的一些个人小项目。
3.实习哪里去找?
只建议去大公司实习。这里的大公司指的是大家都听説过的公司。
小公司的实习,主要是开发流程一般不规范,还有杂事特别多。
4.不要忽视算法的学习
虽然説在工作中很少遇到算法题目,但是笔试/面试就是要考,公司之所以要求算法能力,是因为应聘人数太多,需要通过一个合理的方式刷人,所以必须认真对待。
刷算法的时间建议在找工作之前的两三个月,一直刷,保持手感。
1.5.计算机基础课程(操作系统,计算机组成等等)
技多不压身。很多面试都会问,如果你不能完整的学习,那么把一些常问的问题搞清楚,能应付面试就行,后期再补。
五.前端学习资源推荐
1.经典书的推荐
《JavaScriptDOM编程艺术》入门
《JavaScript高级程序设计》经典教材
《JavaScript正则表达式迷你书》实用,有些算法题目用这个会很好做,面试加分项
《JavaScript设计模式与开发实践》等基础好了再来读。
2.学习网站推荐