全棧工程師


最近,網上很流行一個詞:全棧(Full Stack)工程師,也能夠叫全端工程師,不管是前端知識,仍是後端架構你都要了解。甚至有些調皮的程序員這樣理解全棧工程師:全棧工程師=屌絲戰鬥機=系統+網絡+研發+dba+架構+安全=沒女友、拿一份工資作三份事情的典型、每一個站長都是一個全棧工程師,每一個站羣的站長都是超級全棧工程師。前端

之前,軟件工程師最在乎的是成爲某個領域的專家或者高手,現在,隨着軟件技術的發展以及需求的變化,尤爲是愈來愈多的程序員出來本身創業,因爲各類條件限制,許多技術上的問題不得不親力親爲地去完成,所以,不少程序員慢慢地就練就了精通多門技術的本領。程序員


該截圖來自    知乎網後端

這不,就有位程序員在知乎上提問:「    怎樣成爲全棧工程師(Full Stack Developer)?,在OSCON會議上,一名Facebook的工程師說他們只聘請「全棧(Full    stack)」的程序員。」此話題一出,引發了你們的熱烈討論。許多經驗豐富的工程師紛紛在下面留言,討論成爲全棧工程師的價值在哪裏,你們是否須要成爲全棧工程師,筆者就知乎上的精彩回答進行了整理,不妨一塊兒來看下:瀏覽器

Cat Chen    
安全

既然原文是說,Facebook工程師說Facebook只招Full Stack Engineer,那我就來講說Facebook Engineer都是怎樣的人。    
   
我以爲任何一方面的具體經驗都不重要,重要的是思惟方式和學習能力。首先說思惟方式,那就是不爲本身設限,不會想着本身是前端工程師,所 之後端的東西我就一點也不碰。Facebook     的工程師,級別越高就須要保持越大的影響力。如何創造更大的影響力,就是尋找當前槓桿效應最明顯的問題來解決。有些問題你解決了的話,投入進去的時間每小 時能換回來一千美圓;有些問題你解決了的話,投入進去的時間每小時能換回來一百萬美圓。然而哪些問題更值得解決,這是動態的,每每還存在衰減效應。若是現 在性能瓶頸在後端,你作了一個季度兩個季度優化後,瓶頸就已經不在後端了,你再優化下去衰減效應就會愈來愈明顯。等瓶頸變成前端了,你是否是就說由於你不 懂,因此不肯意碰?那就至關於寄望於公司有個前端很懂性能優化的人來解決,但若是公司沒有這樣的人那就沒有人來解決了。    
   
Facebook的衆多海報當中,有一張寫的是「任何一個Facebook 的問題,都不是別人的問題」。有問題,你就需 要去評估是否值得解決。若是值得解決,你就應該着手去解決,而不是假設公司內會有另一我的比你更合適解決這個問題。這時候極可能你就須要去作你歷來沒有 作過的事情,須要學習你本來可能徹底不懂的技術。若是你是個專門作數學模型的博士,加入Facebook 本來是打算作搜索結果優化的,結果發現這不是最急需解決的問題,JavaScript 性能纔是最須要解決的問題,你怎麼辦?若是你覺得    Facebook 須要的是你作數學模型的經驗,那你就錯了。Facebook 須要的是你完成博士學位的學習能力。你歷來沒作過JavaScript而且以爲JavaScript很噁心?正確的作法是當即在網上買幾本 JavaScript入門的書連夜看完,而後着手分析性能瓶頸而且解決。在你完成手動優化後,你還能夠思考一下可否把這作成自動化,例如說在代碼提交時分 析JavaScript語法樹而且指出可能成爲性能瓶頸的地方,又或者說從用戶瀏覽器那裏收集性能數據扔到Hive而後再從中分析產生瓶頸的特徵。這些都 可能涉及到一些你沒有作過也沒有學過的東西,但問題擺在那裏你就須要去解決,而不管這要求你去鑽研什麼。這就是我所說的學習能力。 性能優化

顧鵬

設計、後臺開發、前端開發、移動開發、運營維護、PS、文案... 好像都會了,這算Full Stack Engineer了麼?    
   
不,這只是踏上成爲Full Stack Engineer的第一步。你知道目前只是每一個stack都懂一點,離senior或者expert還差得遠,而要每一個stack都作到極致,須要大量的 時間和精力。精力有限,產品開發緊迫,力不從心啊,這條道路也太孤獨,由於你不須要與任何人進行協做。難道要把一些stack的任務交給別人作麼?這樣算 是放棄成爲Full    Stack Engineer麼?服務器

不!這不是。什麼是Engineer?Engineer的本質工做是設計,開發出應用於大衆的產品。網絡

一個真正的Full Stack Engineer,他從生活中發現問題,洞察需求,他設計解決方案,並開發出初始版本的產品。爲了達到目標,他願意去學習任何領域的技能和知識。同時他不 追求一我的完成全部工做,若是有人能夠比他在某方面作得更出色,便會十分熱情的邀請他們加入。    
   
最終他的職位也許再也不是Engineer,他再也不設計UI,再也不寫代碼... 他的工做再也不是設計/開發一款應用/產品,由於他有更大更重要的任務要作——design    and building a team or a company which builds great products。    
   
而這時,社會給了他們另外一個稱呼——創業者。儘管衆人已忘記他們engineer的身份,但在他們骨子裏,心裏深處,本身始終都是一個engineer。當他們須要從頭再來時,他們絕不猶豫從設計開發產品作起。Nikola    Tesla,Ferdinand Porsche,Henry Ford,Jack Dorsey,Mark zuckerberg,Elon Musk...    細數那些改變了或正改變世界的創業者,他們大多數是engineer背景,熱衷於設計創造。他們學習技能和知識,不是爲了成爲某個領域的專家;而是由於那些 是完成本身目標所須要的。    
前端工程師

李楠
架構

Full Stack Developer在國內不被接受的一個主要緣由是公司缺少穩定的T線(技術職位晉升路線)。不少有才華的人寫了幾年代碼後去作了管理。今天的網絡相關技 術,聰明又能持續學習的人,在三年以內能夠在一個領域作到很高的水準。那麼若是你作五年,十年甚至十五年呢?我認爲成爲Full Stack Developer是很天然的選擇,並且能夠跟隨最頂尖的技術。

Full Stack Developer的核心並不是否認團隊和協做,而是更多的體如今架構設計,快速原型和TroubleShooting方面。隨着今天的分層愈來愈清晰,平臺和語言愈來愈有特色,更加全面的技術人員能夠根據不一樣的語言搭建整個架構。

Full Stack Developer並不是雜而全——Facebook也不會僱庸手。他要求的是一種更加全面的深刻。 一方面,他是技術人員不斷學習的結果。另外一方面,他也是對本身事業的一種責任。

kubisoft

既然叫工程師,就是應該負責技術的,而不僅是寫代碼。

各 方面的技術,各方面的技術架構。好比,關卡編輯器裏面的圖層該怎麼搭,如何定義?美工PS出來的圖片應該是什麼規格?這些都是技術架構,都是工程師要去作 的。工程師應該幫美術作好圖,作好動畫;幫策劃作好關卡,填好數據;這纔是工程師。全部跟技術相關的東西,包括Photoshop的使用細節,3dmax 的使用細節,都是工程師須要去搞定的。美術只是在工程師作好的基礎上讓它更漂亮更好看,策劃讓它更好玩。

若是隻侷限 在本身的代碼中,就只能是程序員。若是隻關心客戶端而不關心服務器,就沒法對技術負責,就只能是一個程序員。每個實際問題,都有可能涉及各方面的技術。 舉個例子來講,作格鬥網遊,要作出良好的打擊感,你就不只要關心渲染技巧,還要關心美術特效,還要關心網絡,關心服務器應該傳送過來哪些數據,還要關心哪 些東西是對玩家有用的必須表現出來的東西...當你的關注重心從代碼轉移到具體實際的問題的時候,就成爲了一個工程師了,繼續努力下去,就很容易變成全能 的工程師。

知乎上的匿名用戶:

首先我以爲好的開發者,即便不是全棧,也要融會貫通多種技術。我歷來不認爲一個只專精一種技術的人有可能成爲好的開發者,即便是C,即便是彙編。(固然其實反過來看,那些大神們哪一個不會搞點其餘的?好比幾個作服務器端開發的大神竟然不懂服務器管理?) 

而後從廣度和深度的組合看,我認爲好的開發者大概有兩種類型: 

  1. 手術刀

  2. 代碼專家。

(來自《人月神話》) 

手術刀是業務驅動的,最須要全棧的人;他們的核心價值在於:懂業務,技術全面,都能拿的起來,並且能選擇最合適的技術。代碼專家是技術驅動的,即便不夠全棧也能夠用,可是技能樹點的越多固然有好處。 

下面要講的是創業逼出來的全棧,對於創業團隊而言,手術刀更加劇要,代碼專家要依靠各類開源組織的貢獻,或者臨時聘請。創業的最大需求技能是整合資源的能力,找合適的人作事的能力。 
因此我說的,是說對於我,種子期,天使期,最重要的都是我本身做爲手術刀,而不是資源整合者。

全棧工程師不是爲了工做自己,是爲了方便實現本身的夢。 

若是不是創業,個人價值可能也就是個2w 多工資的架構師或者技術經理,這個價格遠遠對不起我這13年的付出。一個真正的全棧工程師,目標只有一個:創業。 

看了上面的回答,你是否知道了如何成爲一名全棧工程師呢?關於該問題的更多討論,歡迎你們訪問知乎討論頁。(以上內容來自知乎網

隨着工做經驗的逐年增長,程序員/軟件工程師所接觸的技術領域會愈來愈普遍,無形中就會對某個技術有所瞭解,對於上進、想闖出一番天地的程序員而言,他們很是樂意而且會主動去學習這些技術,這樣,天然而然的就學會了多門技術,精通多種語言。

立刻就要春節放假了,許多人都在作年終總結和新一年的規劃,許多程序員都但願本身在新的一年裏能作出更好的產品、學到更多知識、進一步提高本身的技能和綜 合能力,這或許也是全棧工程師成爲熱門的緣由之一。那麼,這是否也說明,要想在軟件開發領域走的更遠,就必須掌握更多的技能,成爲一名全棧工程師呢,這會 成爲將來程序員的職業趨勢嗎?你們不妨一塊兒來討論下。

相關文章
相關標籤/搜索