现在,几乎整个互联网行业都缺乏前端工程师,不仅是创业公司,上市公司甚至巨头也是如此。没错,优秀的前端工程师比大熊猫还稀有。在国外,前端工程师也是供不应求。例如,根据indeed.com爬取的上千个网站的职位:当前的前端热门职位——“HTML5”是需求增长最快的开发职位,位居所有开发职位之首,其次是MongoDB和iOS第二和第三。道理我都懂,可为什么还是没有找到满意的工作呢?其实前端一点也不简单。很多人认为前端开发是一个“相对于其他模块更简单的领域”,例如:1.将Photoshop文件、图片或线框图放入网页;2.偶尔设计Photoshop文件、图片或线框图;3、使用JS编程为网页制作动画和转场效果;4.使用HTML和CSS编程确定网页的内容和形式。其实前端工程师是这样的:1.创造设计师和工程师之间的视觉语言;2.使用视觉设计定义一组代表内容、品牌和功能的组件;3.Web应用程序的约定、框架、要求、视觉语言和规范设置底线;4.定义Web应用的设备、浏览器、屏幕和动画的范围;5.制定质量保证指南,确保品牌忠诚度、代码质量和产品标准;6、为Web应用设置合适的行距、字体、标题、图标、余粮、padding等;7、为Web应用设置各种分辨率的图像,基于设备的物理模型,同时维护设计指南;8.使用帐户语义、可访问性、SEO、模式、微格式来标记Web应用程序;9.使用友好、低消耗、设备和客户端感知的方式连接到API并获取内容;10.开发客户端显示流畅的动画、转场、懒加载、交互、应用工作流的代码,大部分时间用于考虑渐进增强和向后兼容标准;11.确保后台连接安全,采用跨区域资源共享(CORS)程序考虑,防止跨站脚本(XSS)和跨站请求伪造(CSRF);12.最重要的是,尽管有严格的截止日期、利益相关者要求和设备限制,但它始终并将永远是“客户至上”。为了实现上述目标,前端工程师使用了从可视化到编程的各种工具,有时甚至负责营销、用户体验到内容调整等。和优秀的前端有这么大的差距吗?由于前端工程师的入门门槛很低,JS、CSS、HTML都不是很难掌握的语言。通过在线教程和书籍来学习它们似乎只需要一点时间。然而,我发现事情并不简单。自学是这样的:1、滥用JS库,因为它其实并不了解JS的内部结构(比如什么都用jQuery);2、滥用JS插件,即使完全看不懂也照搬别人的代码(如jQuery.doParallaxPls.js);3、在web应用中加入CSS框架,但只使用了5%的CSS/JS,没有看到任何需求、设计、对比评估;4.认为只要加上CSS框架,网站就可以了”5.一边说“响应式网页设计”,一边对服务器端技术一窍不通;6.用CSS编程时,不管预处理器,命名规范,等,但使用不合适的selector/ids/magicnumbers等;7.忽略性能,内存泄漏(不理解内存泄漏的真正含义),不会检测代码;8.不会用指标来衡量一个产品,或者这样的指标都是为自己的电脑,浏览器,设备设计的有效;9.忽略软件技术。上手容易,精通难。电脑和软件的基础对于JS的使用很重要或浏览器编程。Web可能是最有影响力的平台和环境之一,在其中执行的程序必须小心对待。一个好的前端工程师不仅考虑Web技术和语言,而且了解所有不同的组件,sys项目和概念。优秀的前端工程师是这样做的(这是市场急需的前端):1.DNS解析,使用CDN和多个Hostname作为资源请求的一部分。2.HTTPHeaders(Expires,Cache-Control,If-Modified-Since)3.SteveSouders(HighPerformanceWebsites)的所有规则4.如何解决PageSpeed,YSlow,ChromeDevToolsAudit,Chrome显示的所有问题开发工具时间表;5.何时向服务器和客户端发送任务;6、使用缓存、预取和加载技术;7.原生JS,知道什么时候从头开始,什么时候去寻找别人的代码,并且能够评估这样做的优缺点;8.现代MVCJavascript库(例如AngularJS、EmberJS、ReactJS)、图形库(例如D3、SnapSVG)、DOM操作库(例如jQuery、Zepto)、延迟加载或包管理库(例如RequireJS、CommonJS)、任务管理器(如Grunt、Gulp)、包管理器(如Bower、Componentjs)和测试(如Protractor、Selenium)相关知识和使用;9.CSS标准、现代约定、策略(例如BEM、SMACSS、OOCSS)的知识和使用;10.JS的计算机知识(内存管理、单线程的性质、垃圾回收算法、超时、作用域、提升、模式)也就是说,如果你精通HTML+CSS+JS,了解后端知识,你只有60分才算是合格的前端;80分的优秀前端,一定有真正的应用业务需求和架构设计;而100分的顶级前端,必须能够兼顾技术和设计,更接近于“专注于前端开发的全栈工程师”。没有前端是假的,没有优秀的前端是真的。现在,前端工程师终于以前所未有的方式在网络中占有一席之地。随着多种设备、浏览器、Web标准的演进和革命,前端正在成为兼顾逻辑、性能、交互、体验的综合性工作,前端编程也越来越具有挑战性和意义.你还想在迷茫无聊的自学中浪费时间吗?
