什麼是全棧(Full Stack)開發者?
創業時什麼都懂點,什麼都做點,做出的產品質量很爛,指望公司搭上風投,有錢了,然後再招專業工程師來補鍋。O(∩_∩)O~~
好吧,我只知道兩個人,一個叫達芬奇,一個叫特斯拉。
從一個產品的需求分析,到原型設計,UI設計,客戶端開發,服務端開發,伺服器部署和運維,到最後的產品上市推廣,全都能幹。
2017-08-26更新
-----------------------------------
對全棧的定義,據我所了解的,最早來源於Facebook的工程師Calos Bueno在2010年底時寫的一篇文章:The Full Stack。作者認為全棧是一個通才,能夠自己創建不平凡的應用程序。他也指出,沒人能夠熟悉所有方方面面,但作為一個全棧,能夠看清每個棧的上下之間是如何運作的。他還提出視覺化一個系統的方案:One way to visualize a system is how its data is shaped and how it flows.
百度百科收錄的定義則是:掌握多種技能,並能利用多種技能獨立完成產品的人。收錄的原文其實是這篇:全棧工程師到底有什麼用。本質上來說,和Calos Bueno的觀點大同小異。另外,也有越來越多人認為,全棧工程師 = 前端開發 + 後端開發。
對全棧工程師,每個人都有不一樣的定義,不一樣的衡量標準。要求高的,認為全棧=全能,需求分析、產品設計、UI設計、移動開發、前端開發、後端開發、運維等,全部都熟悉。要求低的,認為只要既懂前端開發也會後端開發即可,比如,熟悉H5前端開發和Node.js後端開發,就可以稱得上全棧工程師了。在我看來,其實都沒有錯,工程師也有分初級、高級、資深、專家,全棧工程師也一樣有等級劃分。
那麼,我們就從分級的角度來聊聊什麼是全棧。但我不想從傳統的初級、高級、資深、專家的角度來劃分,我想從另一個更高的視角來劃分全棧工程師。
吳軍在得到專欄《矽谷來信》的第054封信中,將工程師劃分為五級,如下:
第五級:能獨立解決問題,完成工程工作;
第四級:能指導和帶領其他人一同完成更有影響力的工作;第三級:能獨立設計和實現產品,並且在市場上獲得成功;第二級:能設計和實現別人不能做出的產品,也就是說他的作用很難取代;第一級:開創一個產業。
從本質上來說,不同層級的工程師需要有能力獨立解決不同高度的問題。第五級只要有能力獨立解決技術任務即可,第四級則需要解決團隊問題,第三級需要解決產品問題,第二級需要解決行業問題,第一級則是最高級的產業問題了。需要注意的是,有能力獨立解決問題,不代表就不需要和別人協作。
全棧工程師屬於工程師的子集,同樣的,也適用這個五層級別的劃分。那麼,對於第五級的全棧工程師來說,就是有能力獨立解決跨棧的技術問題。第四級的全棧工程師,需要具備管理和領導能力,應該是一個全棧架構師。第三級則還需要掌握產品設計能力,有能力做出成功的產品。但這個產品會比以往複雜得多,如果不具備全棧技能,那就很難形成全局性思維,更難以做出成功的產品。再往上還要深入了解行業和產業痛點,需要更高遠的前瞻性能力。
如果這樣劃分的話,那能夠獨立完成產品的全棧工程師應該屬於第三級和第四級之間,而只懂前端開發 + 後端開發的全棧工程師還不一定能達到第五級,因為懂了前端開發和後端開發並不意味著就有能力獨立解決問題。我面試過幾個既懂前端開發,也懂點後端開發的程序猿,但每個端其實都還達不到我要求的及格線,更談不上有能力獨立解決工作中的跨棧問題。
在我看來,一個合格的全棧工程師應該具備硬技能和軟技能。硬技能主要就是熟練掌握工作領域中的各種技術棧了,比如做移動應用的,那可能就要熟悉Android/iOS開發、Java開發、資料庫、運維等。更重要其實是軟技能,我覺得至少應該具備有以下能力:
- 解決問題能力 —— 如果不能解決問題,要全棧工程師何用
- 超強學習能力 —— 全棧需要快速掌握很多技能,所以必須具有超強的學習能力
- 良好溝通能力 —— 全棧雖然有能力獨立解決問題,但在實際工作中還是需要和各種人員合作溝通,在團隊不同成員之間起到橋樑作用
- 技能遷移能力 —— 全棧不會被某一領域綁死,技能可以快速遷移到其他領域,比如可以從移動互聯網遷移到物聯網、人工智慧或區塊鏈等新領域
- 全局思維能力 —— 全棧最大的價值就是擁有全局思維能力
有興趣的可以看我博客的原文,我還談到了為什麼要發展全棧以及如何發展全棧:小鋼聊全棧
以前挖走幾立方的土要花費好幾個人用鏟子挖一整天,現在只需要一個挖掘機操作員和一台挖掘機,幾小時搞定,這就是全棧,既是開始也是結束。
Js,html,css+php/http://asp.net/jsp/ruby/…+sql個人理解
謝邀……
原來這個問題更早啊……不過另外一個問題得到了更充分的討論:怎樣成為全棧工程師(Full Stack Developer)?
雖然說的是「怎樣」,不過在那個問題中大家首先討論的就是「什麼是」。裡頭的不少答案都值得一讀。前能美工搞平面,後能編程架服務。上可server架服務,下可router通路由。文能提筆控顧客,武能揮鞭馭碼農。
每樣都懂一點不難,還是要求有一兩個領域很專吧
多面手複合型人才
反正就是全才的意思
拿半個人的工資,做十個人的活,看完需求,寫完前端搞server,再自己寫個測試,然後上線部署一條龍 ?(????)
會做會做人工智慧,寫劇情,做渲染,做模型,做配樂,做音效,做伺服器,做界面,順便畫個網站宣傳一下剛剛做出來的遊戲的人工智慧
拿最少的錢,干最多的活
一隻會畫demo、寫代碼、做運營的產品狗。
所有的數據結構都用棧(stack)來實現的開發者就是全棧開發者。看他的代碼你只會看見POP PUSH POP PUSH
全棧:一攬子解決方案,包括開發框架、運行環境,相當於有了它,你無需再下載別的軟體,它全包括做一個網站所需的所有環境,除了開發工具之外。
常見的框架有ruby on rails,groovy on grails ,struts spring hibernate等.
全沾工程師 - 沾過前端的光,沾過後端的光,沾過運維的光,沾過產品的光。
然後有天要自己發光。推薦閱讀:
※動漫製作里的經費燃燒具體指什麼?
※怎樣將收音機接受到的電磁波用電腦顯示出來?
※如何把寢室裝修成圖拉丁吧風格?
※看了美劇《奔騰年代》特別想知道和技術宅談戀愛有什麼體驗?