塗雅:全棧工程師就是一棵歪脖子樹

發表於2014-01-22

一個故事

老張有一個林場,專門種植樹木,待樹木成材後銷到城裡做傢俱。林場裡有不少杉樹,長得都非常挺拔,偏偏不知怎的長了一棵歪脖子樹,長得倒是鬱鬱蔥蔥,偏偏造型奇特,別的樹都力爭上油,可這棵歪脖子樹不僅橫著長,還長得頗為怪異。老張幾次都想挖掉它當柴火燒,看它那怪異的造型又忍住了,心想等這批杉樹成材,一起砍掉吧。

一到晚上夜深人靜的時候,林場裡就炸開了鍋,杉樹們極力取笑歪脖子樹。“你知道作為一棵樹,我們的終極目標就是成為有用之材嗎,你看旁邊那個,可以做樑柱,小歪脖子,你丫能幹啥啊?”;”這個臭歪脖子樹,搶了我們的養分和陽光,長成這樣,完全是丟我們的臉,我呸!”。

歪脖子樹有自己的夢想,它要長成它喜歡的造型,如此日復一日,林場裡的杉樹漸漸長大了,老張決定逐步賣掉這些杉樹。隨著一批批杉樹被運出去,奚落與嘲笑更多了。“瞧睢人家,你左邊的那棵,現在在被打造成前臺,在知名大企業,右邊的那棵更牛逼了,它被做成了老闆桌,你知道天天用的老闆是誰嗎,說出來嚇死你。你個臭傻逼,作為一棵樹,你居然不向上長?”

林場裡的樹越來越少了,歪脖子樹也有些失落,對自己的未來產生了懷疑,當初為什麼不和他們一樣長呢。

有一天,一個老闆和他弟弟過來買樹,他弟弟是個園藝家。園藝家正在籌劃一個大型的園林,一切都弄好了,唯獨還差一棵造型奇特的樹作為點睛之用,他找了很多地方,不是造型不滿意就是人為痕跡太過於嚴重。終於,他看到了這棵歪脖子樹,立馬柏板重金購買。

老張覺得不可思議,林場裡的杉樹們更是炸開了鍋,“憑什麼啊,我們長這麼高,它就那麼點高,還長得這麼怪,憑啥賣了這麼高的價錢”。原來,隨著經濟條件的的變好,人們有閒錢了,也願意花錢去欣賞園藝了,長得高的樹木很多,但長得怪的樹木卻是極為難得。

一棵歪脖子樹

有些人一聽這個字滿腔怒火,憑啥你的職業中帶一個全字,你是要前端後端通吃嗎,還要吃掉移動端,你是不是要搶我的飯碗。你憑什麼啊,做技術就應該專精,你知道茴香豆的茴字有幾種寫法嗎?

記得三年前我在一篇文章《兩個重要而又容易被忽視的角色》中有談到前端工程師和產品工程師的重要性,結果有一大波後端工程師批評我,他們認為前端就是一個低端的職位,切切圖寫寫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是不會同意我這個看法的。

全端工程師,就是掌握多種技能,並能利用多種技能獨立完成產品的人——塗雅

相關文章