全栈开发工程师,就是个神话~

原文地址

这篇文章很有道理,如果放在十几年以前,说全栈工程师,还可以,那时的 Web 站点的访问量不是很大,大都是一台 Web 服务器和一台数据库服务器,采用分离的结构,更有甚者,Web 服务器和数据库服务器是同一台服务器,一个工程师,就可以完成所有的工作,包括,用 Oracle 或 MySQL 建立数据库,编写 Web 的前端和后端,前端包括 HTML,CSS,JavaScript,后端则可采用 Java,PHP,.NET,更有用 Lisp 的。现在的大网站,都是由当初的小网站起步的,即便是 Facebook,当初也是扎克伯格部署在宿舍里的。但现在,光靠一个人,这几乎是不可能完成的任务,尤其是想搞出个高可用,高性能的 Web 站点,比如,电商网站,每年双11淘宝的访问量,估计你也看过,12306 在每年春运的宕机~加之,均衡负载(各个层次的均衡负载),CDN,读写分离,分库分表,中间件,服务发现,现在的云,虚拟化……等等一系列令人眼花缭乱的技术和策略,对了,还有移动端,再说全栈工程师,就显得极为不靠谱,谁有这么大能力和经历,把这些一套的东西,都弄明白呢~

“全栈开发工程师(full stack developer)”一词经常出现在企业招聘的岗位描述中。但 Hello Pretty 联合创始人兼首席技术官 Scott Hadfield 在近日发表的一篇博文中指出,全栈开发工程师就是一个神话,即使不完全如此,用人单位也很难找到一个这样的人。

为了进一步阐述这一观点,他列出了下面这样一个并不详尽的“栈”:

用人单位对全栈开发工程师的预期远远超出一般人的能力。全栈开发工程师至少需要对栈中的每个组件都有足够深入的了解,以便能做出明智的选择及向管理层解释。上图所示的技能表每年每层都会增加新的组件,每隔几年又会增加新的层。因此,Scott 认为,在招聘时寻找全栈开发工程师不仅不合理,简直就是愚蠢。

不过,Scott 也承认,确实有人具备全栈能力。也有许多距离全栈尚远,但仍然令人惊叹的开发人员、设计人员和项目管理人员。而有些自称全栈工程师的人也仅能列出上述一半多的组件,就更不用说组件之间的交互了。于是,他写道:

我看到的几乎所有使用全栈一词的情况(尤其是在招聘海报中),用人单位真正的意思只是寻找“令人惊叹的人”。

另外,Scott 指出,全栈开发工程师或许根本就不应该编写代码,而应该更多地充当系统架构师或集成工程师的角色。在使用“全栈开发工程师”这样一个流行术语时,应该说明是哪个“栈”,比如是 Web 栈,还是移动栈。

最后,Scott 总结道:

全栈开发工程师就是一个神话,不是因为不存在这样的人,而是因为这个术语没意义。

Scott 博文在 Hacker News 上引发了激烈的讨论。网友 andrewstuart 对“全栈开发工程师”的理解在参与讨论的网友中具有一定的代表性:

我对全栈开发工程师的定义是,他们能够自己构建和部署一个完整的、可以工作的应用程序,而不需要其他任何人的帮助。那意味着他们能够编写前端、后端代码,能够配置服务器,当然还能够设计数据库表。

不过,有网友认为运维技术也应该是开发过程的核心部分。如果花费大量时间构建的应用程序因为运维细节无法按计划部署,那会导致大量的返工。

有许多网友都持有与 andrewstuart 类似的理解,他们认为全栈开发工程师并不是一个神话。BadassFractal 就是其中一例:

我就做全栈开发,包括Ops(通过各种CM工具配置AWS并向上部署应用程序……)、DB(PostgreSQL 用了5年……)、后端(独立构建类似Rails的框架……)、前端(可以综合运行原始 DOM、Backbone 及 React)等所有这一切。

缺点是,我在其中任何一个方面都不是真正的核心专家,因此,其中任何一个领域中的任意一名优秀专家都比我强。

BadassFractal 的后一部分观点颇具代表性。jvehent 也认为,一个人可以成为全栈开发工程师,但却无法成为一名全栈专家。对此,有网友指出,企业应该给这两种人都留有空间。另有网友表示,如果企业在招聘时只盯准了前端和后端均是专家级的开发人员,那非常可惜,因为在一个多人团队中,他们全面的能力并不能得到有效的发挥。

时间: 2024-11-05 18:52:15

全栈开发工程师,就是个神话~的相关文章

不做全栈开发工程师

最近老是听到一个词:全栈开发工程师,英文是:Full Stack Developer.仔细分析,所谓的全栈开发工程师或许也分为两种:一种是做小公司小网站,一个人全包,什么都做,自然什么都会:另一种是大公司大网站,需要整体架构设计师,分工明细,很多人做,但需要人统筹.显然这是两种境界,初级水平是无一精通:高级是无一不精. 在十几二十年前,一个人一台电脑,搞定一个软件,一个网站.那个时候没有那么多细分,也就是客户端-服务器,或者浏览器端-服务器端,最多加上一个数据库端.我有一位老领导,一直沉浸在二十

发现自己就是个全栈开发工程师

回头看来,发现自己干过不少的事.不过目前专注于机器学习,深度学习方面,发现这才是自己的兴趣所在,如无意外,将长期专注于这方面. 机器学习,深度学习相关经历: 1 玩过基于HOG特征的行人检测,分别在JAVA,OPENCV,CUDA做个实验: 2 玩过TLD,研究过C++版本的源代码: 3 用C++实现过卷积神经网络的基础框架,含CPU版本和GPU版本(cuda实现): 4 研究过caffe卷积神经网络的源代码: 5 在coursera上过andrew ng的机器学习的课程: WEB开发经历: 1

PYTHON高级全栈开发工程师-老男孩教育

PYTHON高级全栈开发工程师 最近开班日期:2016年4月17号                               课程周期:4至4.5个月 学习方式:全脱产面授学习(周一至周五,早9:30-晚9:00) 课程收费:RMB15800 适用人群:应届专科.本科毕业生及其它对从事编程开发感兴趣的人群 学员年龄:18-30岁之间 平均就业工资:8-12K 课程咨询QQ:41117397  70271111  80042789  41117483      技术讨论群:         Py

老男孩Python高级全栈开发工程师【真正的全套完整无加密】

课程大纲 老男孩python全栈,Python 全栈,Python教程,Django教程,Python爬虫, scrapy教程,python高级全栈开发工程师,本套教程,4部分完整无缺,课程完结,官方售价6800元. 课程全部都是不加密,全部都有声音-不是网上那种几块钱十几块钱那种加密没有声音或者课程不全,贪便宜花冤枉钱不说都会严重影响学习,耽误大量时间! 本套全栈课程,不说完全媲美线下教学,只要你肯坚持,不会比面授差太多-坚持学完找一份python开发类的工作完全没问题,另外对于学习方面的投资

web全栈开发工程师的趋势、价值

随着技术的发展.用户量的增加.客户端种类变多,每一个小小的细节都需要优化和考虑.在海量的访问量面前,也许改变一个按钮的位置和颜色就能影响上千万次的用户体验.如今的互联网产品已不是以一己之力就可以完成的乐高积木了,Web开发需要以某种可控的方式来管理.于是,所有认真对待互联网产品的大公司都引入了流水线开发流程,在这条流水线上诞生了多个非常专业的职位. 1. 岗位需要"T"型人才 要求你不仅"一样精"更要在"一样精"的基础上"百样通&quo

全栈开发工程师微信小程序-中(中)

开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, 群id lang 当 type="user*" 时生效,以哪种语言展示 userInfo <open-data type="groupName" open-gid="xxxxxx"></open-data> <open-data type="us

全栈开发工程师微信小程序-中(下)

微信小程序视图层 wxml用于描述页面的结构,wxss用于描述页面的样式,组件用于视图的基本组成单元. // 绑定数据 index.wxml <view> {{message}} <view> index.js Page({ data: ({ message: 'Hello' }) }) // 组件属性 // data中的数据绑定到微信小程序组件上 <view id="item-{{id}}"></view> Page({ data: {

&lt;Python高级全栈开发工程师-1&gt;学习过程笔记【181-184】正则表达式 &lt;特殊字符&gt;&lt;函数&gt;

1.头文件 import re 2.re.findall("stra","strb",匹配模式)  在strb中找stra,返回一个列表,列表中为所有的匹配内容 >>> re.findall("juruo","iamjuruoiamnotjuruo") ['juruo', 'juruo'] >>> re.findall("juruo","iamyzw"

全栈开发工程师的故事

前段时间做的数据库迁移工具,出了个Bug,大概的意思是,PG中的保留关键字,可能不是其他数据库中关键字,这就导致,当其他数据库中使用了PG的保留关键字的时候,比如表名用了PG的保留关键字,那么在迁移这个表结构的时候,是没法迁移的,表名是PG的保留关键字.但是有一个方法可以解决这个问题,就是迁移过程中,如果用到了PG的保留关键字,那么给这些保留关键字加上双引号,这个SQL语句再在PG中执行的话,就没有问题了,当然啦,查询的时候也得加引号. 于是找到了PG的关键字列表,下面这个链接, http://