前端、後端和全棧到底不該學什麼

1、前言
在職業規劃諮詢過程中經常會被問到這樣的問題:

老師,我是該深入鑽研專精一門,走技術大牛路線,還是所有都要精通,做一個全棧工程師?
類似問題的變種還有,老師我是不是該30歲最遲35歲就要轉管理了,是不是技術年齡大了就沒有優勢,精力跟不上了?
這是一個從業者普遍存在的問題,反應了技術發展的兩個方向,一種是縱向一種是橫向的,橫向的是瑞士×××,縱向的是削鐵如泥的干將莫邪。 到底選哪個呢?
要想弄明白這個問題我們要說清楚,全棧是什麼?說道這個我想起我以前的職位還鬧了一個笑話。
有人問我:你什麼職位啊?
我說:前後端開發工程師。
然後他說:是前端開發工程師?
我說:不是。
他說是:後端開發工程師?
我說:不是。
他說:啥叫前後端開發工程師啊?
我說了那個我很不願意說的詞兒,儘可能讓他明白,全棧工程師。
他說:就是啥都會幹唄?
我說不是。
前端、後端和全棧到底不該學什麼

2、前端、後端、全棧是什麼?
然後我岔開了話題,是的,前端後端全棧很多人都有着誤解。
比如很多人按能力排名是這樣的:
前端>後端>全棧,然後人們都喜歡最牛掰的,就像沒人知道第二個登上月球的人一樣,然後全棧就火了。我先把這三個工種該做什麼不該做什麼,大家就清楚怎麼做了。

前端:
所有你能看到的東西都是前端做的,比如界面,比如交互,當然還有數據從後臺讀取展示和向後臺發送數據。
(具體對比如圖,一圖抵萬言。)

前端、後端和全棧到底不該學什麼

後端:
所有跟業務邏輯權限控制數據處理有關的都是後臺做的,比如權限控制,訂單管理,數據庫交互。

前端、後端和全棧到底不該學什麼

全棧:
前端後端都有一定的瞭解和能力,能夠前後端獨立工作。

前端、後端和全棧到底不該學什麼

通過三者的綜述,大家可以清晰的分出前端和後端的工作內容和所需技術,但是對全棧還是不是很瞭解,至少他不是簡單的前端+後端技術的疊加。那麼全棧到底工作內容是什麼呢?他的價值又在哪呢?我們是否需要成爲這樣的人呢?

3、全棧工作內容是什麼?
首先全棧是掌握多種技能,並能利用多種技能獨立完成產品的人 。
他們掌握着獨立完成產品常用的20%技能,另外的80%需要的時候有能力獲得。而另外兩個工種是掌握着專業領域80%的技能,甚至是90%,另外的10%通過其他渠道獲得。

前端、後端和全棧到底不該學什麼

4、全棧價值是什麼?
全棧工程師的工作內容和價值融在一起。
全棧工程師就算是各方面都是80%(確實有這樣的人存在),但是精力有限,他一個人不能長期幹3-5個人的活兒。所以他們工作的大部分內容在全局性把握和溝通,特別優秀的全棧能做到關鍵性技術指導。

全局性把握
現代項目的開發,很少說只用到一兩種技術的,特別是移動互聯網大潮下。隨便一個互聯網項目中用到的技術,就會需要用到後端開發、前端開發、界面設計、產品設計、數據庫、各種移動客戶端、三屏兼容、restFulAPI設計和OAuth等等,一些比較前衛的項目,可能會用到SinglePage Application、Web Socket、HTML5/CSS3這些技術,還有像第三方開發像微信公衆號微博應用等等。

Web前端也遠遠不是從前的切個圖用個jQuery上個AJAX兼容各種瀏覽器那麼簡單了。現代的Web前端,你需要用到模塊化開發、多屏兼容、MVC,各種複雜的交互與優化,甚至你需要用到Node.js來協助前端的開發。
所以說一個現代化的項目,是一個非常複雜的構成,我們需要一個人來掌控全局,他不需要是各種技術的資深專家,但他需要熟悉到各種技術。對於一個團隊特別是互聯網企業來說,有一個全局性思維的人非常非常重要。

在恰當的時機用恰當的技術開發實現恰當的產品常常要遠比具體某個功能實現要複雜和重要的多,而這是全棧工程師需要考慮的。
前端、後端和全棧到底不該學什麼

溝通成本
項目越大,溝通成本越高,做過項目管理的人都知道,項目中的人力是1+1<2的,人越多效率越低。因爲溝通是需要成本的,不同技術的人各說各話,前端和後端是一定會掐架的。每個人都會爲自己的利益而戰,毫不爲已的人是不存在的。

而全棧工程師的成本幾乎爲零,因爲各種技術都懂,胸有成竹,一不小心自己就全做了。即使是在團隊協作中,與不同技術人員的溝通也會容易得多,你讓一個後端和一個前端去溝通,那完全是雞同鴨講,更不用說設計師與後端了。但如果有一個人懂產品懂設計懂前端懂後端,那溝通的結果顯然不一樣,因爲他們講的,彼此都能聽得懂。

全棧工程師的機會
創業型公司和中小型公司的發展,尤其是萬衆創業的風潮,會促進全棧工程師的發展,也會更加凸顯他們的價值,因爲雖然單個全棧工程師的工資很高,但是遠比專業性分工團隊的成本要低得多,而且全棧工程師更能應對多變的創業公司需求,降低團隊溝通成本。

5、全棧面臨的困境是什麼?

但是,很多人爲了成爲全棧工程師或者已經是全棧工程師面對着巨大的困境。
1.一個工作兩年的切圖都比一個全棧工程師切圖好,一個8k的java都比3W的全棧寫的代碼快,他們經歷着博而不精的煎熬。

2.成爲全棧很多人需要花費大量的學習時間,到最後依然是無功而返。
最後造成了一個現象是,你確實什麼都會,問題是我要的是一個8k的切圖,而不是一個3萬什麼都會一點的全棧。

造成這兩個現象的原因有內因和外因兩個方面。

內因看個人定位不清晰,在該專精的時候選擇了全棧。
不管是前端還是後臺,全棧的意思是你能夠獨立工作,不是你前端會切個圖,後端你會寫個sql就行的,而一個領域沒有三年是達不到上述情況的,而很多人工作三年切圖或者js就想着全棧了。

全棧不是一不小心成爲的,是你的工作經驗堆出來的,不是學出來的。舉個例子大家就明白了,大家都看過武俠小說,大家知道哪位頂尖的武林高手一出師門就勵志學會武林各門各派武功的?相反提起東邪,大家想到的是他吹笛子能吹死人,說到西毒立馬想到蛤蟆功,說到南帝一陽指,說到北丐打狗棒,那爲啥到你就得工作三四年就全棧,前後端啥都會呢?

武俠裏面有兩個全棧工程師,一個是鳩摩智,號稱會少林七十二絕技,結果呢,最後變成了“打殘哥”,虛竹來了把他打殘了,段譽來了把他打殘了,最後喬峯來了又把他打殘了,所以想通過學習變成全棧肯定會死的比鳩摩智還慘。

那怎麼辦?武俠最強全棧是掃地僧,這傢伙是bug級存在,但是大家發現人家是靠年頭熬出來的。所以這個是正路,全棧是經驗不是課本,是一種思維。
前端、後端和全棧到底不該學什麼

爲什麼說國外全棧很多呢。因爲很多人都是10年以上工作經驗,一開始是後臺工作,工作了幾年跳槽了換了一家工作發現需要數據交互又做數據交互了,這個時候也會簡單的切圖了,然後工作又變動發現切圖和套js太麻煩了。

用vue試試一不小心又會vue了,vue寫多了,發現後端是不是也可以用js啊,有了node和koa,那數據庫是不是可以呢,上MongoDB,最後發現這個語言不好用,我自己寫個吧。所以很多全棧都是大鬍子中年。

全棧應該是業務需求催出來的,而不是學出來的。可是現在很多提全棧的人都是什麼人呢?大部分是工作3-5年想轉管理的。

其實全棧和技術大牛是殊途同歸的,就像《人月神話》裏面技術專家和手術刀其實最後都融合了。你學吃飯的過程想過是隻學用筷子還是勺子嗎?

因爲當專到一定程度的時候自然就融會貫通了,反過來當你博採衆長的時候,自然就知道哪裏自己薄弱需要加強了,全棧和專業並不衝突,他們的目的都是爲了完成工作這件事。

從外因看,科技節奏的飛速發展,萬衆創業催生出了一系列小型公司,從成本催生了對全棧的熱捧,另外知識行業的販賣焦慮,培訓行業的推波助瀾,加劇了前端行業對全棧的急功近利的追求。

所以所有前端從業者應該明白,技術是爲解決問題服務的,找準自己的位置,通過時間去不小心成爲全棧,而不是成爲書本里的全棧,做一個務實的技術從業者,那麼他的明天一定是光明美好的。
最後一句,技術是爲解決問題服務的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章