百万年薪挖了个 P8 程序员,难道是“水货”?

阅读数:18631 2019 年 8 月 8 日 17:00

百万年薪挖了个P8程序员,难道是“水货”?

百万年薪挖了个P8程序员,难道是“水货”?

大厦新搬进来一家创业公司,老板红光满面地提着果篮上楼拜访,说是刚拿到了投资人的钱,正准备扩充团队大干一场。那个时候的他踌躇满志,顾盼生辉。当时我想,能在这个大环境下拿到投资的公司,做的产品应该是有前景的。

没想到几天后在电梯遇见时,却发现这位老板已经没有了往昔的风采,整天愁容满面。他在电梯看到我以后问道:“我记得你们是做技术媒体的吧,有个问题想请教一下。”

原来他烦心的症结在于:

我们公司拿到投资以后,人员配置到位还算及时,业务扩张的速度还是挺快的。没过多久我们技术团队的人就跟我说,现在业务发展势头比较好,现有的技术架构快扛不住了,得招些技术牛人来团队负责整体架构规划、升级。

我不是搞技术出身的,以前总是在各种论坛上听说阿里巴巴的 P8、P9 多牛逼,技术多厉害,我就想这种级别的程序员应该可以满足我们的需求吧。于是我用年薪百万的 offer 砸了个阿里新升的 P8 来我们团队做 CTO,可是现在问题不仅没得到解决,反而更复杂了。技术团队的人觉得他名不副实,他觉得我们找他来是打杂的,干得也不开心,两头乱。

我问他,你们觉得他哪里不好?

他只会写 Java ,我们用 Go
他只会搞后端前端基本不懂;
算法不太行,我们要做推荐;
他只会写 Web ,我们要做 App;
他只晓得用开源工具,我们要造自己的轮子;
……

“那等于是他哪哪都不如你们意呗?”我问他。

对啊,我也没想到阿里 P8 这么水。

“可你一开始要招的不是可以给你们重构系统架构、偿还技术债的 CTO 吗?”

这……有啥区别吗?

“区别大了。你这又是要让前端后端都会,又是要精通各种编程语言,还要能搞移动开发,你这想要的是个全栈,而不是 CTO。哪有 CTO 干这些活儿的,你这是想让一个在大厂流水线上拧螺丝的人来给你把每个窟窿都堵上,不可能啊。”

合着我钱白花了呗?

“倒也不是白花了,BAT 这些大厂都有一套流程化的线上线下、开发管理机制,一般能升到 P8 的,碰到水货的可能性相对较小。你的问题是需求跟招聘方向不匹配,你要招的是这是全栈工程师,人家大厂的技术专家是流水线作业,差别大着呢。你听我跟你分析分析。”

大厂程序员:流水线上作业的螺丝工

软件工程作为一个行业,发展至今已经有超过 50 年的历史。软件开发在互联网的数次浪潮冲刷下,已经是一个非常完备的成熟行业。在一线互联网公司,比如硅谷的 Google、Facebook、Amazon,比如中国的阿里巴巴、百度、腾讯等,其软件开发已经是一个成体系的流水线式作业。

就以前文提到的阿里巴巴为例,作为国内最有代表性的互联网企业之一,阿里巴巴的软件开发已经形成规模化的效应,直接体现在软件开发的模式上就是一条完备的流水线式作业。

流程化、规范化是大厂软件开发最大的特点。一次完整的需求开发流程是这样的:1. 需求预审、评审;2. 概要设计与评审;3. 测试用例撰写与评审;4. 开发;5. 测试与 bug 修复;6. 发布;7. 版本总结 / 项目过程总结。在这个过程中,每个开发人员都各司其职,拧着各自负责的螺丝。

很多新人在加入技术团队后,通常会有一个资深的员工作为师兄帮助其更快地融入工作、掌握相应的技术。一般而言,在开始阶段新人的任务都是从简单的程序开始写起,比如迁移部分系统代码(从上游系统迁移到下游系统),做一些简单的小需求(如修改 bug,增加某一个字段等)。

这些需求看似简单,实则不然。因为哪怕涉及一行的改动,都需要进行大量的测试进行覆盖,很多人以为这些都该是测试去做,但实际上,测试往往只能进行黑盒测试,而且测试对于代码的了解程序一定不如开发,所以在这些细节上的测试都是由开发自己自测完成。因此,往往改动一行代码,开发就可能都会花上半天的时间用各种方法进行测试。

不仅是测试,阿里技术团队在 2016 年左右开始了一次大的组织架构调整,即把日常的运维工作交给研发做。原来的 PE(Production Engineer)要么转岗去做工具平台开发,要么作为运维专家做产品规划和设计,还有一部分无法适应的只能黯然离开。这是阿里运维从工具化到自动化最重要的一个过程。

规模化、流程化、自动化,这几个关键字放在一起,你第一眼可能想到的是生产车间,但在阿里巴巴,这是其技术团队多年沉淀下的一个行之有效的软件开发模式。

阿里巴巴相对而言是一家业务驱动的公司,项目以业务优先,对于团队来说其重要性不言而喻。在阿里巴巴,这是一个需要多人开发,团队协作的事情。对于那些研发人数动辄超万人的大型互联网公司,要前端就找前端,要后端就找后端,规模化以后要求的不是全才,而是专才。

规模越大的互联网公司,程序员干的事情反而越机械,在软件开发的流水线上做着增删查改的拧螺丝活儿,但这些人,在入职前可是通过了“面试造核弹”般的筛选才进来的。越是高级别的技术专家,出现水货的可能性也越小,同样,他也不可能成为一个小公司需要的全栈开发。什么都会一点的结果,就是什么都不精。

产品规模上去以后,各个模块复杂度都很大,全栈未必适合,规模上去以后势必要拆分一些项目出来,由专人维护,全栈存在的意义不大。大公司讲究专人专岗,你就做好你自己那点事就得了,就算你离职,替代的人也相对比较容易找到。

“所以你想挖一个阿里的 P8 做你公司需要的全栈是不现实的,你就是把行癫挖过来这问题也解决不了啊。”

那小公司的技术咋整?

小公司要的全栈开发

“人们一提起‘全栈开发工程师’,大家的印象肯定是:这号人啊,堪称大神!会很多技术,前端后端都精通,不掌握七八种语言都不好意思出来打招呼,热点技术名词全都知道,也都会点儿,跟谁都能谈笑风生。”

对对对,我们要的就是这样的人!

“但是呢,全栈工程师更像是一个神话。每个人的精力都是有限的,你需要人家精通前后端,自己能写代码还能做测试搞运维,能写网站还要能写 App,你咋不上天呢?”

百万年薪挖了个P8程序员,难道是“水货”?

以上是一个全栈工程师应该掌握的 并不详尽技术栈,各位可以对照着看看自己离全栈有多远,再想想全栈工程师是梦想还是现实。这还是在不考虑技术更新换代就像智能手机的更换周期一样的现在,上图所示的技能表每年每层都会增加新的组件,每隔几年又会增加新的层。全栈,你全得过来吗?

全栈工程师,一定程度上更像金庸小说里的慕容复,刚出场时牛逼哄哄,什么都会,自带光环。可后来随着剧情(业务)的展开,逼格直线下降,被武林同道所笑话。

事实上,创业公司一般比较喜欢招全栈,这和创业公司的需求有关系,因为创业初期的公司可能需要一个人做几个人的活。另外,可能老板是技术出身,了解部门之间衔接所需要付出的巨大沟通成本,所以倾向于更少的沟通单位。

对于个人和公司,全栈的定义是不一样的,初期公司肯定是希望全栈的技术广度和深度刚好能满足公司业务要求,本质上来只是想要个全干。但对于个人来说,大多数普通人的时间精力有限,很难真正在广度和深度都做到专业,如果只是为了满足公司需求点技能点的后果就是——项目发展起来之后公司有钱了,就差不多该滚了。

对于创业公司而言,为了压制成本,需要全栈完全能够理解。毕竟一个优秀的程序员也不便宜,能让一个人干两人甚至三人的活儿好像对于成本控制是个好办法。然而,显性的成本控制住了,隐性的成本呢?

“你想没想过,当你的项目到了关键时刻,比如要上线了,或者上线出 bug 了,这时候分分钟就是几十上百万的流水,而你的技术团队因为缺乏专人出问题了。你急急忙忙地去找你的全栈 CTO,他却说:稍等,我上 Stack Overflow 查下这是什么故障。你崩溃吗?”

呃……

“会上 Stack Overflow 的还算好的,他要是个面向百度编程的全栈,你就只有哭的份了。”

再进一步,一个比较复杂的项目,如果一个全栈走了,项目受到的影响会很大,你很难再招到一个完全匹配该项目的另一个全栈。我们见过太多创业公司因为技术团队关键人物离职直接导致项目失败的案例,你越是想省钱,越是省不下钱。

听你这么说,怎么觉得全栈就这么不堪入目呢?

“非也非也。你们这些当老板的,总是认为都是写代码,前端后端没什么区别,Java、Go 没什么两样,这本身就是最大的误解。全栈工程师一定是有其存在的意义的,但你如果想让全栈工程师把什么事儿都全干了,996 都没你这么狠的。全栈工程师也许是未来的一个发展趋势,但现在那些简历上写着全栈的程序员,大概率才是你们认为的水货。”

所以总结下来,他不是个水货 P8,我是个水货 CEO 喽?

“佛曰,不可说。”

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论

最新评论

用户头像
乐天一品 2019 年 08 月 26 日 14:25 0 回复
如果未来各个岗位,比如前端,后端、运维、dba的知识增长的速度,远低于学习的速度,那全栈的方向是可能。如果单科的新知识的迭代发展远大于学习的速度,那分工是必然的趋势。
用户头像
乐天一品 2019 年 08 月 26 日 14:23 0 回复
阿里P8不太可能撑不住整个技术团队,况且P8更多是通过团队的力量拿结果,已经不仅仅是个人的单打独斗。 目前文章的问题偏沟通和定位问题。
用户头像
phaedo 2019 年 08 月 14 日 00:05 0 回复
现代的知识已经膨胀到一个人是无法完成全部工作的,哪怕是科学研究比如物理,数学,也告别了英雄主义的年代。工业界苹果牛逼哄哄,还不得到富士康来加工生产,互联网也一样。分工协作信任是现代社会组织结构的方式,都是CTO了还陷入无限的技术细节还当什么CTO啊。
用户头像
baobaoisme 2019 年 08 月 13 日 13:25 0 回复
p8!=全栈
用户头像
同意,p8 不等于 全栈。所以,雇主 有必要预先评估出 自己的团队 还稀缺 哪一类 p8 人才 的 助力 才能走向下一个辉煌。目前,从雇主的自述来看,他 高薪请到的是一位【后端 JAVA】的 p8 人才。而,他们感到此人才“水”则是因为他的团队真正需要的是一位【前端 H5】的 p8 人才。他寻觅到的人才 与 团队的现实需要不相符。 其实,更让他糟心的是,这位新来的【后端 JAVA】p8 还与 旧团队内的 Go 旧臣 竞争起了【生存空间】。似乎,新人与旧臣之中,没有人愿意退一步搞些其它的技术栈。比如,前端。所以,团队的旧有矛盾(没人写前端)没有解决,还出现了新的人际关系的僵局。 若这个事是雇主的无心举,我建议他得和 程序员 员工多交流,问清楚: 1. 他们擅长什么。比如,go, java, scala, python。 2. 他们想做什么类型的工作。比如,纯后端,大数据分析。 3. 他们需要什么技术栈的优秀人才的帮助。比如,前端大拿,愿意只写 html 5 的小弟,等等。 否则,我有些怀疑,这位雇主是不是 故意 空降一位【技术栈 与 旧臣 严重重叠】的 p8 经理,从而把“功高振主”的旧臣给逼走。这类权术套路电视剧演得已经很俗套了。没有什么新鲜感了。 0 回复
用户头像
小智 2019 年 08 月 12 日 09:01 1 回复
看到很多人的解读有偏差,还是需要解释一下:这篇文章的内核主要是为了批判那些小公司对于程序员的剥削、不懂技术也不尊重技术的老板们,至于百万年薪能不能挖来新升的P8、全栈的定义究竟是掌握前后端就行还是需要更加全面的技术栈,那是另一个问题了。 如果大家想讨论,可以就不同的角度分别发表观点。
用户头像
持镰人 2019 年 08 月 11 日 16:08 0 回复
文章对专人有很强的偏向,并不赞同。一个工程师限于语言和平台,是成为不了好的工程师的。
用户头像
持镰人 2019 年 08 月 11 日 16:07 0 回复
文章对专人有很强的偏向,并不赞同。一个工程师限于语言和平台,是成为不了好的工程师的。
用户头像
良少 2019 年 08 月 09 日 15:18 0 回复
一个程序员,受限于语言和平台,说明技术还不够牛逼
用户头像
良少 2019 年 08 月 09 日 15:18 0 回复
我就都会,还都精通,不行吗?但不能指望我一个人全给写了。肯定得配套下面的程序员啊。
用户头像
Geek_dd539d 2019 年 08 月 09 日 14:14 0 回复
全栈工程师=慕容复 哈哈哈 以后不敢提全栈了。。。
用户头像
TianlangStudio 2019 年 08 月 09 日 12:11 1 回复
还得把bond/sdn/hadoop/spark 加上吧? 如果只做Java也能接触到App、 Web、网络、硬件、操作系统吧 还非得会几种语言以上的才叫全栈? 全栈能够基于整个项目技术栈去排查解决问题,可以减少很多扯皮的时间,只这一点就有存在的必要,能把几样技术做到80分比把1项技术做到120分更有解决问题
用户头像
N_H 2019 年 08 月 09 日 11:39 1 回复
我觉得有道理
用户头像
爱国的张浩予 2019 年 08 月 09 日 10:42 4 回复
我对作者在文章中提到的那位老板有忠恳的建议: 1. 若你当初从【阿里】挖来一位【前端 P8专家】,或许会产生更多好的效果。 2. 我同时也怀疑被挖来的【阿里】JAVA P8 专家 与 其他同事的沟通方式 可能并不怎么“讨喜”。 我的解释: 1. 【阿里】的前端 P8 技术栈 完全能够 覆盖 1.1 移动端 webview 内的 应用程序开发。 - 无论 Hybrid 模式还是 RN 模式的 移动 App,它们的【技术核心】、【工作量大头儿】与【工程化瓶颈】都是在 H5 开发层面。一名【前端 P8】能够给团队带来的改变一定会远远高于其它技术栈的专家。 1.2 桌面浏览器内的应用程序开发。 - 在创业公司中前期,利用优秀的前端产品铺开市场面,远比后端搞性能优化重要得多。用户量没有被搞去,什么(精妙的)预防性性能优化都有些做作,按部就班地写代码就行。 - 【前端 P8】设计的 精简高效的 前后端 接口,对减少计算能力浪费、改善 应用程序整体运行效率 很有帮助。 - 若老板的预算仅能在【前端 P8】与【JAVA P8】之间选择,我推荐老板优先选择【前端 P8】。 1.3 微服务聚合网关层 的 nodejs 开发,无论微服务是用 Go, JAVA, 还是 Rust 实现的。 - 【前端 P8】根本就不会 有机会 与团队内 旧臣(Go 程序员)产生矛盾。 - 他们是【微服务聚合层】与具体【微服务实例】之间承接互补关系。 - 就算是 Go 程序员 要把 【服务聚合层】也由 Go 语言来完成的话,对 【前端 P8】也没有任何的影响,【前端 P8】接着写 H5 就是了,并不存在彼此之间 抢饭碗的【零和博弈】。 1.4 前端工具链中,有哪些工具是能够仅【黑盒模式】使用的。甚至可以这么说:“不定制,不成器”。工具链的每一个环节都有“自己造轮子”影子。从 自己写 webpack 插件,再到给 vscode 写扩展。要知道 nodejs 是能够运行在浏览器以外的诸多平台,无论你是要做 有界面的 工具,还是要做 命令行接口工具,无论是 绝对地从零开始,还是找一个半成品的开源产品做二次定制开发(js 的生态至今都是最大的),【前端 P8】皆可胜任。而且,还会用更少的时间完成任务。可知 tensorflow 都能在 js 里执行的。 2. 我怀疑那位被挖来的 JAVA P8 专家不会是要求: 2,1 所有的新后端业务功能 都 得由 JAVA 来实现,从而压缩 Go 程序员 的生存空间吧?断人财路如杀人父母,他们之间的关系能好得了? 2.2 反正我 JAVA P8 专家 是一行 js 也不会贴的(我有我的骄傲) ,你做 android / ios 客户端的同事,有空就写写 webview 内的 H5 网页吧? 2.3 反正我 JAVA P8 专家 是一行 js 也不会贴的(我有我的骄傲) ,之前的【WEB 全栈】旧臣 都转做前端吧? 如果那位被挖来的 JAVA P8 专家 做出的事让他的同事产生的上述误解(无论他是不是“无心之举”),相信 大家 对他的 评价不会高,JAVA P8 专家自己也不会感觉工作顺心。
展开全部
用户头像
高质评论,大赞 4 回复
用户头像
希望那位老板能够听得进我的忠言逆耳。 1 回复
用户头像
我理解【阿里 P8 前端】应该是【专前端且多能】的【伪全栈】工程师。他在前端绝对是一杆大旗。在其它技术栈方面,他知道,他了解,但不一定就是一名高效的一线开发者。 3 回复
查看更多
用户头像
翩👿 2019 年 08 月 09 日 09:43 0 回复
我很想知道是什么系统,挑战那么大,从小编的描述来看,貌似这是个很难的项目,要么就是P8太水了
用户头像
大风起兮 2019 年 08 月 09 日 09:29 1 回复
作者无限放大全栈的概念了,那什么brew、apt、rpm纯粹是出来唬人的,apt对应的也应该是yum啊。kvm就更是扯淡了,虚拟化的东西和全栈有啥关系,碰巧这几个东西我都熟,跳出来打个抱不平
用户头像
就以InfoQ曾翻译过的多篇外网文章来看,国外对于全栈的定义是很广的,但是看国内很多人认为会些前后端、多一两个技术栈就是全栈了,这恰恰也是很多所谓全栈被黑的原因所在。 1 回复
用户头像
微服务,一定要懂各种虚拟化,docker,k8s,网络...这现在基本是必须的了 0 回复
用户头像
王成飞 2019 年 08 月 08 日 20:49 1 回复
小公司招个技术,安装office、修理打卡机、掐网线水晶头都是你的,所以初期还是先进大厂,有了一定深度再走广度。
用户头像
InfoQ_afd32fbded06 2019 年 08 月 08 日 19:13 0 回复
怪谁呢,光会java的绝对不能要。在我看来不精通c/c++的就应该免谈,否则很容易出混子。
用户头像
还得会php,php是世界上最好的语言 0 回复
用户头像
php 与 java 都是后端语言。现在不缺后端,关键得愿意写 h5 (无论 js 还是 ts)。 0 回复
用户头像
小智 2019 年 08 月 08 日 17:02 0 回复
现在简历上是个人就敢写“精通”什么什么,所以全栈多也不奇怪。
没有更多了