10年IT编程经验的老司机,和你唠唠前端的发展
转载自:https://cloud.tencent.com/developer/article/1155276
本人在IT行业开发了近10年,去过腾讯,创过业,当初的“骗子马云”也成为了中国首富,在中关村“摆摊的刘强东”也娶了奶茶妹妹......而我,┭┮﹏┭┮,还在苦X的做开发,哎,就像伟大的哲学家“谁都不服就服你斯基”说过:三十岁前,努力拼搏奋斗,追求理想,可依然很痛苦,生活得不到改善,三十岁后.......你就开始习惯了。
好了不扯了,回归正题,我之前是做C#开发的(后台),那个年代的前端叫做“网页制作”,只需要写点静态页面,运气不好的需要自己设计PSD设计稿,运气好的去写一点jQuery效果,数据绑定等大部分交互工作都是交给后台来处理的,我们可以把它叫做 “前后端不分离,服务器渲染的项目”。
2013年,也就是我转前端的这年,JS如我预期一样开始崛起,部分公司已经开始做 “前后端分离,客户端数据渲染” 的项目了,jQuery和AJAX得到了更广泛的应用。与此同时,随着手机端的发展,H5开始逐步崛起,越来越多的公司把自己的产品搬到了移动平台上。从这会开始,网页制作有了个高大上的名字:“前端开发工程师 / H5开发工程师” 等。
2014~2016年,是JS高速发展的三年,前端开发就像雨后春笋,大规模生长,越来越多的公司重视前端岗位,开始加薪,开始扩张招人,开始安排更多的任务责任给前端。对应的技术也演变的越来越完善复杂,各种设计模式、模块思想、框架体系应用而生:
从HTML/CSS到HTML5/CSS3以及Hybrid混合APP开发
从jQuery到原生的javascript以及各种设计模式
从ES3/ES5到ES6的新一代语言规范
从AMD(require.js)到CMD(sea.js)再到CommonJS和ES6Module的模块思想进化
从backbone到angular再到最后的胜利者:vue/react
从只做前端开发到基于node开发后台,写服务中间层
从ajax到更多的跨域,前端也要学习HTTP/TCP,也要学习算法
从grunt到gulp/fis再到现在的webpack
......
2017年至今,前端按照既定的轨迹稳步发展,逐步完善,现在的前端再也不是那个 “后台瞧不起的” 前端了,很多公司,前端的岗位人数远超过后台,给予的薪酬和发展也是很高的了!所以,谁在说前端没啥难度,前端不重要,前端发展不好...,你可以过来找我,我们来聊聊人生 (•́へ•́╬)
前端市场饱和了?
最近我发现了一个特别好玩的现象,总有人说前端市场饱和了。很多后台或者python培训机构的说,我也就忍了(毕竟林子大了什么鸟都有,为了招生不择手段是某些机构善用的把戏),但是很多从业者或者打算找前端工作(尤其是没有找到)的在说我就忍不了,这是正规场合,我不能写脏字,那我就善意的表达一下我内心的情绪:老话说 “坐井观天”,“吃不着葡萄说葡萄酸”,“不懂瞎比比”,“捕风捉影”...说的就是这类人。
先来一组到珠峰招聘前端人才的信息:
这只是最近的找我们要人的信息,每周都会有很多很多,我们现在是供不应求了,而某些人还在说前端不好找工作 ,ε=(´ο`*)))唉 !不是市场不景气,而是你太LOW而已,你离高薪就差一个珠峰!
再来一组就业信息
光招聘多可能不能说明什么,那咱们来看看珠峰的近期就业成绩。
最近有同学问我,你们珠峰签不签就业合同,别的机构都签,毕业薪资保¥6000,听到这我总会莞尔一笑,六千你还好意思说,现在的前端开发岗位,只有公司要不要你,很难出现低工资的,你说我技术不是很好,找个低薪的岗位先干着,不好意思,没有!而且,谁说我们珠峰不保就业了,珠峰培训是同行中保就业的“鼻祖”,15年年底我们就敢“低于¥9000退学费”,只不过后来学生感觉没啥意思,用他们的话说,要是目标薪资只¥9000,我来你珠峰干啥!前天有个小姑娘和我说:周妈我给珠峰拖后腿了,我才找了个¥12000的.....,O(∩_∩)O哈哈~,没错,在珠峰毕业,低于¥14000就是拖后腿了!
目前的前端市场,零基础自学能出来吗?
道德经中说:天下皆知美之为美,斯恶矣;皆知善之为善,斯不善矣。有无之相生也,难易之相成也,长短之相刑也,高下之相盈也,音声之相和也,先后之相随,恒也!
万物本相对,我不能说零基础自学一定不能学会(毕竟现在网上有很多开源免费的视频、文章、资料,基础的也有,深入的也有),接下来我先来汇总一下目前前端开发需要的技术内容,咱们再来聊这个话题吧!
首先看一下BAT的等级划分和薪酬体系
现在很多公司招聘前端开发(即使是实习),基本上都要求 P4+及以上了,P5及以上水平想找一份前端工作,还是很so easy的,所以接下来我们的努力方向就是P5+,想要具备这个水平,我们需要掌握下面这些技术。
1.原生JS(ES6)
闭包和堆栈内存以及在项目中的应用
面向对象:尤其是类的封装继承和多态,最好能够封装一些简单的插件,有阅读过部分类库或者插件的源码
设计模式:单例、原型、发布订阅、Promise等
事件代理
ES6常用的语法:重点在于和ES5的区别
ES6中的Promise,这个问的特别多,需要大家去看看Promise A+规范,把Promise彻底吃透(我一个在阿里的朋友和我说,你要是能用JS自己写出一个Promise [也就1千多行代码]),面试肯定必过了!!
…
2.AJAX和跨域
掌握HTTP和TCP通信机制:三次握手,四次挥手、浏览器缓存、DNS缓存等
掌握很多前端性能优化的方案
掌握AJAX的基础原理:尤其是对于HTTP状态码的解读
掌握多种跨域方案,最好能深知其原理,例如:JSONP、CROS、反向代理、webpack proxy代理等
掌握axios、fetch等
…
3.移动端开发
熟练掌握H5/CSS3(尤其是CSS3动画和3D效果实现)
掌握Hybrid混合APP开发,能够调取微信的JS-SDK接口
最好会小程序开发
目前会一些webGL和canvas也是加分项
…
4.框架和自动化及全栈
熟练掌握至少一种框架:REACT或者VUE,掌握全家桶的应用 vue-cli、vue、vue-router、axios、vuex、vue element等 create-react-app、react、react-dom、react-router、redux、react- redux、dva、ant design等
掌握MVVM和MVC渲染的原理
掌握DOM-DIFF算法
掌握REDUX或者VUEX的原理
webpack方面自己能够进行简单的配置(能够看懂脚手架的配置项,并且自己可以修改成为自己想要的,例如:配置各种环境)
会一些node是加分项
…
视频、书籍、资料
现在网上关于前端的资料、网站、视频、书籍、文章等很多很多,有收费的,有免费的,有浅显易懂的,也有深入研究的...
如果你现在打算或者正在做前端开发,我相信你的手里也有很多的资源,或者你想要,我这也有很多(想要的后面可以加我微信)。但是资料虽多,你自己认真看的有多少?带来价值的有多少?成体系能让你具备阿里P5+的又有多少?大量实战案例的又有多少?...
自学是一个漫长的过程,需要人具备:自制力强、学习能力强等必要的因素,我看到过自学前端成才的(大部分都是来自于重点大学的研究生),但是和他们聊天的过程中,也发现一些相对比较重要的点,他们错过了很多。老师是结合自身多年的实战经验,再加上翻阅大量资料书籍,再加上调研很多群体,最后把重要的知识系统化,把复杂抽象的东西简单化,能够让大家在最短的时间内,得到最有用和最大的提升。当然一些垃圾的机构大家就可以忽略了。
这就和学车一样,你想会开车,就要去驾校学习,驾校的教练一般都是经验丰富的老司机。这个不仅仅是为了拿下驾照这么简单,更多的是学到真正有用的驾驶技能和交通法规,因为这些知识最后决定你的生命。我们很少会看到,自己在家买个车,没事开着玩的(虽然有但是很少),自己看看网上视频,自己多练练,车其实就会开了,但是自学的这种情况总会发生一些不可预料的危险。
有人说你拿学车的例子来讲是不恰当的,但是我认为本质上是相通的,培训的一个主要目的:花钱,在最短的时间,得到最大的收益。很多大学刚毕业或者即将实习的,感觉自己的时间还很多,无所谓啦,从过来人的角度和你讲:“哎,我哪能想到一转眼自己就从稚嫩的少年到孩子都能打酱油了!” 人这一辈子真正有效的奋斗时间也就十几年,时间是每个成年人最缺的东西了!!
到底是学后台还是学前端?
其实这个问题不想说的,因为说完后可能会挨揍(因为会把一些行业潜规则说出来)。这个问题很多即将毕业的大学生问我的多,知道我要写这篇文章,都叮嘱我一定要写一下,好吧,那我就冒着生命危险写写吧!
首先要强调,不管是后台开发(以Java/Python等为主),还是前端开发(以JS为主),都是非常好的职业,都会有很好的发展前景!我个人认为,这个问题上我是有很大发言权的,毕竟自己五年后台,五年前端,基本上都做过了!我先说一下前端和后台的主要责任和发展趋势吧。
娱乐一下:PHP是全世界最好的语言,O(∩_∩)O哈哈~,先让我笑10分钟...
【后台】 发展趋势:大数据分析和处理 技术栈:一门后台语言(以JAVA为例)、数据库(mysql/sql server/oracle...)、数据结构、算法、服务器(主要是操作系统)、网络、还要会点前端...我个人大致总结了一下后台的一些规律
需要学习的内容多,不仅要学习语言,还要学习很多其它的内容,所以学习周期长;一般来说,三年算入门,五年算熟练,八年算大神,十年及以上是专家(当然因人而异)
起步薪资低,门槛也高一些,但是越往后,如果你的技术成长快,薪资会有很大的提升,一般上限薪资会比前端高!
对数学有要求,越往高处走,要求的越高,数据结构和算法是必备技能,而且要研究的深入一些才可以。
对学历有要求,后台主要是为了研究大数据,如果你去不了大公司,非常遗憾的告诉你,你的技术生涯基本上就这样了,也就是个写业务的苦逼码农而已!(这是事实,你接不接受是你的事情!)
有的公司对性别也有要求:很多公司后台是不招女程序员的(即使招也是有限额的),因为后台对思维逻辑要求较高,一般女性同胞随着年龄增长,思维会弱化,而且后台加班还是比较严重的,女性同胞不太适合。(┭┮﹏┭┮呜呜...,被我媳妇发现这句话了,一会再接着写,先跪两个小时键盘...)
【前端】 发展趋势:各种端交互,包括手机端、PC端、电视端,以后可能还会有智能设备端、VR设备端等 技术栈:HTML5、CSS3、JavaScript(以及由JS引申的各种框架:vue/react/webGL/Node等)、一些HTTP基础和一些简单的算法等
我个人大致总结了一下前端的一些规律:
要学习的内容相对偏少,只要把原生JS研究透(最好研究V8渲染的机制等),剩下的在学习都相对简单一些了
起步薪资高,门槛低,但是上限薪资比后台低一些(暂时是这样的)!
对数学要求不大,毕竟是以交互和效果为主,操作复杂数据的机会不多,会点简单的数据结构和算法即可(当然有能力的深入研究总是好事)。
对学历要求也不是很高,大专及以上基本上就可以了,我的很多大专学生都去了一线互联网企业。
有的公司对性别也有要求:女同胞优先!(哈哈,为了调节办公室的阴阳比例!而且女孩子做事相对比男孩子细心一些!) ```
好了写到这,相信你自己应该知道如何选择了吧,我个人认为自己在后台的路上不会走到很高的位置(学历、数学、对技术的痴狂等,都不如我认识的那些真正技术大神们),虽然那时的我已经主带了几个百万级的项目。但是,那会还年轻,又不想轻易放弃技术,自己预感前端会发展起来,对JS也有点兴趣(摸着良心说实话:JS比较赚钱,后台只有真正的大神才赚钱),所以转行做前端开发了!
网络在线学习好还是去实体学习好?
其实这个很好回答,肯定是实体学习会更好一些。当然有一些同学因为一些不可抗拒的因素,无法来实体,只能在线学习,但是最后的成绩也是很不错的。
我来说一下实体和在线的区别吧!
1. 实体的学习氛围更浓
我不太相信大家能做到 “身处乱世还能静心读书”,如果能,早就清华北大了,而且也不大可能找培训班学习。大家之所以找培训班学习,还是自制力方面稍微欠缺一些,此时一个良好的学习氛围,同学之间相互沟通交流氛围,会让大家慢慢的养成良好的学习习惯。思想改变行动,行动改变习惯,习惯改变性格,性格改变命!
2. 老师可以第一时间了解大家的状态
我是15年全职做前端讲师的,这么多年虽然备课和授课上占据了大量的时间,但是总体来说,还是和学生“聊心”的时间更多。珠峰的教学理念是:“通过某种技术学习,引导人、激励人、提高人、改变人!”,所以我们更关注的是慈悲、渡人,正像鬼谷子所说,师者:传道、授业、解惑,传道为先,授业为二,解惑为三。
去培训班培训的学生,大部分都在某些好习惯上存在一些欠缺的地方,而大多数培训机构都认为,你来我这学习,只要把技术讲完即可。但是往往是一些不好的习惯,让大家很难静下心来,把技术学好,对于一些深入难理解的技术,很难吃苦坚持把他搞懂搞透!我们始终认为,成功没有捷径,你想在现在或者未来发展的更好,只能坚持努力。所以,当你懈怠了我们会鞭策你,当你快崩溃了,我们会安慰你,会告诉大家学习的方法,会做职业规划,会打鸡血.......真正做到:“亦师、亦友、亦兄弟”
大学有云:古之欲明明德于天下者,先治其国。欲治其国者,先齐其家。欲齐其家者,先修其身。欲修其身者,先正其心。欲正其心者,先诚其意。欲诚其意者,先致其知。致知在格物。物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。
其实还有一些其他的区别,这里我就不多说了。不管是在线还是实体,都希望大家努力学习,多和老师沟通交流,为了自己的未来拼一把!
我目前是在职前端开发,如果你现在也想学习前端开发技术,在入门学习前端的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我的前端学习交流裙:前面:851 中间:231 最后:348。里面聚集了一些正在自学前端的初学者裙文件里面也有我做前端技术这段时间整理的一些前端学习手册,前端面试题,前端开发工具,PDF文档书籍教程,需要的话都可以自行来获取下载。
当然还有很多问我的问题,今天就先写这么多吧,更多的是写给基础偏差一些的同学的。对于工作了两三年的同学,我后面再写一篇职业规划上建议的文章,道一下我这10年的坎坷路,以及自己在这行业的一些心得体会!