比全栈工程师更牛是什么

核心提示最近跟朋友聊天,经常聊到全栈工程师,我就问他们为什么要成为全栈工程师?技术派的回答:“全栈工程师,前后端技术都会,感觉很牛!”,职业派的回答:“全栈工程师很多公司都需要,不担心工作找不到,工资也比普通的工程师高。”,跟风派的回答:“我好多朋

最近和朋友聊天,经常聊到全栈工程师,就问他们为什么要成为全栈工程师。技术回答:“全栈工程师,前后技术会,感觉牛逼!”,这位专业人士回答,“很多公司都需要全栈工程师。他们不愁找不到工作,工资也比普通工程师高。”关注者的回答:“我很多朋友都想做全栈工程师,他们都说全栈工程师很好。”有时候,我就问他有什么好的。他当场傻了,答不上来。

朋友们可以看看这篇文章,我相信他们要么是全栈工程师,要么对全栈工程师感兴趣。这个问题也问你:“全栈工程师有什么好?”你可以花几秒钟思考一下,这样你从这篇文章中获得的价值会更高。

1.什么是全栈工程师?

全栈工程的百科定义:

全栈工程师是指掌握多项技能,能够胜任前端和后端,能够运用多项技能独立完成产品的人。

这个定义对吗?请花几秒钟考虑一下,这很重要!

这个定义是错误的!

这个定义是错误的!

这个定义是错误的!

重要的事情说三遍,就会有百科词条背后的困境。

2.脸书的全栈工程师

脸书声称她只雇佣全栈工程师。我们来看看脸书对全栈工程师的能力要求:

完整堆栈的层:1。服务器、网络和托管环境。商业逻辑4。API层/动作层/ MVC5。用户界面6。用户体验7。了解客户和企业的需求。拼图的其他部分:1 .编写质量单元测试的能力。顺便说一下,现在甚至Javascript也可以进行单元测试。2 .了解构建应用程序、测试应用程序、记录应用程序和大规模部署应用程序的可重复自动化流程。3 .了解安全问题非常重要,因为每一层都有自己可能存在的漏洞。

根据市场上全栈工程师的说法:

第1点到第4点是java开发人员的必备技能,第5点是web前端工程师的技能。

全栈工程师就是掌握1-5个技能。

第六点,用户体验,第七点,了解客户和业务需求,这些都超出了市面上全栈工程师的技能。你可能有不同的看法。我们来看一些常见的案例。

爱达荷(Idaho的缩写)

产品经理来找程序员;“你在做的这到底是什么体验?用起来多不方便啊。”,

程序员:“我现在怎么能这样呢?这些项目被耽搁了这么久。有空再优化他们吧!”

二。

产品经理又来找程序员改需求。这是第五次改需求了,程序员忍无可忍:“你怎么做到的?你能想清楚一个要求改了五次吗?”

这是产品经理的问题吗?不,是程序员的问题。

第一,用户体验不是全栈工程师重点考虑的,功能的完成才是最重要的。

二、一个产品,40%由一般产品经理设计,20%由程序员设计,40%由其他人设计。程序员拿到一个产品,要知道客户的需求,业务逻辑,功能之间的关系,数据流,交互等等。这些都是程序员对产品需求的理解和对产品功能的细化。如果程序员做到了这一步,就可以在开发前发现产品中隐藏的问题和设计错误,产品经理也不需要反复更改需求。理解客户和业务需求并不是全栈工程师的主要考虑因素。在全栈工程师眼里,函数不是一个东西。我最好先做这件事。

全栈工程师的能力水平是高级程序员。高级程序员没有6、7分的能力。6、7分是主管级别以上的架构师和程序员应该掌握的技能。

看看其他谜题里的三个点,就自动部署了。因为有框架,就会有人去做;单元测试,安全,有几个全栈工程师会做?这并不是说我不尊重全栈工程师。市场上的全栈工程师基本都是公司里的骡子。他们每天做大量的工作,加班赶项目,把前端的工作做完当后台,把后台的bug改成前端的bug。没有时间去想,更没有时间去做。

可见市面上的全栈工程师,或者说百科词条中定义的全栈工程师,和实际的全栈工程师应该掌握的技能是不一样的。

3.全栈工程师,不是你想的那样

为什么会这样?关键在于前后端的分离。这既是技术进步带来的好处,也是技术进步带来的麻烦。

早些年,我们做开发的时候,都是一起做,但是要设计自己的框架,把前端和后端隔离开来。后来一些前端框架出来了,我们也会用这些框架做自己的开发。后来一些程序员专门做前端开发,尤其是像VUE这样的框架,前端程序员完全沦为界面交互工程师。

我分享一个案例:

两年前,我成立了一个新团队。根据公司方向和产品需求,团队配置为3 java,2 web。我的想法是java负责界面和后台开发,web负责app的嵌入式页面和活动页面的开发。这种配置是合理的。结果,在计划时,web报告的工作量很大,无法及时完成。我只是好奇,这怎么可能?

我深有体会。技术经理采用的方案是前后端分离。java只做接口,后端页面由web程序员开发。这是故事的结尾。这样的方案,这样的配置肯定不能按时完成工作。在这个技术方案中,java程序员砍掉两只手,只做一块业务,web程序员成为界面交互工程师。

沿袭我们之前的分享,web程序员不愿意局限于界面交互,想要找到自己的价值,于是开始学习1-4分的能力,于是全栈工程师火了。

因为一些误导,变成了:web程序员学后台开发,成为全栈工程师;Java程序员学习web开发,成为全栈工程师;Android/IOS app端程序员,会学后台,会开发app,会自己写界面,成为全栈工程师。

再加上大众创新创业,很多创业公司招不到合适的程序员,或者为了节约成本,开始大量招聘全栈工程师。对于公司来说,就是花一个钱做两件事。这种做法对公司和个人都没有好处,但对公司有害的就不在这里讨论了。有机会我会再写一篇分享;对全栈程序员的损害将在接下来的两节中讨论。

全栈工程是鬼老提出的一个概念。找不到是谁提出这个概念的,也不知道作者在原著里说了什么。但是我看过很多旧书,比如* *编程思想,敏捷开发,XP,Scrum,重构,测试驱动开发.................................................................................................................................再比如敏捷开发,讲的是敏捷开发方法和项目管理。其实讲了很多技术管理和开发方法。学习这本书可以成为敏捷开发的项目经理,或者架构师、技术总监。

所以鬼老提出的概念,不是简单的概念,是让你的事业成长。我们看看这几本书的作者,都是从事这个行业一二十年的时候写的,介绍的都是某科技公司的CEO或者技术副总裁。在这个层面,他们都非常注重程序员的成长,而不仅仅是传授一项技能。

让我们回到facebook全栈能力需求的第6点和第7点。这是一个架构师的能力,所以要成为一个全栈工程师。掌握了这七点,就可以达到架构师或者主管程序员的水平。另外三点是技术总监应该掌握的能力。如果他们掌握了这三点,就有可能成为技术总监。

真正的全栈工程师是让你的职业成长的概念。简单地说,就是让你成为高富帅。不是让你掌握更多的开发语言,往边上长,只会让你变成一个大胖子。互联网行业高速发展,大胖子跟不上节奏,会带来职业灾难。

如果你不熟悉不同层次的程序员需要掌握的技能,可以搜索一下我写的《程序员职业等级》的内容。

4.高级程序员发展到全栈工程师的后果

百科对全栈工程师“困境”的描述;

技术有两个发展方向,一个是纵向的,一个是横向的,横向的是瑞士军刀,纵向的是削铁如泥的莫邪。这两个方向没有对错。当它们发展到一定程度,就会相互融合。这就像中国的佛教禅修由南向北传播。其实到最后,渐悟和顿悟是一样的,悟是渐来的。可以说全栈无所不能,无所不能。

如果一个公司不太明白全栈工程师的价值,那么全栈工程师的位置就尴尬了。说得好听点,全栈工程师什么都懂,什么都不懂。有一次面试,对方问了一个很基础的问题,他答不出来,但是他可以做一个产品,知道是怎么回事,不会犯那些错误,但是他就是答不出概念,所以很容易考他。所以在应聘面试的时候,有时候他会吃点亏,可能待遇还不如在某个方面钻得深的人。

因为经常在各种技术中穿梭,经常忘记代码的语法和一些API,所以经常需要查API甚至语法。他觉得没有谷歌我几乎无法工作。在某些人看来,这是技术不足的表现。他只记得一把钥匙,一个如何找到答案的索引,但不是一切。人脑不是电脑,他不可能什么都记得。

百科对全栈工程师价值的描述;

对于创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样各方面都有人才。所以我们需要一个通才,能肩负各种任务,挡各种万金油的道。对于创业公司来说,不可能说DBA前端和后端客户端的各种人才都准备好了。很多工作没有饱和,不招人就做不了。外包不保证质量,所以全栈工程师是省钱的好方法。虽然全栈工程师的工资会比普通工程师高很多,但成本毕竟会低很多。

全栈工程的前因后果

我们结合价值和困境做如下分析:全栈工程师多才多艺,并不是各方面都精通。能体现价值的地方是创业公司,大公司面试不过关。在员工参差不齐的公司工作,你觉得项目能顺利进行吗?晚上十点以后加班合理吗?所以你选择了做全栈工程师。你决定了以后只在创业公司工作,每天要加班到晚上10点以后,一周工作六天吗?

现在,创业公司在一年半内破产的概率是97%。也就是说,如果你选择了全栈工程师,基本上就是选择了一年左右跳槽。你想在一个公司稳定工作,发展好,基本是奢望。

全栈工程师应该都有感觉。刚开始面试还算顺利,很容易就被录用了。随着年龄的增长,面试会越来越难。这是为什么呢?

刚成为全栈工程师的时候,我精通另一门语言,所以面试的时候,面试官看到你精通一门语言,还懂其他语言,就很容易得到面试机会。但是全栈工程师花很多时间赶项目,加班加点,用各种语言解决问题。随着岁月的增长,这种精通的语言并不精通,越来越依赖Google或者Google。面试的时候面试官问的问题很随意,很难找到工作。

而这个难找工作的时候是什么时候?让我们算一下。22岁毕业,3-4年成长为高级程序员,成为全栈工程师,成长到只靠Google或者Google工作,差不多要3年。这个时候我已经快29、30岁了。

让我们进一步谈谈。30岁以后,我们的体力还能跟得上这种工作吗?这个时候,很多人刚刚有了孩子。这个阶段的孩子最闹。你或多或少要照顾他们。一天只能睡两三个小时。你受得了吗?所以现在很多公司都不要30岁以后的工程师了,这是有道理的。你只能是灵丹妙药,能力跟不上公司的要求。加班可以不发工资,但是不能给年轻的发工资,工资比年轻的高很多。公司会炒你谁?

相信这次有很多朋友看起来毛骨悚然。这就是互联网行业。我们这个行业的所有麻烦都是自己造成的。本文分享的观点,要成为真正的全栈工程师,可以避免这种因果。

5.中级程序员发展到全栈工程师的后果

本来全栈工程师是高级程序员因为不能晋升为架构师或部门经理而通过多学语言来提升价值和薪资的手段。不知不觉就成了业内仅次于架构师的位置。

所以很多程序员都立志成为全栈工程师,这种想法一直延伸到中级程序员。我甚至听到初级程序员说他想成为全栈工程师,这太离谱了。先说中级程序员成为全栈工程师的后果。

我们来看一个案例:

Android中级程序员,学习后台语言,打通前后台成为全栈工程师。

中级程序员的能力范围是什么?中级程序员只能负责模块,搞不清楚完整的项目怎么玩。是高级程序员完成完整项目的能力。Android程序员,在APP开发团队里,只能负责项目里的模块,后台缺人。把这个程序员拉到后台帮助开发接口,他只能在后台写一些接口,最多负责模块。你看,他到处负责模块,只是中级程序员级别的。而这种人很好利用。他在公司会很受欢迎,项目组也要他。他一会儿负责android,一会儿负责后端接口。他将永远无法完成项目,无论是android还是后端。

像这个中级程序员,刚成为全栈工程师的时候,他的工资会比同岗位的程序员高,因为他能做的事情比别人多。但是,只要工作一两年,他就会因为跳槽而陷入困境。本来他应该是高级程序员。面试官由资深程序员面试,绝对是假的。如果他们是中级程序员面试,他基本上只能回答一些关键,所以面试效果肯定一般。即使是技术面试之后,薪资谈判也会出现问题。这个级别的工资是低于中层的,而且他在做全栈工程师的时候就已经拿了接近高级程序员的工资了。

6.全栈工程师的价值

从前面的分析我们知道,全栈工程师并不是指能够掌握多种技能,能够胜任前端和后端,能够运用多种技能独立完成产品的人。

指的是对某个技术栈完全掌握的人。

以facebook的全栈技能为例。全栈工程师是分等级的。掌握1-5分就是优秀的高级程序员;掌握1-7分,可以成长为架构师或主管程序员;掌握其他拼图的技巧,成为技术总监。我们在文章开头就说过,很多公司都想要全栈工程师,因为他们的技能更高,可以承担更高的职位。全栈工程师因为职位更高,待遇也更高。当然,这是洋人公司的想法。国内创业公司招全栈工程师,还是因为一个人可以两个人用,可以节省公司成本。

我写这篇文章,并不是劝阻你成为全栈工程师,而是希望你能关注自己的职业成长,成为真正的全栈工程师。

Java程序员,他会开发web是理所当然的。这是成为一名合格java程序员的必备技能。如果公司有员工,有人做H5开发,那么就会有人做。有这个本事就不用干了。偶尔有web人力不足的时候,帮个忙,分担点工作量;或者有一个人能完成的小项目,自己把前后端一起扛就够了。

Web程序员,学习背景语言,可以在事业上走的更远。如果只做交互界面开发,工作2年的能力和工作5年差不多,工资差一倍。你认为工作5年危险吗?另外,在web前端开发等级考试中,要考java和php等。

市面上的全栈工程师只掌握全栈工程师的技术部分,而全栈工程师要全面掌握技术栈,即包括开发前的客户和业务理解能力、产品分析设计能力、系统架构能力、代码开发能力、数据库能力、单元测试能力、部署能力等。开发期间,以及开发后的运维、安全、性能提升能力等。这是职业成长的路径,也是职业成长的方式。

我第一次提出这篇文章的观点,网上还没有找到类似的观点。准确度由你决定,希望对你有帮助。如果你有不同意见,我们可以一起讨论。如果对你有帮助,请关注我,我会定期分享程序员相关话题。如果你有什么知识点或者困惑需要我分享,可以给我留言,下次我会做针对性的分享。

作者陈做了18年的全栈工程师,CTO集团公司八年了。项目管理、职业成长、RD体系建设方面的专家;艾米视频聊天,装机量3亿,注册用户4000万;腾讯学院腾学汇项目负责人;项目管理讲师兼教练,程序员专业成长,锐科网络创始人;第一课程序员职场,职业规划:程序员百万年薪培养之道,高级程序员培养,项目管理从初学者到精通,作者,讲师。

 
友情链接
鄂ICP备19019357号-22