点击“开发者技术前线”,选择“星标????”

在看|星标|留言,  真爱

来源 | InfoQ  作者丨小智 编辑 | 可可

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

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

原来他烦心的症结在于:

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

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

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

他只会写 Java,我们用 Go;

他只会搞后端,前端基本不懂;

他算法不太行,我们要做推荐;

他只会写 Web,我们要做 App;

他只晓得用开源工具,我们要造自己的轮子;

……

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

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

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

这……有啥区别吗?

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

合着我钱白花了呗?

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

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

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

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

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

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

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

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

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

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

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

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

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

那小公司的技术咋整?

2 小公司要的全栈开发

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

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

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

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

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

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

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

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

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

呃……

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

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

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

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

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

“佛曰,不可说。” 你只能细品

END

开发者技术前线 ,汇集技术前线快讯和关注行业趋势,大厂干货,是开发者经历和成长的优秀指南。

ps:后台回复 “面试“&”资料” 数百面试手册,即可领取程序员大礼包等你

历史推荐

程序员女装大佬登上 GitHub 热榜,太变态了!媲美 PornHub

5 种将死的编程语言

微信支付的跨平台架构到底有多牛?

2020年必学的 10 大算法

刷题一个半月,一口气拿下腾讯、华为、Oppo 、微软7个大厂offer,字节跳动薪资涨幅60%!

请停止学习框架!


http://www.taodudu.cc/news/show-6621516.html

相关文章:

  • system 相关的配置 /etc/sysctl.conf
  • Linux内核参数解释
  • xampp 配置laravel5.4环境
  • 使用laravel5.5
  • linux内核配置与调优与shell
  • linux-内核参数优化参考指标
  • Lavarel 5.5安装步骤整理
  • Laravel安装及环境的配置(XAMPP集成开发环境下)
  • laravel 在nginx环境中报错404
  • laravel + php cgi + nginx在windows平台下的配置
  • laravel框架基础知识总结
  • linux 修改proc目录,Linux_Linux中系统参数修改命令sysctl的使用讲解,sysctl配置与显示在/proc/sys目录 - phpStudy...
  • laravel框架的配置
  • Laravel 通过apache部署
  • laravel-admin登录页面进不去
  • laravel<=8.4.2 Debug RCE
  • window系统安装Laravel框架 (windows)
  • Fastadmin 等一些thinkphp5 larval的后台框架程序 bootstraptable 自定义js 实现动态列 的实现方法1 ,通过nginx apache rewrite 重定向
  • php larval框架运行环境,Laravel框架的运行环境配置(一)
  • php larval workerman,laravel框架与workerman的整合
  • win10 IIS搭建Laravel环境
  • 关于CTF学习的记录
  • 阿里云安全科学家吴翰清入选MIT TR35,你知道弹性安全网络技术吗?
  • 北京大学肖臻老师《区块链技术与应用》公开课笔记15——ETH概述篇
  • 物联网与射频识别技术,课程实验(四)
  • NodeJS 与第三方模块 mysql(基本操作)
  • 小咖→殿堂,黑客等级划分
  • 吴文虎_程序设计基础_清华大学视频教程
  • 阿里云安全科学家吴翰清入选MIT TR35_你知道弹性安全网络技术吗?
  • Wu201451082127

花百万年薪从阿里挖了个 P8 程序员!难道是“水货”?相关推荐

  1. 公司花百万年薪从阿里挖了个P8程序员,竟然是“水货”?

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

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

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! >>阿里云8月最新优惠,点击查看<< 大厦新搬进来一家创业公司,老板 ...

  3. 年薪 170 万阿里 P8 程序员征婚上热搜,程序员婚恋观大曝光!

    整理 | 伍杏玲 出品 | 程序人生(ID:coder_life) 上个月,民政部公布,2018年中国单身成年人口已经超过2亿, 独居成年人口超过7700万. 前两天有一位阿里P8程序员决定告别这个& ...

  4. 和尚挖井故事给程序员的启示

     和尚挖井故事给程序员的启示  有两个和尚住在隔壁,所谓隔壁就是隔壁那座山,他们分别住在相邻的两座山上的庙里.这两座山之间有一条溪,于是这两个和尚每天都会在同一时间下山去溪边挑水,久而久之他么变成为了 ...

  5. 知己知彼,百战不殆,阿里华为电信大厂Java程序员秋招面经大合集(含更新)

    最近整合收集了阿里华为等大厂java程序员面经,看完你就明白为啥别人都能offer拿到手软了,文末含资料整合收集PDF,需要可自取 阿里内推 一面(电话) 听说你有博客,博客里大概有什么内容? 项目介 ...

  6. 阿里p8程序员吐槽:新来应届生都开卡宴上班,当时就震惊了!

    现在程序员作为一个热门职位在如今互联网时代属于高薪职业,但是也仅仅是相对于其他行业,这不就有一个阿里p8看到自己带的实习生都开卡宴来上班,当时就震惊了,心里顿时五味杂陈起来,自己开的只是一破代步车,人 ...

  7. 阿里P8程序员征婚被群嘲:我年薪170万,找月薪1万的老婆,有错吗

    前段时间,一位年薪百万的阿里程序员火了,提到程序员,我们首先想到的是脱发,没时间,直男癌等词汇,虽然不能一概而论,但大多数如此. 据我一个程序员朋友说 ,他们除了相亲,根本没有任何机会谈对象,连网恋都 ...

  8. 为什么 P8 程序员的代码你写不出来?零拷贝了解一下

    计算机处理的任务大体可以分为两类:CPU密集型与IO密集型. 当前流行的互联网应用更多的属于IO密集型,传统的IO标准接口都是基于数据拷贝的,这篇文章我们主要关注该怎样从数据拷贝的角度来优化IO性能, ...

  9. 阿里6年32岁程序员:辞职在中小厂干了快两年,我怎么没有职场危机(年龄)?

    从大厂辞职 截止今年,是我工作的第8个年头.从小白到积累了一定经验,期间跳槽3次.目前在一家微小型私企做中层管理.之前有阿里的从业经历,因为各种因素出来,进入了看似高薪的不稳定企业. 真的以为大厂那么 ...

最新文章

  1. LeetCode简单题之数组的度
  2. sklearn随机森林模型:ValueError: Unknown label type: ‘unknown‘
  3. c语言改u3d游戏,使用Unity3D怎么制作一个五子棋游戏
  4. Mac 的World空格显示为.
  5. php header运用细节
  6. 用再生龙Clonezilla 来克隆Linux系统!!
  7. 基于android公交车线路查询论文文献,本科毕业论文---基于android的手机公交线路查询系统.doc...
  8. [转]apache MPM介绍
  9. 技术研究院005---如何基于DDD构建微服务架构
  10. Linux配置Anaconda3环境变量的问题
  11. 如何使用GetParent来得到父对话框的指针
  12. php查看php进程
  13. 七月算法机器学习4 凸优化初步
  14. 如何提高学习效率,三大法则,五大步骤
  15. 123hoo.com网摘中国开发手记(一)都是些简单的东西!:)
  16. 从一杯果汁浅谈点点医生充值提现模块设计
  17. 致远oa读取服务器信息失败,致远OA A8V5常见问题集
  18. matlab学习笔记:如何在matlab中如何自定义函数和匿名函数
  19. VB 6.0 如何在64位操作系统下运行!
  20. FTP 设置用户名和密码

热门文章

  1. 用友U8销售退货案例教程
  2. 通过命令行脚本实现双网卡切换
  3. 十大Android开发趋势| 2020年指南
  4. 2014-04-17多益游戏实习生招聘(游戏技术方向)题目及解析
  5. python描述分析常用统计量(最大值、最小值、平均值、众数、中位数、四分位数、异众比率、极差、离散系数、偏态系数、峰态系数)
  6. host 问题 和 证书问题
  7. [快速查询] Ubuntu下adb不识别Android设备
  8. 学习进度报告【第二周】
  9. 微信公众号高质量技术贴-提炼总结
  10. 基于ol-plot的openlayers 5 的标绘地图