首先插播一条好消息,新书《前端程序员面试笔试宝典》已于9月在各大平台上架,现免费送出4本(看到大家热情这么高涨,幸运人数已提升至4人),具体参与规则如下所列:
(1)在文章后面的评论中写出想要获取此书的理由,随便什么都可以,不限制字数,并且一个用户的多次评论只算作一次。
(2)活动截止日期为北京时间 2018 年 10 月 18 日 23:59:59,以评论时间为准。
(3)在活动结束后随机抽取 4 名幸运网友。
(4)获赠名单将在文章中公布,并会@每位幸运网友。
(5)幸运网友私信给我收件地址、姓名和手机号。
(6)全国包邮(不含新疆、西藏、港澳台)。
(7)保留最终解释权。
恭喜四位幸运网友,他们是失落的野火、烈焰重生、Angel_Kitty和蜀北乔少恭 。
下面回归正题,来谈谈前端的方方面面。
一、前端的市场和待遇
当前市场对于前端工程师的需求可用四个字总结:求贤若渴。而优秀的前端工程师却非常稀缺,这主要由于以下原因造成的:
(1)因为前端技术栈深,所以需要工程师对各种知识能够融会贯通,这需要花费很多精力和时间。
(2)近年来随着智能机普及,带动了移动互联网的高速发展,一定程度上导致网页需求量巨大。
(3)现在的Web越来越庞大复杂,移动APP的Web开发优势也越来越明显,需要更多的工程师参与研发。
(4)前端入门不难,导致目前市面上充斥着初级工程师,有的甚至初级都算不上,更加凸显了优秀工程师的稀缺。
(5)全日制学校不会系统的教前端,目前学前端只能是自学或参加培训机构。
由于缺口巨大,前端待遇也是水涨船高。目前,北京、上海、深圳和广州等地的前端薪资一路上升。但要取得高薪,还是需要从自身出发,提升技能深度,完善知识面,打好计算机基础。
二、前端的未来和自身发展
在未来,HTML5、CSS3和ES6标准趋于稳定;各种高效工具会不断地出现,解决特定场景下的问题;浏览器平台会持续开发新特性;HTTP1.1将会过渡到HTTP2.0;越来越多的APP会用前端开发方案,Hybird模式或React Native;网页的动画性能将会得到更好的优化。种种迹象表明,前端工程师将会发挥越来越重要的作用。
前端与后端有一个很大的不同,就是每年都会出现各种新技术、新思想。前端工程师需要不断的学习才能跟上时代的潮流,首先要打牢JavaScript、CSS、HTML、网络、正则和设计结构的基础,学会沟通、协作和辅助工具(Fiddler等)。然后在掌握基本编码后,引入设计模式、编程思想,重构代码,使得代码更合理、易于维护,而且还要会一门后端语言。接下来就要完善自身的软技能了,如下所列:
(1)发现问题,多种解决方案,总结问题,分享问题。
(2)深入研究性能分析,提升用户体验,理解产品,提出自己的专业建议。
(3)站在更高层面,架构整个项目,使得可扩展、易用、稳健、安全。
(4)穷则独善其身,达则兼济天下。分享心得体会技能,布道授业解惑。
三、企业的要求
前面的修炼其实就是为了能加入心怡的团队,而了解企业招聘要求变得尤为重要,通常对前端工程师会有如下要求:
(1)易于沟通,有责任心和团队协作精神,具备独立解决问题的能力。
(2)精通JavaScript(ES5、ES6)、HTML/HTML5、CSS/CSS3、浏览器兼容、页面重构等技术。
(3)对JavaScript开源库(JQuery、Zepto等)有一定的经验。
(4)熟悉网络原理、数据结构、基础算法、设计模式。
(5)熟练使用各种前端工具,Chrome Dev、Fiddler等,能搭建前端自动化构建工具(Gulp等)。
(6)能承受一定工作压力,对前端技术有持续的热情,学习能力强,思维清晰,逻辑严密。
(7)对前端性能优化、用户体验、流程交互有深入理解,良好的编码规范和代码组织能力。
(8)理解MVC或MVVM等开发模式,以及其原理。
(9)参与开源项目,并贡献过代码,了解一门后端语言(PHP、Java等)。
(10)了解网络安全,能够有效防范XSS、CSRF等常规攻击。
(11)使用过新技术(VUE、React等)。
(12)从事过或了解当前公司涉及的行业。
四、面试的准备
要成为一名炙手可热的前端工程师需要经历一段漫长的沉淀过程,而企业面试仅仅是几个小时。为了能在这短短的几小时中脱颖而出,就需要有针对性的准备,此处分享面试中高频出现的四个方面的知识点。注意,都是简单易懂的基础知识点。
1)HTML
2)CSS
3)网络
4)JavaScript
这四张思维导图犹如树的枝干,只是简单的勾勒出了各个高频知识点,如果要了解这些知识点的具体内容,可以参考《前端程序员面试笔试宝典》,此书就是围绕这四张思维导图中的知识点展开的。
当然,要想走的更远,还需具备其它各类知识,例如数据结构、算法、数学、计算机组成原理、设计模式、前端框架(React、VUE等)、前端工程化(Gulp、Webpack等)、性能优化、正则和安全等。