天天,100offer的HR群都有人在吐槽招不到前端工程师。实话说对这些需求,Betty也无能为力,由于在供不该求的前端招聘市场上,优秀的前端工程师才是有话语权的那一方。前端
放眼全球,不只在国内的互联网行业,在国外,前端工程师同样是需求旺盛、供不该求的香饽饽。web
举个例子,根据indeed.com抓取的数千家网站的职位显示:目前前端的热门岗位——「HTML5」是需求增加最快的开发岗位,在全部开发职位中排名第一,MongoDB和iOS紧随其后位列第2、第三。算法
可见,HTML5能够说是最热门的前端岗位了,在2010年和2014年末有两次爆发性增加,如今在美国的岗位需求甚至超过了iOS。数据库
因此市场上优秀的前端工程师相对较缺乏,是一个世界性难题。编程
可能不少人认为前端开发和web开发相似,而web开发已经有20多年的历史,因此前端并非一个新领域。然而,前端工程师的概念中的「接口技术实现和用户体验做为一个专业的工做领域」,却无疑是很新的。大概几年前,前端开发的技术增加迅猛,以下图所示:后端
15年或更久之前,web的可视化设计和技术实现所须要的资源是平均分配的。随着网站的发展——网站不只是一个登陆页面,工程资源的需求愈来愈明显。人们开始专门学习网站专用的JS、后端技术、UX、数据库,甚至系统设计。浏览器
今天,一个像AirBnB/Facebook/Quora的Web应用程序,投入的工程资源比设计资源多得多。换句话说,现在,作出网页的视觉设计比技术实现要更快,因此当今的web需求要求更多的工程师供应。缓存
很显然,要处理大量的Web应用程序需求,技术任务就要进行分类,以便于多人同时处理网站请求。事实上如今已经不可能一我的快速地解决全部的技术细节了。安全
如今还有一类人是独自处理一个Web应用程序的全部问题,即「全栈工程师」,可是优秀的全栈工程师一样如大熊猫通常数量稀少。服务器
如今,一个创业公司想要成功,几乎要覆盖一个Web应用程序的诸多技术方面:前端、后台、DBA、运营等。虽然已经有一些服务可让企业购买登录页 面的前端模块和组件;可是若是你想要创造一些真正的Web应用程序,除了求助前端工程师,别无他法,就像你要创立一个品牌你也绕不开请一位设计师同样。
大多人都认为前端开发是一个「相对于其余模块来讲更简单的领域」,在他们心中的前端工程师是这样工做的:
一、把Photoshop文件、图片或者线框作成一个页面;
二、偶尔设计Photoshop文件、图片或者线框;
三、用JS实现动画、过渡效果;
四、用HTML和CSS编程,实现网页的内容和形式。
事实上,前端工程师在作的是:
一、在设计师和工程师之间建立可视化的语言;
二、根据设计稿定义一组表明内容、品牌和功能的组件;
三、为Web应用程序的框架、需求、可视化的语言和规格设定基准;
四、根据设备、浏览器、屏幕、动画来划分web应用的工做划分;
五、用QA基准来保证指南来确保品牌忠诚度、代码质量、产品标准;
六、调节Web应用程序的样式,包括间距、字体、标题、图标、布局等等;
七、根据不一样分辨率、横屏竖屏等,调节Web应用程序的样式;
八、标记 Web 应用程序,使之语义化,SEO 友好;
九、经过API获取内容要考虑友好性、电池消耗性、设备和客户端的特性;
十、开发客户端要考虑动画的流畅、延迟加载、交互、应用工做流程,大多数时间用来考虑渐进加强和向后兼容的标准;
十一、保证后台链接安全,采起跨地资源共享( CORS )的程序考虑,防止跨站点脚本( XSS)和跨站点请求伪造( CSRF ) ;
十二、最重要的是,尽管有严格的期限、利益相关者的要求,以及设备的限制,不管如今仍是未来永远是「客户第一」。
为了实现上述目标,前端工程师采用了从可视化到编程的多种工具 ,甚至有时要照顾市场、 UX 到内容tweakes等等。
这或许是难以招到优秀前端工程师最明显的缘由。因为前端工程师的入门门槛很是低,JS、CSS、HTML并非很难入门掌握的语言,彷佛只要花一点时间,谁均可以经过网上教程和书本学会它。对的,前端工程师市场就是被这些浅尝辄止的家伙搞坏的。
糟糕的前端工程师是这样作事的:
一、滥用 JavaScript 库,由于他们实际上并不了 JavaScript 的核心(e.g. 一切都用 jQuery);
二、滥用 JavaScript 插件,无节制的复用别人的代码,哪怕本身根本读不懂;
三、不看需求、设计,也不作比较或评价,就给 Web 应用程序添加 CSS 框架,却只用到框架的一小部分;
四、认为只要用了 CSS 框架,网站就是响应式的,或是对响应式设计的意义理解不到位;
五、一边在说着「响应式 Web 设计」,却对服务器端解决方案技术一无所知;
六、用 CSS 编程时不作预处理器、命名规范等;
七、忽视性能、内存泄露(并不理解内存泄露的真正含义),不会检测代码;
八、不会用指标衡量一个产品,或者这种指标旨在本身的电脑、浏览器、设备有效;
九、忽视 30 年来的软件工程技术,闭门造车。
要知道,入门容易精通难,计算机和软件的基础对你用JS或浏览器编程都很是重要。web多是最有影响力的平台和环境之一,在那里执行的程序必须被当心对待。一位优秀的前端工程师不只要考虑web技术和语言,而且还要了解全部不一样的组件、系统和概念。
如下是优秀的前端工程师在即时面对普通的任务也会作的事情(这才是市场急需的前端):
一、DNS 解析,使用 CDN,把资源请求分散到多个域名上去;
二、理解 HTTP Headers (Expires、Cache-Control、If-Modified-Since)
三、Steve Souders 的全部高性能网页优化规则(参考:High Performance Websites 一书)
四、如何解决 PageSpeed、YSlow、Chrome Dev Tools Audit、Chrome Dev Tools Timeline 等工具列出的全部问题;
五、什么时候把任务传到服务器,什么时候适合传到客户端;
六、缓存,预取和延迟加载技术的使用;
七、原生 JavaScript,知道什么时候从头开始作,什么时候参考别人的代码,同时能够评估这样作的优缺点;
八、 最新的 MVC Javascript 库知识以及用法;
九、CSS 标准的知识与用法;
十、JavaScript的计算机科学部分的知识(内存管理,垃圾收集算法等等)
换句话说,若是说精通HTML+CSS+JS,了解后端知识,只是60分的合格前端;那么要想成为受追捧、拿高薪的80分优秀前端,要对业务需求和、架构设计有真正的运用;而100分的顶级前端,则必需要可以兼顾技术和设计,更接近「之前端开发为主的全栈工程师」了。
如今,前端工程师终于史无前例的在web中占有了一席之地。随着多设备、浏览器和Web标准的演变革命,前端正在成为兼顾逻辑、性能、交互、体验的综合性岗位。
虽然如今互联网行业广泛缺乏前端工程师,可是咱们相信愈来愈多的人将会加入前端的大军。不只是由于大多数前端工做提供的优渥薪水和办公环境,也是由于web中的前端编程变得愈来愈有挑战和意义。