首页 > 代码库 > 全栈工程师就是一棵歪脖子树

全栈工程师就是一棵歪脖子树

一个故事

  老张有一个林场,专门种植树木,待树木成材后销到城里做家具。林场里有不少杉树,长得都非常挺拔,偏偏不知怎的长了一棵歪脖子树,长得倒是郁郁葱葱,偏偏造型奇特,别的树都力争上油,可这棵歪脖子树不仅横着长,还长得颇为怪异。老张几次都想挖掉它当柴火烧,看它那怪异的造型又忍住了,心想等这批杉树成材,一起砍掉吧。

  一到晚上夜深人静的时候,林场里就炸开了锅,杉树们极力取笑歪脖子树。“你知道作为一棵树,我们的终极目标就是成为有用之材吗,你看旁边那个,可以做梁柱,小歪脖子,你丫能干啥啊?”;"这个臭歪脖子树,抢了我们的养分和阳光,长成这样,完全是丢我们的脸,我呸!"。

  歪脖子树有自己的梦想,它要长成它喜欢的造型,如此日复一日,林场里的杉树渐渐长大了,老张决定逐步卖掉这些杉树。随着一批批杉树被运出去,奚落与嘲笑更多了。“瞧睢人家,你左边的那棵,现在被打造成前台,在知名大企业,右边的那棵更牛逼了,它被做成了老板桌,你知道天天用的老板是谁吗,说出来吓死你。你个臭傻逼,作为一棵树,你居然不向上长?”

  林场里的树越来越少了,歪脖子树也有些失落,对自己的未来产生了怀疑,当初为什么不和他们一样长呢。

  有一天,一个老板和他弟弟过来买树,他弟弟是个园艺家。园艺家正在筹划一个大型的园林,一切都弄好了,唯独还差一棵造型奇特的树作为点睛之用,他找了很多地方,不是造型不满意就是人为痕迹太过于严重。终于,他看到了这棵歪脖子树,立马柏板重金购买。

  老张觉得不可思议,林场里的杉树们更是炸开了锅,“凭什么啊,我们长这么高,它就那么点高,还长得这么怪,凭啥卖了这么高的价钱”。原来,随着经济条件的的变好,人们有闲钱了,也愿意花钱去欣赏园艺了,长得高的树木很多,但长得怪的树木却是极为难得。

  一棵歪脖子树

  有些人一听这个字满腔怒火,凭啥你的职业中带一个全字,你是要前端后端通吃吗,还要吃掉移动端,你是不是要抢我的饭碗。你凭什么啊,做技术就应该专精,你知道茴香豆的茴字有几种写法吗?

  记得三年前我在一篇文章《两个重要而又容易被忽视的角色》中有谈到前端工程师和产品工程师的重要性,结果有一大波后端工程师批评我,他们认为前端就是一个低端的职位,切切图写写JS就完事了,重要个屁啊。现在你来看,到处都在招前端,而且工资不比后端低,甚至略高,还不一定能请到人。

  全端工程师不是什么高大上,它只是一种职业,和DBA运维产品工程师一样,只是职业的细分。全端工程师不是要吃掉前端更不是要吃掉后端,它是环境发生到一情况况所催生的一种新的职业,它恰恰是市场更细分的结果。我能理解某些工程师的那种紧张与孤傲,早些年出现前端吞掉我们的一部分工作,现在又要炒全端吃掉我们的一部分工作,你让我们这些垂直发展的人怎么活,连茴字有几种写法你都不知道,你有什么资格拿着和我们一样的工资?

与新技术的任何方面打交道的人,他们确信自己是在做天生的高科技业务……在我们两人看来,他们一般都不是。在这些领域中,那些有根本性突破的研究人员是在做高科技业务。我们所有其他局外人只是他们工作成果的应用者。我们用计算机和其它新技术组件来开发我们的产品或者组织我们的事务——《人件》

  很抱歉,不管你同不同意,我们大多数人都是技术的使用者,除了极少数的牛人之外,我们都在为产品服务。我们的客户并不想知道你有多么牛逼的算法,也不想知道你用了多少种设计模式,他们要的是,你能给我带来什么价值,能不能让我用得爽用得值。

  一幢房子

  我很喜欢把软件工程与建筑业相比,我很抱歉又把大家和农民工相提并论了,其实我们与他们,并没有本质上的区别,他们在搬砖,而我们在搬bit,他们晒着太阳累一点活得长一点,咱们吹着空调死得早一点。做得好一点的工程师,无非就是一个代码工匠,我们都是手艺人,手熟而已,无它。

  垂直发展是钢筋,而横向发展可能就是水泥。没有钢筋的房子建不高,没有水泥的房子也是有的,不过水泥+钢筋还是多数了吧。无需你自己是钢筋就指责水泥,就象Node.js刚出来的时候,被人指责是一班臭前端搞出来玩的的东西。任何技术都有它的适用场景,离开某个场景可能一文不值,人也一样。

  不要因为自己用Java就批评ASP.net,也无需自己开发Android就骂果粉,我知道,PHP是全世界最好的语言。如果我们能在各自喜欢的领域有更好的发展,不是更好么。你觉得横向发展不好,你不跟就是,他强由他强,清风拂山冈;他横由他横,明月照大江。

  为什么会需要全端工程师

  我们需要有全局视野的人

  老板们都说,开发人员要有产品意识,要有用户意识,如果你只做后端,恐怕你是不能理解前端对用户的重要性。其实说来惭愧,很多人误以为我是个臭前端,其实我从来没有专职做过前端,我很抱歉我站错了队。这么多年,我一直是在写点前端并厚着脸皮混在后端,作为一个低水平的臭后端,我只是更喜欢和用户接近一点而已。

  IT行业的鄙视链是很严重的,大家之间相互鄙视,或者,你换个岗去做对方的工作,我相信你就能了解到他们的工作价值了。前端说用户体验重要,后端说没有后端你前端屁都不是,彼此对调一下,你能感受更多。

  一种技术不能解决所有问题,我们需要从多种技术中权衡,到底是用Hybrid还是用Native,这是要根据你的业务场景和人员配置情况来判断的,不是说看别人写的几篇教程或者指南就能决定的。

  创业公司越来越多

  IT的创业公司越来越多,除了少数真正玩技术的公司,恐怕还是要玩产品的。既然是玩产品,就免不了各种设备各种平台各种兼容。新公司的资源总是有限的,单个工种的工作量又没那么饱和。所以有一个多面手在创业初期是很有帮助的,不可能为了一个iOS的客户端去专门请一个月薪上万的人来做iOS应用,再花上万的月薪找人来做Android客户端,省钱是创业公司的主流,但又希望自己的产品能全面铺开,所以全端工程师是不二之选。

  硬件设备的发展

  有人一定会说,硬件设备和全端工程师有半毛钱关系,还真有那么一些关系。软件最初的时候是单机版,要求的只是软件工程师,后来因为网速的提升与网络的普及,B/S取代了C和C/S,所以就演变成了后端工程师占主流地位。到现在,客户的硬件设备越来越强大,网速也越来越快,所以Web前端会占主流,而所谓的后端会越来越萎缩。不管你愿意不愿意,我认为,未来的后端,会发展到只提供Web API的数据,只需要少数工程师就能搞定。大部工作会由所谓的前端和各种客户端来完成,这就是我讲的后端已死。

  移动设备的发展和云的概念以及第三方平台,肯定对这种需求起到了推波助澜的作用。一方面,企业需要一个能掌握多种技术的人以降低成本,另一方面,也需要一个有全局视野的人来参与,他需要对产品中用到的多种技术都熟悉,所以,全端工程有时候会是一个胶水的作用。

  结语

  全端工程师不会替代后端工程师,也不会替代替代前端工程师,这个职业不是要替代谁,它只是让我们更好的工作,只是一种新的职业而已。胶水有胶水的价值,催化剂有催化剂用处。积极地拥抱变化吧,唯一不变的是变化的本身,你我都无法阻止。

  专精是一个方向,横向也是一个方向,没有谁比谁厉害。不用担心别人呼吸你就没有氧气了,坚持自己的发展方向,你总会有价值的。尺有所长寸有所短,不必因为彼此的发展方向不一就大动干戈,有这力气,还是多搬个砖吧,多动一下,总是要活得长一点的。我知道Master Wugui是不会同意我这个看法的。

全端工程师,就是掌握多种技能,并能利用多种技能独立完成产品的人——涂雅

全栈工程师就是一棵歪脖子树