怎麼樣成爲一個全棧程序員(請把一個能力發展到90,若是你還有餘力把另外一個能力發展到90,不然就是平庸的廢材)

受蘇格拉底大神的啓迪,我也來談談全棧。
禪師:成爲全棧工程師,這個問題等於如何成爲全才,有可能嗎
碼農:有可能,不過可能性比較低,由於達芬奇這類人畢竟是百年一遇的奇才。不過,由於我熱愛這個行業,也有必定天賦,因此只作好軟件全棧的話我想仍是可能的
禪師:你玩過三國志這個遊戲嗎
碼農:我還開發過
禪師:你喜歡什麼樣的武將,諸葛亮怎麼樣?
碼農:不錯,雖然他武力只有20,不過智力有100,不過遊戲出戰不是單打獨鬥,我能夠給他搭配武力100,智力20的呂布,在戰場上所向披靡
禪師:對於一個武力65,智力65的武將,你怎麼處理
碼農:砍頭或讓他下野,浪費軍糧和黃金
禪師:可是他很全面啊,兩項能力綜合130分,比諸葛亮和呂布的綜合分還要高
碼農:話雖如此但他仍是太平庸,沒法獨擋一面
禪師:趙雲怎麼樣
碼農:這是我最喜歡的武將之一,武力97,智力80,還有一個姜維也是,武力91,智力91,這是我心中全才的標準
禪師:首先,請把一個能力發展到90,若是你還有餘力把另外一個能力發展到90,再稱呼本身全棧吧,不然你只是一個全面發展又全面平庸的廢材。
碼農:我明白了,我想facebook和google標榜的全棧,也確定不是一個c++,java,ios,php,blabla都只會編寫hello world的全棧。php

參考:http://www.zhihu.com/question/22420900前端

-----------------------------------------------------------------java

若是學習是被動的,那麼人生也會是被動的。ios

-----------------------------------------------------------------c++

我比較喜歡的二句話,一句是:「廣度是嘗試研究的副產品」,另一句話:「秒殺泛泛之輩的是一技之長,秒殺一技之長的是博聞強識。數據庫

全棧不是目的,而是順帶的結果,當你職業生涯到差很少的時候,天然而然就是了,或者不是,無所謂的。安全

成爲全棧工程師不是目的,在只有你一我的的時候,你須要獨自把腦海中的想法創意變成產品,這時候你就不得不去學習全棧技術。作這件事的目的也許是爲了實現人生價值,也許僅僅只是興趣愛好。前端框架

很是贊成樓上幾位磚家的話,fullstack實際上並非要你的知識面有多廣,而是你要保持接觸新事物的心態。在須要迫切解決某問題的時候,願意第一時間去接觸未知的技術、信息,解決必須解決的問題,然後積累下來成爲經驗,而經驗能下降你的學習成本,讓你更快的吸取理解未知技術。服務器

興趣和創業,會刺激你。。我是一個獨立遊戲製做人,我從事遊戲行業已經10年了,之前在國內頗有名的遊戲公司任職主程序,能夠從零寫一個3D引擎,後來本身在北美髮行一款獨立遊戲,收入很豐厚就辭職了。我會C++,C#,JAVA,美術方面我會手繪,3D建模,貼圖,動畫。。每款遊戲帶給個人利潤值得我去作學習和開發。。。。我天天低調的享受自由的生活。。作全棧工程師的祕訣就是作本身想作的事情,各類需求會刺激你去學習。。若是是被強迫的,那麼就毫無心義。架構

全棧或許不須要用一個職業去衡量,更多的是能夠理解爲一種解決問題的全局思惟和有針對性學習的能力。假設你是個技術人才且主要負責前端方面的任務,那麼不管你使用何種技能,最終你須要關心的是你或是你的團隊是否出色的完成了任務。那麼你是否清除當前所作的產品的準肯定位,目前使用的前端ui和ue是否符合使用對象的交互習慣,是否要考慮使用更加符合移動需求的前端框架,用戶的使用數據和後臺的對接是否安全有效,考慮到目前的項目使用的後臺腳本語言和數據庫,是否要在目前的代碼結構上作必要的優化以便於進行後期的維護,若是工程師對於技術的廣度和深度有清晰的、全面的瞭解,這就是全棧工程師在解決這些問題上所具備的優點。 若是你選擇了去創業,那麼如今問題就變了,原來可能擺在你面前的難題是如何優化本身的工程,如今最大的問題就是如何讓你的公司很好地生存下去,爲了達到這個目標你就得不斷地去學習沒有接觸過的知識,這時候若是你是個有必定創業經驗和社會閱歷積累的人,或許你就會少走不少彎路,這就是人們常說的有很強的嗅覺和大局觀,facebook喜歡招全棧工程師應該也和其獨特的startup文化有關,能草率解決問題的人不如可以完全解決具體問題的人,而可以完全解決具體問題的人,仍是不能比肩提早預知問題並有效杜絕問題發生的人。

全棧,我以爲是一種學習精神吧。至於在cn,這麼浮躁的大環境,全棧=萬金油吧

不是爲了全棧而全棧,而是解決的問題多了,整個知識體系創建起來以後,就能搞定各類各樣的問題了。
本身創過業開過公司的,完總體會過拿到項目,項目分析,而後開發,數據分析,RushDemo,上線,通宵加班,擴展客戶端,測試,運營,拉投資,開公司,招人,踢人,被人踢,項目拿錢,避稅,追錢,追錢成功,討債失敗以後.....(好多苦逼的事情),最後二次創業以後不管作什麼,其實都覺的so easy 同樣的淡定。。。

現有的答案已經說明了,以一個正常人的精力和學習速度來講,想在 full stack 的每個層面都達到頂級的精通顯然是很困難的事情。可是作不到這一點就算不上 full stack developer (FSD) 了嗎?其實我但願你們留意題主引用的那段英文的最後一句:a genuine interest in all software technology. (對全部的軟件技術抱有一種真摯的興趣)。

我以爲對於 FSD ,尤爲是對於想成爲 FSD 的人來講,這個態度纔是最重要的事情。即便都是 FSD,每個人各自的技能加點也確定會不同,有人在前端更擅長一些,有人在服務器層面更有經驗... 但其實沒有什麼硬性的門檻,須要的是解決任何問題的能力和意願。你要作到的就是不固步自封在一個領域。遇到問題,就去研究,不由於問題不在你的 comfort zone 就放棄或者推給別人。即便一開始的解決方案很笨拙也無所謂,just learn whatever it takes to make it work. 好比說我要作一個網站,我有一些東西沒碰過,但我有足夠的興趣和動力去搞個八九不離十。(這裏自學能力很重要,有好的 mentor 也會幫助很大)當你經歷過一次這個過程之後,你就會有信心去弄明白更復雜的東西,在以前的基礎上進一步去消化、改進、學更多的東西。

另外,我我的以爲這個過程應該是由實際問題驅動的,而不是漫無目的看到什麼東西流行了或者以爲很NB就去學。@莊生 的答案裏提到絕大部分的網站都活不到或者永遠也達不到10k用戶在線的水平,那種狀況下去看 high scalability 的東西有什麼意義?學的東西用來解決或是改進實際遇到的問題,這樣你的整個知識體系覆蓋面和側重點會比較合理。打個比方就是你的技能點有限,因此加點方案得有一個主題,處處亂點的話就廢了。

回到起點,全棧工程師不是爲了工做自己,是爲了方便實現本身的夢。若是不是創業,個人價值可能也就是個2w 多工資的架構師或者技術經理,這個價格遠遠對不起我這13年的付出。一個真正的全棧工程師,目標只有一個:創業。

-----------------------------------------------------------------

一個真正的 Full Stack Engineer ,他從生活中發現問題,洞察需求,他設計解決方案,並開發出初始版本的產品。爲了達到目標,他願意去學習任何領域的技能和知識。同時他不追求一我的完成全部工做,若是有人能夠比他在某方面作得更出色,便會十分熱情的邀請他們加入。

最終他的職位也許再也不是 Engineer ,他再也不設計 UI ,再也不寫代碼 ... 他的工做再也不是 design and building an app or product,由於他有更大更重要的任務要作 - 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 背景,熱衷於設計創造。他們學習技能和知識,不是爲了成爲某個領域的專家;而是由於那些 是完成本身目標所須要的。

-----------------------------------------------------------------

相關文章
相關標籤/搜索