@lsmn
2015-09-10T06:42:38.000000Z
字数 1516
阅读 3814
Stack
全栈工程师
前端
后端
Ops
“全栈开发工程师(full stack developer)”一词经常出现在企业招聘的岗位描述中。但Hello Pretty联合创始人兼首席技术官Scott Hadfield在近日发表的一篇博文中指出,全栈开发工程师就是一个神话,即使不完全如此,用人单位也很难找到一个这样的人。
“全栈开发工程师(full stack developer)”一词经常出现在企业招聘的岗位描述中。但Hello Pretty联合创始人兼首席技术官Scott Hadfield在近日发表的一篇博文中指出,全栈开发工程师就是一个神话,即使不完全如此,用人单位也很难找到一个这样的人。
为了进一步阐述这一观点,他列出了下面这样一个并不详尽的“栈”:
一个全栈开发工程师需要掌握每一层中的1到2个组件。有些技能只需几个小时就可以习得(如GCC或VPS的基本用法),但有些需要数年才能掌握。用人单位对全栈开发工程师的预期远远超出一般人的能力。全栈开发工程师至少需要对栈中的每个组件都有足够深入的了解,以便能做出明智的选择及向管理层解释。每年每层都会增加新的组件,每隔几年又会增加新的层。因此,Scott认为,在招聘时寻找全栈开发工程师不仅不合理,简直就是愚蠢。
不过,Scott承认,确实有人具备全栈能力。但也有许多距离全栈尚远,仍然令人惊叹的开发人员、设计人员和项目管理人员。而有些自称全栈工程师的人也仅能列出上述一半多些的组件,就更不用说组件之间的交互了。于是,他写道:
我看到的几乎所有使用全栈的情况(尤其是在招聘海报中),用人单位真正的意思只是寻找“令人惊叹的人”。
另外,Scott指出,全栈开发工程师或许根本就不应该编写代码,而应该更多地充当系统架构师或集成工程师的角色。在使用“全栈开发工程师”这样一个流行术语时,应该说明是哪个“栈”,比如是Web栈,还是移动栈。
最后,Scott总结道:
全栈开发工程师就是一个神话,不是因为不存在这样的人,而是因为这个术语没意义。
Scott的博文在Hacker News上引发了激烈的讨论。网友andrewstuart对“全栈开发工程师”的理解在参与讨论的网友中具有一定的代表性:
我对全栈开发工程师的定义是,他们能够自己构建和部署一个完整的、可以工作的应用程序,而不需要其它任何人的帮助。那意味着他们能够编写前端、后端代码,能够配置服务器,当然还能够设计数据库表。
不过,有网友认为运维技术也应该是开发过程的核心部分。如果花费大量时间构建的应用程序因为运维细节无法按计划部署,那么将会导致大量的返工。
有许多网友都持有与andrewstuart类似的观点,因此他们认为全栈开发工程师并不是一个神话。BadassFractal就是其中一例:
我就做全栈开发,包括Ops(通过各种CM工具配置AWS并向上部署应用程序……)、DB(PostgreSQL用了5年……)、后端(独立构建类似Rails的框架……)、前端(可以综合运行原始DOM、Backbone及React)等所有这一切。
缺点是,我在其中任何一个方面都不是真正的核心专家,因此,其中任何一个领域中的任意一名优秀专家都比我强。
BadassFractal的后一部分观点也是一种颇具代表性的观点。jvehent也认为,一个人可以成为全栈开发工程师,但却无法成为一名全栈专家。对此,有网友指出,企业应该给这两种人都留有空间。另有网友表示,如果企业在招聘时只盯准了前端和后端均是专家级的开发人员,那非常可惜,因为在一个多人团队中,他们全面的能力并不能得到有效的发挥。
网友们还有其它一些有趣的观点,此处不一一列举了。感兴的读者可以自行阅读。