前端工程师所应具备的技能在业界内有一个普遍的共识,尽管不同企业对前端工程师的能力要求可能略有不同,但其核心理念是相通的。
下图可以大致阐述不同级别的前端工程师的技能结构,小伙伴们可以根据自己的实际情况找到一条合适的职业发展路径。
接下来,我们来一起看看前端技能的发展脉络。
首先来谈一谈助理工程师,可以对标阿里的P4级别。
该职位要求具备基础的编程技能,基础编程技能指的是能够熟练地使用计算机编程语言来表达各种逻辑。一般来说,计算机专业的大学毕业生应该已经掌握了这种技能。
助理工程师的职责是“能够在辅助下完成工作”,这意味着并非所有企业都会招聘助理工程师,因为他们严格来说还不能独立工作。那些招聘助理工程师的公司,通常都是看中求职者的潜力,并希望他们能够迅速成长。
前端工程师对应阿里的P5级别。
该职位要求掌握基本的前端技能,基本前端技能指的是“能够综合运用HTML、JavaScript和CSS来实现任何界面和交互需求”。
这个“任何界面和交互需求”似乎要求很高,但如果你有前端开发经验,就会知道这是前端开发的基础技能——如果实在没办法,还可以使用图片作为备选方案。
实际上,这个级别的工程师能力差异很大,比如界面虽然做出来了,但兼容性如何、代码的可维护性怎么样、离开框架能否独立开发、是否能够实现语义与表现的分离、开发过程中是否能够有效沟通等,这些问题都会影响到一个前端工程师的潜力。
一些优秀的公司在招聘这个级别的工程师时,除了“基本的前端技能”之外,还会对上述问题有一定的要求。
对于助理前端工程师和前端工程师来说,在能力方面,主要的要求是编程能力;在知识方面,要求掌握一个“可用”的最小知识集合。
让我们继续深入了解资深前端开发工程师,这一职位对应于阿里巴巴的P6级别。
资深前端工程师需要开始关注并解决项目中的问题。这些问题可能包括别人解决不了的技术难题、容易出错的代码、无意义的重复工作,或者在业务上难以找到合适的交互方式等。
实际上,对资深前端工程师的要求相当灵活。我上面提到的只是一些例子,例如,组件化可以解决重复劳动和开发耦合问题;工具的应用可以解决很多问题,比如代码生成工具可以提高开发效率,代码检查工具可以提高代码质量;性能优化可以提升业务价值。这些都是资深前端工程师可以涉足的领域,而且只要在其中一两个方面做得出色,就足以达到资深前端工程师的水平。
此外,从这个级别开始,对架构能力和工程能力也有所要求,尽管还处于初级阶段。一些具有天赋的开发者可以通过直觉达到这个水平。
接下来,我们来谈谈前端专家,这个职位对应于阿里巴巴的P7级别。
在这个级别,从图上我们可以看到要求有所不同,例如组件变成了组件体系,工具变成了工具链和持续集成体系,性能优化变成了性能体系。
这些变化不仅仅是名称上的,更重要的是工作内容的变化。这个级别与资深工程师的主要区别在于,从解决单一问题转变为采用系统性的方法,从服务个人转变为服务整个团队,从一次性的成果转变为持续的贡献。
例如,资深工程师可能会开发一些组件,并在自己的项目中使用它们,从而提高代码的可维护性和复用性。然而,前端专家需要考虑制定组件规范,并将其推广到整个团队,还需要进行培训,考虑组件的开发、管理和下线流程。
资深工程师在性能方面可能只需要优化自己的页面,但前端专家则需要考虑数据采集、报表和监控、制定检查清单、与工具结合以及确定性能指标等。
由于这个级别对架构能力、工程技能和软技能的要求非常高,因此这是一个相对难以跨越的阶段。
最后,我们来探讨高级前端专家这一职位,它对应于阿里巴巴的P8级别。
从图上我们可以看到,这个级别在发展方向上又将之前的多个领域重新整合起来。高级前端专家的关键能力在于审时度势,需要在前端专家所掌握的各个领域中,综合考虑并制定出一套适合自己所在团队的解决方案。
例如,如果是负责企业内部系统的前端团队,可能对性能的要求就不会那么高;而电商前端团队由于运营活动频繁,就需要一个强大的组件体系。这里并没有固定不变的规则,完全取决于个人的判断和把握。
在这个级别,对工程能力的要求非常高,而且即使是不直接管理团队的高级前端专家,也必然会涉及到一定的管理能力。这要求高级前端专家不仅要在技术层面有深入的理解和实践,还要具备战略思维和领导力,能够引领团队解决复杂问题,推动项目向前发展。
在讨论了前端工程师各个级别的技能模型之后,让我们回到最初的问题:
“一个前端工程师究竟需要掌握哪些技能?”
要回答这个问题,首先需要根据个人情况来定位自己。在前端技能模型中,对“知识”并没有严格的要求,尽管不同公司的岗位可能有特殊要求,但市场是广阔的,因此大家不必过于担心应该学习哪些知识。
此外,“前端知识”是一个垂直模块,它可能不会直接帮助你晋升到更高的级别,但它可以提升你的潜力,让你在未来有更远的发展。
目前,许多同学更加关注前端岗位的晋升。我认为,前端进阶的核心要素,更多地取决于你的能力,特别是在向前端高级工程师迈进的过程中,编程能力、架构能力和工程能力尤其重要。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/89312.html