Git / GitHub —— 你必須掌握如何使用Git來管理和分享你的代碼。把Git做爲關鍵技能的第一條,是由於它不單單是一個代碼管理工具,更是一種推薦的工做方式。它使你能在任何地方進行開發,高效地管理任何大小的項目,經過Git你還能與其餘團隊成員進行分佈式協做,大大提高工做效率。經過GitHub,還能將你與世界全部的開發者聯繫在一塊兒。php
至少一門編程語言 —— 你須要精通至少一門編程語言,JAVA 、PHP、C#、Python、Ruby、Perl 等,由於你的大多數核心業務處理都須要用這門語言來寫。你既要掌握這門語言的語法,又須要很是熟悉如何基於這門語言進行項目的架構、設計、實現以及測試。若是你選擇的是JAVA,那麼你就須要掌握面向對象的設計和開發,設計模式的應用,基於J2EE各個組件的開發 等等。前端
運用開發框架和第三方庫 —— 流行的開發語言,通常都伴有出色的開發框架,好比JAVA的Spring、MyBatis、Hibernate,Python的Django,PHP的 thinkphp、yin,nodeJs的 express 等等。這些開發框架每每都遵循軟件開發領域的一些最佳實踐,並由很是優秀的開發人員建立。熟練使用這些開發框架或第三方庫可以避免重複發明輪子,使你的工做事半功倍。更重要的是這些優秀框架或第三方庫的通常都獲得持續的維護,是對你的產品或項目在質量與安全方便的最有效的保障。node
前端技術 —— 之因此將前端技術獨立出來,做爲一項關鍵技術,是由於它在今天的項目和產品的研發過程當中正變得愈來愈重要。一個產品除了實現所需的功能以外,是否好用(用戶體驗)也正在成爲評判一個產品是否成功的重要標準。而這都依賴於前端技術的實現,你至少須要掌握 HTML五、CSS三、JavaScript 等基本前端技術,同時進一步學習 JQuery、LESS、SASS、AngularJS或REACT等前端框架或第三方庫。thinkphp
數據庫與緩存 —— 任何產品或項目都須要一個數據庫來存儲數據。做爲全棧工程師,你也須要至少掌握一到兩個數據庫,並知道怎樣與數據庫進行交互。目前流行的數據庫主要有MySQL、MongoDB、Redis、Oracle、SQLServer等。MongoDB做爲文檔型數據庫,在互聯網產品中正被愈來愈多地使用,對於規模稍大一些的項目,我仍推薦使用MySQL或商用的Oracle做爲後端數據庫。而Redis這樣的內存數據庫則能夠用於緩存,以提高系統的性能。數據庫
基本設計能力 —— 大部分關於全棧工程師的文章或討論中,都不會將設計能力作爲全棧工程師的關鍵技能,但我卻認爲這項技能很是重要。我曾被邀請評估一些軟件工程師本身開發的產品,這些產品都有不錯的創意,功能實現也很到位,但一看就不是一個好的產品,用戶根本沒有使用慾望,緣由是這些產品的設計太差了,而每每那些開發者徹底沒有意識到問題的存在,好比色彩的不一致,排版的凌亂,不恰當的圖標 等等。我所建議的基本設計能力,並不要求你像專業設計師那樣可以P出神圖、製做奇妙的視覺效果等,但你須要掌握最基本的UI設計原則,如 色彩的搭配,基本的排版,並具有良好的審美能力,和一些基本UI設計能力,這樣你作的產品就不會太差了。express