為什么你不需要做一名全棧工程師?

jopen 9年前發布 | 21K 次閱讀 全棧工程師

原文  http://developer.51cto.com/art/201507/486125.htm


對所有技術淺嘗輒止的所謂「全棧工程師」已經OUT,那么現在,我們需要怎樣的跨領域技術綜合者呢?

我敢打賭,沒有人可以憑借一己之力掌握下圖這些領域不斷更新的先進知識。單單是緊跟每個類別中的進化和新的編程接口,就幾乎是一個全職的工作量。

為什么你不需要做一名全棧工程師?

在Web 2.0時代,全棧工程師是可能的,但是隨著新一代創業公司的興起,推動了各種技術的邊際突破。從機器智能到數據分析、再到可穿戴/移動設備,讓一個程序員個體實現跨全棧編程實際上變得不現實了。

在還沒有移動和Web的上世紀七十年代后期,通常是一個人從頭到尾寫全部的程序,在程序員和硬件之間并沒有很多其他的軟件層。8位處理器和內存非常有限的機器,迫使程序員使用規范的匯編語言。

隨 著上世紀80年代末和90年代初客戶機/服務器處理(client/server computing)的演進,以及90年代末20世紀初互聯網浪潮的來臨,編程應用很快成為一項團隊行為。新技術的每一面都是如此復雜,以至于需要專門的 專家,即一個人精通好幾層(如前端/數據庫/應用服務器等)。維護一個商業網站成為一門專業,包括操作網絡設備(e.g.路由器和負載平衡器等),調整 Java虛擬機,以及使用各種數據庫索引機制。

到了21世紀中期,創造幾乎任何東西,從簡單的網站到下一代SaaS服務,都十分地昂貴。上 漲的費用直接與從各個層相關的許多個人之間的開銷通信(并且經常錯過通信),以及在一層級聯到其它層和成部署參數的改變有關。正如Marc Andreessen(網景創始人,現風投)在推ter上刷屏討論燒錢問題時說: 「大量員工將使通信效率呈指數式下降,導致所有一切速度放慢。」 (More people multiplies communication overhead exponentially, slows everything down.)

另 一方面,創造新一代Web 2.0網站的技術越來越精簡和簡化。程序員從使用復雜的企業級Java堆棧和數據庫(e.g.Oracle),切換到更直接的LAMP組合(Linux操 作系統,Apache,MySQL和PHP/ Python/Perl)。新的語言和框架(e.g.Diango和Ruby on Rails)使得網站和數據庫之間的層自動化。前端框架(e.g.jQuery)幫助簡化了不同瀏覽器之間錯綜復雜的關系。云服務(e.g.Amazon Web Services)簡化了部署,提供了鑰匙網絡。

到21世紀后期,對許多程序員來說,提供一個完整的消費者或SaaS的網站成為 可能,包括一個動態的Web客戶端,服務器端的業務邏輯,一個可伸縮的數據庫,部署和運營支持。這種新品種的全棧工程師可以和一支團隊一樣完成整個任務的 環。當這個項目做大了,全棧工程師可以實現一個人在應用的所有層加一個功能,這樣就減少了和不同層的人溝通的通信成本,從而加速功能交付。

為什么你不需要做一名全棧工程師?

如果你建的網站是上面這樣的全棧模型,找到全棧工程師可以有效地解決問題。但是現如今,我認為,這并不是夠格的全棧工程師。第一張圖才是更全面的全棧。

我 們正處在向更多復雜科技迅速轉型的中期,隨著時間的流逝,在每一層都需要專家。開發優秀的iOS和Android應用需要理解這些平臺錯綜復雜的專家。在 實際操作中,轉向新的數據庫,比如MongoDB,需要不斷的關注和調整。在云服務(e.g.Amazon)上運行一個應用需要了解它的各種服務的細節, 以及如何實現跨區域故障轉移的專業知識。即便是古老的Web前端,現在都演變成CSS4、JSON和JavaScript的MVC框架,比如 Angular.js和Backbone.js。

在這個全新的世界中,關鍵是至少有這樣一個人:對每一個部件都至少有功能性的了解,同時可 以把不同的層連接起來,和不同領域的專家一起合作,從而最終實現某個功能。在這種意義上,這些連接層、建橋的軟件工程師,即精通某一層或好幾層的專家,就 是比全棧工程師少一點,比全棧綜合者(Full Stack Integrator)多一點兒的人。

總之,「全棧工程師」,可以安息了。在無限廣闊的未來,我們歡迎在某一特定領域有深入技術見解的「全棧綜合者」!

100offer的用戶是怎樣看「全棧」的?

用戶背景

周 瑾(化名),7年以上開發經驗,國內一本畢業,BAT資深研發工程師,具備多個大型平臺前端架構設計開發經驗,有iOS、MAC開發經驗,有移動Web開 發經驗,精通NodeJS,熟悉后端開發的流程和技術面,具備全棧開發能力。團隊管理經驗豐富。在5月第3期拍賣中收獲37個面試機會,現已入職北京某創 業公司。

100offer:普通程序員如何向全棧發展?

周瑾:我認為工程師可以分為兩 種:一種喜歡鉆細一個東西,然后以此為生;還有一種喜歡不斷折騰,需要去滿足自己了解未知的欲望。拿我自己來說,我屬于后者。我有創業經歷,也做過大公司 的螺絲釘。螺絲釘其實滿足不了我對技術的興趣,所以在工作過程中我在不斷尋找自己的技術邊界,并試圖打破它。就這樣,技術開始變得一點點全面起來。

全棧絕對是自我驅動的一個過程,我其實是在不知不覺中會了這么點東西,變成了所謂的「全棧」似的。業界的高手多得很啊^^

100offer:全棧工程師適合創業公司,還是大公司?

周瑾:創業公司比較喜歡招全棧,這和創業公司的需求有關系,因為創業初期的公司可能需要一個人做幾個人的活。另外,可能老板是技術出身,了解部門之間銜接所需要付出的巨大溝通成本,所以傾向于更少的溝通單位。

其 實大公司也不錯,大公司有更人性化的工作時間,且穩定,一般情況下是不會讓員工的工作飽和到滿(當然有些個別組很過分)。在大公司的時候,我完成了自己的 工作,喜歡折騰什么就折騰什么,然后你覺得自己可以了就可以申請轉崗成其他職位(當然這里也要自己承擔角色轉換帶來KPI問題,畢竟換了領域就是一個新兵 了嘛)。

總之,全棧不應該是對所有技術淺嘗輒止,而是一專多能或多專多能。無論是自己去創業,還是放到固定崗位上都能大放異彩。

100offer:全棧工程師有什么優勢呢?

周瑾:我其實不怎么覺得全棧有優勢,我只能說能看到這種人身上的一點點共性。視野,思維和學習能力確實有點優勢,但我認為共性是性格上的。我接觸到的在互聯網行業跨領域性的人,其實都比較單純,或者說編程對于這類人來說不是一種謀生途徑而是一種個人興趣。

我覺得全棧更多的是自己對純技術的渴求,深入任何一個技術領域都是很細致的一件事,全棧與否更多的是一種經驗上量變到質變的過程。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!