全棧工程師

一種職業

全棧工程師是指掌握多種技能,勝任前端與後端,能利用多種技能獨立完成產品的人。

徠由於經常在各種技術穿梭,他會經常忘記代碼的語法和一些API,所以他經常需要去查API甚至查語法,他覺得沒有Google我幾乎沒法工作。這在某些人的眼裡,是技術不夠的表現。他記的只是一個Key,一個如何找尋答案的索引,而不是全部,人腦不是電腦,他不可能能記下所有的東西

價值


全局性思維

現代項目的開發,需要掌握多種技術。網際網路項目,需要用到後端開發、前端開發、界面設計、產品設計、資料庫、各種移動客戶端、三屏兼容、restFul API設計和OAuth等等,比較前衛的項目,還會用到Single Page Application、Web Socket、HTML5/CSS3這些技術以及像第三方開發像微信公眾號微博應用等等。
Web前端也遠遠不是從前的切個圖用個jQuery上個AJAX兼容各種瀏覽器那麼簡單了。現代的Web前端,你需要用到模塊化開發、多屏兼容、MVC,各種複雜的交互與優化,甚至你需要用到Node.js來協助前端的開發。
所徠以說一個現代化的項目,是一個非常複雜的構成,我們需要一個人來掌控全局,他不需要是各種技術的資深專家,但他需要熟悉到各種技術。對於一個團隊特別是網際網路企業來說,有一個全局性思維的人非常非常重要。

溝通成本

項目越大,溝通成本越高,做過項目管理的都知道,項目中的人力是1+1<2的,人越多效率越低。因為溝通是需要成本的,不同技術的人各說各話,前端和後端是一定會掐架的。每個人都會為自己的利益而戰,毫不為己的人是不存在的。
而全棧工程師的溝通成本幾乎為零,因為各種技術都懂,胸有成竹,自己就全做了。即使是在團隊協作中,與不同技術人員的溝通也會容易得多,讓一個後端和一個前端去溝通,那完全是雞同鴨講,更不用說設計師與後端了。但如果有一個人懂產品懂設計懂前端懂後端,那溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。

創業公司

對於創業公司來說,全棧工程師的價值是非常大的,創業公司不可能像大公司一樣,各方面的人才都有。所以需要一個多面手,各種活都能一肩挑,獨擋多面的萬金油。對於創業公司,不可能說DBA前端後端客戶端各種人才全都備齊了,很多工作請人又不飽和,不請人又沒法做,外包又不放心質量,所以全棧工程師是省錢的一妙招。雖然說全棧工程師工資會比一般的工程師會高很多,但綜合下來,成本會低很多。

困境


技術有兩個發展方向,一種是縱向一種是橫向的,橫向的是瑞士軍刀,縱向的是削鐵如泥的幹將莫邪。這兩個方向都沒有對與錯,發展到一定程度都會相互溶合,就好比中國佛家禪修的南頓北漸,其實到了最後,漸悟與頓悟是一樣的,頓由漸中來。可以說全棧什麼都會,但又什麼都不會。
如果一個公司不太懂全棧工程師的價值,那麼全棧工程師的地位將會很尷尬,說得不好聽一點,全棧工程師就是什麼都會,什麼都不會。曾經有一次面試,對方問很基礎的問題,他答不上來,但他能做出產品,也知道什麼是怎麼一回事,他也不會犯那些錯誤,可他就是答不上概念,要考倒他非常容易。所以在應聘面試的時候,有些時候會吃虧,他可能會不如那些在某一方面鑽得很深的人工資拿得高。