要定义全栈工程师,先要定义全栈;要定义全栈,先要定义栈。
栈定义好了,自然就有了全栈(栈中所有知识和技能),也就有了全栈工程师(掌握栈中所有知识和技能的人)的概念。
在不同情境下,栈的范围是不一样的,而不是一成不变的。
对于不同人,他所理解的栈的范围也是不一样的。
比如,要做一个网站,涉及到产品设计、开发(前端、后端)、测试、运维等等工作,每个工作又需要技术选型,比如后端用java、php、python还是其他,运维是自己采购服务器(涉及软硬件管理),放到自己的机房(涉及机房设计方案等知识)还是托管,还是购买云服务器。定了实现方案后,栈的概念就快出来了,最小的,最基本的栈,有的人认为就是包含前后端开发相关技术;有的人扩展了这个栈,除了开发,还应该加上产品设计、运维、测试,这个栈就变大了。
栈是动态的,不同人可以有自己心中的栈,也就有了自己心中的全栈。
解决一个问题所需的所有知识,定义了一个栈;解决另一个问题所需的所有知识,定义了另一个栈;
完成一个项目所需的所有知识,定义了一个栈;完成另一个项目所需的所有知识,定义了另一个栈;
完成一个产品所需的所有知识,定义了一个栈;完成另一个产品所需的所有知识,定义了另一个栈;
栈定义好了,也就有了全栈,相应的,就有了全栈工程师。
每个人,心中定义了自己的栈,也就有了他心中的全栈,在他眼中,也就有了全栈工程师应该具备哪些知识和技能的标准。
但是,全栈不是“所有技能”,这也是不可能的。听了“全”就理解成包罗万象,是一种误解。没有人可以掌握所有知识和技能。
本文出自 “GONE WITH THE WIND” 博客,请务必保留此出处http://h2appy.blog.51cto.com/609721/1664103
原文地址:http://h2appy.blog.51cto.com/609721/1664103