什么是前端工程师?前端工程师需要掌握什么技能?
前言
前端工程师是一个出现了10年左右,而颇受重视则是最近这五六年的事情。受到重视到前端从业人员井喷,也就是这一两年而已。因为前端工程师这个职位出现得太晚,导致各大学校均没有系统的相关教学,我们所熟知的各个大牛均是自我研究自我学习的。而随着google
推出v8引擎以来,尤其是gmail
对ajax
的应用,再随着jquery
的出现,解决了各大浏览器的兼容问题,而nodejs
则将js
推向服务器端,javascript
从一个边角料的语言变成了一个性能强劲,前后端通吃的强大语言。
技术的发展紧紧是一个方面,更重要的是这几年万众创新,互联网+的概念深入人心,因此大量资金涌入互联网领域,大量的创业公司如雨后春笋一样涌出。大量的公司需要前端工程师的加盟,因此大量后端工程师开始转向前端。
而这些后端工程师因为其深厚的编程思想,他们完全无法忍受毫无逻辑可言的html+css+js
的原始编程状态,因此又开发了各种前端工具以及语言。如针对html
的jade
模板引擎,针对于css
的less
、sass
、stylus
等。而为了便于项目部署,又有了所谓的amd
、cmd
标准。一直发展到browserify
、webpack
等打包工具。而自从Misko Hevery
开发了AngularJS
之后,破天荒一样的整出了双向绑定的概念,自此,前端江湖真是百花齐放,争奇斗艳,一发不可收拾。
晕了,真的晕了。难怪真阿当同志在2016年年末在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
语言。
目前在后前端的路上奋起直追。说我的前端经验,12年从业。但是真正在js
语言上用功,也就是这两年的事情。所以,我是一个老菜鸟。
废话不多说了,本文由FungLeo原创,允许转载,但转载必须附注首发链接。谢谢。