{T}

前端现状杂谈

前端工程师的困惑

前端工程师自身容易形成一些误解,常见的有两个

  • 工作年限 = 级别(能力)

  • 框架/工具使用得越多越好

持有第一种误解,只要在前端这个领域工作的年限久了,就自然而然成为了高级工程师。直到工作数年后突然发现日子不好混了,自身学习能力又不够,遭遇所谓的中年危机

要避免工作年限成为劣势,建议每年定期回顾自己所做的工作,以此来判断你是在舒适圈内做熟悉、重复的事情,还是在不断地挑战提升自己

第二种误解比较可怕,一般持有这种误解的工程师表现为使用过多种技术,但都只停留在表面,会调用 API 而已,杂而不精。一方面这种工程师所掌握的知识太浅,任何一个初级工程师,给予一定的时间和练习机会都能达到他的水平;另一方面也暴露了他没有深入学习的能力和精神,而这也是成为高级工程师的重要阻力

例如下面的工作经验简述:

  • 使用 zepto.jsCSS3 动效开发过一些移动端活动页面

  • 使用 ReactAnt Design 开发过一个医药商城 Web App 的核心模块及后台管理页面

  • 熟悉 Git 工具和代码管理流程

  • 熟悉 webpackGulp.js 等工具的使用

  • 自学 Node.jsDockerMongoDB 能编写一些小项目

如果是工作 1 年的工程师,那么会让面试官有些小惊喜;如果工作了 3 年,应该也还算不错。但如果已经工作 5 年了,面试官可能要好好考察他一下了

对于工作 5 年的工程师,面试官最看重的是工作能力,而这里面并没有很好地体现出来。虽然简历中表明他使用过主流框架和工具开发过项目,但从描述上看,项目本身并不复杂,且看不出其熟练程度。(“熟练”这种主观性的自我描述建议少用,很容易适得其反,技艺越是精深的工程师对 “熟练”、“精通” 这种描述越谨慎,因为他们知道的越多,发现未知的也更多,同样也知道 “人外有人” 的道理)

另外,前端工程师之间的能力和薪资存在着 “贫富分化” 的现象,而且随着时间的推进在不断加剧

薪资越高的工程师往往学习能力越强,从事着公司的重要岗位和工作,其成长速度也越快;而薪资低的工程师则往往学习能力有限,从事着低价值、重复性高的工作,也更容易困于瓶颈难以突破

综合来看,前端工程师在职业发展和技能提升上,主要是被下面三个问题所困扰

  • 前端知识点太多
  • 前端技术更新速度快
  • 前端应用场景越来越复杂

Node.js 出现的时候,前端工程师已经可以涉足后端,甚至独立开发整个 B/S 架构的系统;而当混合应用、小程序等技术出现时,则意味着前端工程师可以开发多个终端系统

不同开发场景下的实现目标、API 及调试工具又各有差异,比如微信小程序和钉钉小程序就提供了各自独立的开发工具,浏览器环境下为 JavaScript 提供 BOMDOM,而 Node.js 环境下提供的是 fsnet 等模块

建立合理的知识结构

合理的知识结构既指知识框架的可扩展性,同时也指每个知识点的完备性

知识框架的可扩展性是指,在尽量少的调整自身已有知识结构的情况下,就可以不断将新的技术知识吸纳进来。就像架构师搭建的项目框架一样,能帮助开发工程师方便快速地完成新功能的开发。而差的知识框架就如糟糕的项目,会随着功能增加而变得复杂臃肿,最终不得不将代码推翻重构

知识点的完备性是指,每个知识点不应停留在只会调用接口函数的程度,而是深入其实现原理,然后能加以运用,从而构建更复杂更具通用性的项目

培养可复用的工作能力

除了最基本的能看懂文档、调用接口的编程能力之外,还着重帮助你提升以下 3 方面的能力

  • 探究能力,深度探究技术背后的原理,并且能结合实践灵活运用

  • 解构能力,能够分析和分解复杂问题,并一步步解决

  • 归纳能力,建立知识点之间的联系,并找到其共性,从而达到举一反三的目的。 不管你是大厂螺丝钉,还是小厂顶梁柱,这些能力都将帮助你在晋升的道路上快步前行

前端职业其前景不可限量:服务端有 Node.js,客户端有 Electron,移动端小程序又以 JavaScript 作为主语言,PWA 更有颠覆原生 App 之志,更重要的都是跨系统或者跨端的

前端技术的光明前景也吸引了更多人加入到前端工程师的行列,各种前端新技术、新框架的出现,也在考验前端工程师的能力。面对 “前有险阻、后有追兵” 之势,如何提升竞争力,建立自己的“护城河”,是每一位优秀的前端工程师都在思考的问题r