1. 程式人生 > >全棧工程師到底有什麼用

全棧工程師到底有什麼用

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


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


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


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


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


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


    一棵歪脖子樹


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


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