全棧工程師的定義和價值

軍說網事發表於2018-06-25

一、全棧工程師的定義

全棧(Full Stack)工程師,也可以叫全端工程師,無論是前端知識,還是後端架構你都要了解。甚至有些調皮的程式設計師這樣理解全棧工程師:全棧工程師=屌絲戰鬥機=系統+網路+研發+dba+架構+安全=沒女朋友、拿一份工資做三份事情的典型、每個站長都是一個全棧工程師,每個站群的站長都是超級全棧工程師。

也有人是這樣說的:掌握多種技能,並能利用多種技能獨立完成產品的人。

舉例:假如你是一個Web開發者,如果你既能做前端(需要熟悉HTML、CSS、JavaScript、H5以及Bootstrap、EasyUI等各種前端框架),又能做後端(需要熟悉Java或ASP.net或php或Node.js或Go,選項太多就不一一列舉了),可以獨自一個人完成一個類似電子商務網站的產品的開發,那你就算是全棧工程師了。

有木有明白?木有的話我在給你來個解釋 :

假如你是一個App開發者,既能開發Android應用(需要熟悉Java和Android框架),又能開發iOS應用(需要熟悉Objective-C或Swift以及Cocoa for iOS),又可以開發應用需要的後臺(需要熟悉Node.js或Java或Go或...),總之你可以獨自一個人開發出一個覆蓋Android和iOS的且有業務後臺的App,那你也就算是全棧工程師了。

百度百科的說法是這樣的:

全棧工程師是指掌握多種技能,並能利用多種技能獨立完成產品的人。也叫全端工程師(同時具備前端和後臺能力),英文Full Stack engineer。

那到底什麼是全棧工程師?

我對全棧工程師的定義是:掌握多種技能,並能利用多種技能獨立完成產品的人。打外比方,全棧工程師就是一個能獨立蓋一幢10層小洋樓的人,而普通工程師,則是可以和一群人蓋一幢摩天大樓的人。

那說到技能,跟行業還是有關係的,比如金融行業的全棧與視訊行業的全棧,需要掌握的技能就是有不同的。所以,需要掌握哪些技能,我們不展開討論。

而對於技能的掌握程度如何定義呢?人畢竟精力是有限的。是的,8/2定律在哪都適用,全棧工程師就是掌握20%常用技能的人,但這20%的技能會有80%的機率被用到,剩下那80%不常用的,需要知道是什麼,可以不用太懂。

二、全棧工程師的價值

當然有人會說了,一個人在牛,也不可能掌握所有的技能,即使能掌握很多技能,也不能一個人完成一個較大的專案,首先客戶也不會同意。

這個問題很好,其實是在說全棧工程師的價值。

在實際專案中,會涉及到很多技術,隨便一個網際網路專案中用到的技術,就會需要用到後端開發、前端開發、介面設計、產品設計、資料庫、各種移動客戶端、三屏相容、restFul API設計和OAuth等等,一些比較前衛的專案,可能會用到Single Page Application、Web Socket、HTML5/CSS3這些技術,還有像第三方開發像微信公眾號微博應用等等。

所以說一個現代化的專案,是一個非常複雜的構成,我們需要一個人來掌控全域性,他不需要是各種技術的資深專家,但他需要熟悉到各種技術。對於一個團隊特別是網際網路企業來說,有一個全域性性思維的人非常非常重要。

在專案溝通中,全棧工程師因為各種技術都懂,與不同技術人員的溝通也會容易得多,你讓一個後端和一個前端去溝通,那完全是雞同鴨講,更不用說設計師與後端了。但如果有一個人懂產品懂設計懂前端懂後端,那溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。

全端工程師的樂趣要比一般工程師來得多,因為你知道一個產品的形態,你可以去設計一個產品,你是從全域性的視野來做事情,你得到的成就感會更多一些。

 

相關文章