初學者對於IT世界沒有足夠的認知來搭建起一個世界觀。沒法把所學的基礎轉換成地圖的一個塊。容易感到失落(不知道學會了一門新技術的意義和使用方向)web
###1.學科基礎數據庫
《高等數學》、《離散數學》、《電子電路》、《數據結構》、《程序設計》、《計算機組成原理》、《編譯原理》、《計算機網絡》、 《軟件工程》、《數據庫原理》等。有些學校會有一些額外的課程,例如《通訊原理》、《彙編語言》、《線性代數》、《C語言》、 《Java 語言》等編程
儘管IT行業知識更迭很是快,可是基礎知識並不容易過期,所以有大量的資料能夠選擇。能夠選擇從計算機經典叢書系列開始,好比佛羅贊和莫沙拉夫的《計算機科學導論》,甚至能夠閱讀一些計算機科普類讀物例如《穿越計算機的迷霧》。另外一種直觀的方式是觀看大學精品課和去跟慕課課程,比較推薦的有幾個: <font color=#FF5722> 中國大學精品開放課程</font>,高等教育出版社的精品課程項目,有全國大量的名校授課視頻和課件 <font color=#FF5722>中國大學MOOC</font> ,這個是中國大學MOOC和網易合做的,提供了上文附圖中計算機課程體系中全部課程 <font color=#FF5722>果殼網的MOOC學院</font>,主打翻譯全球名校的優秀課程,好比斯坦福的《編譯原理》和MIT的《Python》服務器
###2.從知識到實踐網絡
除此以外,還須要瞭解實際應用於設計軟件或者開發網站中的實踐類知識,包括某個特定語言以及周邊的庫、框架和工具等。 咱們能夠把特定需求中用到的語言、庫和框架以及其餘的工具稱爲技術棧,在技術選型上一般也是被這樣考慮的,HR經常會根據技術棧來尋找須要的工程師。好比須要學習SSH三大框架和Java的Java技術棧;爲服務器web開發而生的PHP技術棧;在移動開發領域流行的iOS、安卓技術棧等。固然這裏面有一些重合和共用的技術也須要學習,好比版本管理器Git、SVN就是每一個合格的工程師須要去學習的。數據結構
###3.武器的選擇 老實來說IT行業的最終目的是交付可用的軟件,編程語言也是適應市場的。在工做中咱們發現最好的語言是用來處理工做任務或者構建合適的應用,並非出於愛好或者某種Geek精神。框架
選擇工具語言的考慮編程語言
1.適合目標,選取儘可能優化的對應語言工具
2.在知足第一條的狀況下,下降學習成本(語法,環境搭建,以及將來的技術遷徙,輪子數量,資料)學習
3.IDE,不用在乎他的提示功能,順手就行。畢竟熟練之後對這方面的需求不是特別高。
4.新手建議使用視屏教程,畢竟內容更豐富,防止出現內容理解的誤差。高手隨意看源碼和官方文檔。
5.讀工具書的時候必定要敲代碼,同時對於任何的疑問,理解均可以畫思惟導圖。
6.長期的編程學習,十分的枯燥。要學會利用todo工具,給予本身階段式的獎勵。將一個巨大的目標拆分紅多個合適的小目標。有利於目標的實現。 ###4.最後的話
「聰明」歷來不是這個行業的門檻。引用流行於知乎的一句老話「以大多人的努力程度,還輪不到拼天賦的程度」,在Thoughtworks有大量優秀的工程師,從他們身上我能看到聰明不是學習編程成功的關鍵,堅持和勤于思考纔是。