全栈的边界?
目前,业界对全栈的认识普遍缺乏明确的定义,有人认为全栈 = 前端开发 + 后端开发,也有人觉得全栈 = 全能,一个人能单独搞定一个产品,包括原型设计、UI设计、前端开发、后端开发、部署上线等一系列流程。这也是因为业界对全栈的边界还没有任何明晰的界定。也因此,很多想往全栈发展的程序猿们要么不知从何开始,要么努力的方向错了,要么走了很多弯路。比如,有些程序猿将自己发展成了什么都懂一点,但没有一门精通的庸才,我前几个月面试过的人员中就有好几个。所以,我认识到对全栈定义好清晰的边界很重要。当意识到这一点之后,我就想起了吴军对工程师的五层分级,如下:
第五级:能独立解决问题,完成工程工作;
第四级:能指导和带领其他人一同完成更有影响力的工作;
第三级:能独立设计和实现产品,并且在市场上获得成功;
第二级:能设计和实现别人不能做出的产品,也就是说他的作用很难取代;
第一级:开创一个产业。
从本质上来说,不同层级的工程师需要有能力独立解决不同层级的问题。五个层级对应的就是:技术、团队、产品、行业、产业。至少达到第五级才能称得上一个合格的工程师。那么,一个合格的全栈工程师,就应该能独立解决跨栈的问题,完成工程工作。往上就需要具备管理能力和产品能力,再往上还需要了解行业和产业痛点,并能做出解决痛点的产品了。
那么,按照上面的标准,既懂前端开发也会后端开发并不意味着就一定是个合格的全栈工程师,因为也许缺乏解决问题的能力。比如我上面提到的庸才,虽然懂前端开发也会点后端开发,但还没达到能独立解决问题的水平。而一个人能搞定一个成功产品的工程师,则已经达到了第三级的水平了。但需注意的是,这是一个成功的产品,而不是你随便练手的To-Do之类的小工具。
为什么要进阶全栈?
我在《小钢聊全栈》一文中已经提到过的理由就不再赘述了,但在《小钢再聊全栈》一文中提到的职业生涯问题,我想再做一点补充。
移动端和前端开发人员,如果一直只专注在自己的技术领域,那么遇到职业天花板是迟早的事,尤其是在中小企业的开发人员,一般晋升到移动端或前端Leader就到顶了,再往上就很难突破了。所以,如果要打破这困境,就必须广度上进行扩展。一般有两条线,一是转型产品经理方向,那就需要扩展产品技能;二是往技术总监方向晋级,那就需要发展全栈能力。
另外,如果想超越吴军标准中的第五级工程师,不断往上攀爬,也必须具备全栈能力。因为现在的产品已经越来越复杂,不具备全栈能力的人无法hold得住整个技术团队,更无法设计和实现出成功的产品,更别提能看到行业甚至是产业的痛点了。
如何进阶全栈?
就如我说过的,要进阶全栈需要全面发展硬技能和软技能。硬技能是指具体的技术栈,如Android、iOS、H5、Java等,软技能我分为了两部分:基础软技能和技术软技能。基础软技能主要包括超强学习能力、良好沟通能力、解决问题能力、技能迁移能力、全局思维能力,技术软技能则主要是技术栈背后的设计能力、架构能力等。
我开设《进阶全栈工程师之路》专栏的主要目标就是希望为业界培养出更多合格的全栈工程师。以下是目前暂定的专栏提纲,后续根据实际情况可能会有调整。