樂死我了,怎麼樣成為一個全棧程式員(Full Stack Developer) good

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

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

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

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

如果學習是被動的,那麼人生也會是被動的。

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

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

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

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

非常同意樓上幾位磚家的話,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 背景,熱衷於設計創造。他們學習技能和知識,不是為了成為某個領域的專家;而是因為那些 是完成自己目標所需要的。

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

我想專註幾個的語言:
1. Delphi, FreePascal/VCL/FMX (最優雅,快速,強大,均衡)
2. C++/QT (跨平台,類庫很全,而且已經花了這麼多時間使用它)
3. Windows API/MFC(驅動編程,網路編程,核心編程,SDK編程,MFC編程,COM編程)

我想專註幾個行業:
1. 雲端儲存/Backup/互連網(盡量不做Web開發)
2. IC/EDA
3. 圖形映像/動態曲線

我想專註幾個方面(開源項目):
1. FreeDos/DosBox
2. FreePascal
3. 英雄無敵2

中等涉及:
1. 彙編/硬體 (深入底層才能真正領悟電腦)
2. Golang (伺服器管理本身是一個工作,同時可鍛煉不同語言的思維,畢竟C++和Pascal是非常類似的東西,至於指令碼語言不看好)
3. 演算法 (基礎,鍛煉思維)

少量涉及:
1. C#/SL (有空還是稍微涉及以下吧,原因有3個:1.普通工作眾多 2.和Delphi是一個爹,容易學習 3.功能強大)
2. PHP/Html/JS (本來是最不該涉及的,但為了我的創業,而且WEB業務的客戶成本的確低廉,任何人都有可能直接成為你的客戶)
3. iOS/Android (目前工資比較高,而且這個時代。。。)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.