什么是前端工程师?前端工程师需要掌握什么技能?

前言

​google​​推出v8引擎以来,尤其是​​gmail​​对​​ajax​​的应用,再随着​​jquery​​的出现,解决了各大浏览器的兼容问题,而​​nodejs​​则将​​js​​推向服务器端,​​javascript​​从一个边角料的语言变成了一个性能强劲,前后端通吃的强大语言。

技术的发展紧紧是一个方面,更重要的是这几年万众创新,互联网+的概念深入人心,因此大量资金涌入互联网领域,大量的创业公司如雨后春笋一样涌出。大量的公司需要前端工程师的加盟,因此大量后端工程师开始转向前端。

​html+css+js​​的原始编程状态,因此又开发了各种前端工具以及语言。如针对​​html​​的​​jade​​模板引擎,针对于​​css​​的​​less​​、​​sass​​、​​stylus​​等。而为了便于项目部署,又有了所谓的​​amd​​、​​cmd​​标准。一直发展到​​browserify​​、​​webpack​​等打包工具。而自从​​Misko Hevery​​开发了​​AngularJS​​之后,破天荒一样的整出了双向绑定的概念,自此,前端江湖真是百花齐放,争奇斗艳,一发不可收拾。​​csdn​​上痛心疾首的指出,这已经乱到乌七八糟,再不是他熟悉的那个亲切的前端世界了。世界潮流浩浩荡荡,不会因为真阿当这样的前朝遗老就停止发展的步伐。在​​npm​​上各种组件、框架、工具每天都在上架,已经上架的不断的在升级,甚至,有的升级是以小时计!

而由于前两年前端工程师的紧缺,导致薪资颇为水涨船高,大量不明所以的路人涌入前端行列,以至于在知乎上关于如何入门前端,前端学五个月能不能工作,以及各种咨询如何从事前端行业的奇葩问题如沙滩的贝壳一样俯身可拾。

在这混沌乱世,我不禁要问,到底什么是前端工程师?到底掌握什么技能才能称之为前端工程师?

什么是前端工程师?

​html​​+​​css​​就是前端工程师了。我把前端工程师分为以下两类:

前前端工程师

​html​​+​​css​​的网页。也就是说,很多所谓的老前端工程师,或者自认为学点html就能成为的前端工程师,只不过是前前端工程师而已。​​html​​、​​css​​、​​js​​三门语言中,很多人认为困难的是​​js​​语言。对吗?对也不对。​​js​​语言的困难在于他是一门真正的编程语言,所以写​​js​​编程是需要逻辑能力的。而这个逻辑能力是相当一部分人欠缺的。所以认为​​js​​语言难也就不足为怪了。但是,我认为​​js​​语言是这三个语言中最简单的。为什么呢?正因为它是一门逻辑语言,所以他是可以推导的。如果你本身逻辑能力不差,又或者学习过其他编程语言,入手​​js​​语言并非一个很困难的事情。​​html​​、​​css​​这两个所谓的语言。很多工程师嘲笑前端工程师说,​​html​​、​​css​​算编程语言吗?

不算!

正因为其逻辑不强,是一个非常松散的语言状态,才导致其无比之难。你没有什么可以推导的。这样写也行,那样写也行,无论怎么写,只要能实现效果就行。问题是,优雅吗?

好比几乎所有中国人都认识3000个以上的汉字,任凭谁都能写点东西,但是真正能够让人感觉写得好的,寥寥无几。这是两门感性的语言,和其他编程语言完全不是一码子事儿,所以,这才是真正的难语言。

​div+span​​就可以给自己戴上一个所谓的前端工程师的帽子,然后就月薪过万,当上CEO,迎娶白富美走上人生巅峰了吗?

做梦去吧!

​html+css​​这两门语言深入进去学习,也是颇有可为的。​​angular​​、​​react​​、​​vue​​这些东西。所以前景还是很美好的。

但如果你是个抠脚丫子的糙汉子,咱还是别了,咱们有重体力活儿可以干!

后前端工程师

后前端工程师?上面的前前端工程师其实就是原来的前端工程师,而这两年炒得火热的前端工程师实际上是把原来属于后端工程师的活儿给抢过来了。所以我把它命名为后前端工程师。

​json​​数据交互格式,了解至少一个前端框架,当然​​js​​语言基础绝不能差。了解项目构建,路由设定,数据库原理,服务操作等等一系列的基础知识。

具体负责的工作就是将前前端工程师开发好的网页,基于某种前端框架,与后端接口对接,并部署调试等。当然,在大部分公司,是不会把前端工程师分成前前端工程师和后前端工程师的,所以,页面制作的工作也需要由你来实现。

这才使真正的前端工程师。

当然,如果你希望往全栈去发展,那么服务端Node.js编程也需要掌握,我大前端牛逼啦!站在泰山之巅振臂一呼,还TM有谁?!

如果你真心如此牛逼,那早已走上技术巅峰了。只是,纵观火热的前端圈,又有几人能达到如此境界呢?高处不胜寒啊!

我想从事前端,我该如何入手呢?

​html+css​​是必须掌握的,就好比学习中文一样,你必须先掌握3000左右的识字量,才可以说略懂中文。但是,在掌握了​​html+css​​基础之后,如何发展,取决于你自身的特点。如果你比较年轻,大学刚毕业,自认为逻辑能力不错!,那么建议直接进入后前端的学习,深挖​​js​​语言,再根据你所在的公司的实际情况,选择一个主流的前端框架进行深入,在​​js​​不断深入的过程中不断的开发项目,如果能遇到一个好的公司,好的团队,你将快速的提升自己的技术能力,建议你从后前端的不断深入,然后不断提升前前端技能,最终达到真正的大前端。将来往全栈发展都是很有希望的。如果你比较年轻,喜好文学,感性浪漫,建议深入学习​​html+css​​,再附带了解​​js​​语言,如果在一个不错的团队中,可以接触到那些后前端非常厉害的同事,你未必能如它在这些方面如此牛逼,但是你依然可以进步不小。不过,​​html+css​​是毫无捷径可言的,都是慢慢打磨出来的实力。你在​​js​​方面可能确实不如别人,但是要做到,同样的一个页面,你写的​​html+css​​就是比别人的简洁,整齐,优雅,那么你自然有你的存身之道。建议从前前端入手,深入后再往后前端靠拢,具体能提升到何种境界,要看你的天赋与努力的。我是后端工程师转前端,咱别费那个劲了,以你多年的后端经验可想而知,你的​​html+css​​水平一定是垃圾,就是因为你这样的后端工程师的存在,才导致前端工程师奋起争先,往大前端发展的。不过没有关系,你可以扬长避短,利用你无比牛逼的逻辑能力与后端变成语言天赋,直接入手​​js​​语言以及某一个前端框架。推荐​​angular​​或者​​react​​。因为这俩框架就是你们后端写的。你会无比亲切。至于​​html+css​​这种小事情,教给别人去写啦!当然,你还可以深入研究​​node.js​​,往服务端发展,也是很不错的职业栈。

我是什么类型的前端?

吹了这么多牛逼,肯定有很多人不服。好,我简单说下我的情况。

​html+css​​。目前从事​​vue​​技术栈的开发工作。04年入行从事网页切图仔的工作,国内第一批研究所谓​​div+css​​的人。擅长​​seo​​优化网站,语义化书写网页。12年以前没有关心过​​js​​语言。​​js​​语言上用功,也就是这两年的事情。所以,我是一个老菜鸟。