今天偶然看到一则视频,介绍前后端工程师与全栈工程师的职责和薪资,于是让我对全栈工程师这一好奇已久的高级职业名称产生了浓厚的兴趣。又联想到信管专业的重要就业方向——产品经理,于是借以此文讨论。
首先看百度百科的定义——
不难发现,全栈工程师是职业,而产品经理是职位。然而,这一定义准确吗?
Facebook宣称他们只招全栈工程师,我们来看下Facebook对全栈工程师的能力要求:
Layers of the Full Stack:
- Server, Network, and Hosting Environment.
- Data Modeling
- Business Logic
- API layer / Action Layer / MVC
- User Interface
- User Experience
- Understanding what the customer and the business need.
简单归个类:
- 1-4:服务器、业务建模等,算是后端工程师必备的技能
- 5:用户交互算是前端工程师必备的技能
- 6-7:关注用户体验和业务需求,这是否是产品经理职位的技能之一?
由此看来,全栈工程师确实是要在掌握前后端开发技能之外,具备产品经理的部分能力,能统筹整个项目的开发。或许从用户需求到产品落地的这条线上,产品经理站在靠近用户需求这一端、程序员站在靠近产品落地这一端,而全栈工程师则需要站在两者中间,对技能的要求或许更高了。
根据来自职友集的数据,全栈开发在近年的职位数目和薪资都处于上升趋势:
这不禁让我想到检索时瞥到的一个观点:“全栈”才是产品经理未来的出路吗?
或者,我们可以将视角放高一些,想要在职场上成为什么样的人,就需要去掌握相关的能力,其实无关乎你是产品经理、运营,还是开发工程师,也不必受在校学习所学专业方向的限制。
这也是陈华祥的观点:
市面上讲的全栈工程师,只是掌握全栈工程师技术部分,而全栈工程师,要全面掌握技术栈,即包括开发前的客户和业务理解能力,产品分析和设计能力,开发过程中的系统架构能力、代码开发能力、数据库能力、单元测试能力、部署能力等,开发后的运维、安全、性能提升等能力。这个是职业成长的路径,是职业成长之道。
所以,无论进入职场时是以靠近用户需求一端的产品经理身份,还是靠近产品落地一端的程序员身份,都需要通过学习和积累向另一端靠近。因为这正是职业成长的路径,也是产品经理与全栈工程师概念相互延伸的底层逻辑。