2014年1月20日星期一

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

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

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

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

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

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

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

  一棵歪脖子树

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

  记得三年前我在一篇文章《两个重要而又容易被忽视的角色》中有谈到前端工程师和产品工程师的重要性,结果有一大波后端工程师批评我,他们认为前端就是一个低端的职位,切切图写写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是不会同意我这个看法的。

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

  来源:投稿,原文链接