不知不覺,學編程已經有三年多了。走了許多的彎路 ,我覺得很有必要寫一些東西了,好不想後繼的人走同一條彎路。
我的自學經驗小結:
1.學習過程不要急躁。要系統地把基礎的課程學完。
2. 要讀好的,高品質的書。書要讀對,這樣你才能走更少的彎路。差的書寧可不要讀。
3. 要多實踐,把書上的所有題目(包括例題),最好都做一遍。
4. 要多思考,多總結。
上面的只是一些原則性的東西。
5. 提高學習效率的主要方法:
(1) 要有一本好的教材。那本教材最好是有完善的答案。
(2) 要有課件,這樣可以快速的入門。
(3) 仔細思考,有重點地看書。
(4) 每看完一章,就要踏實地進行練習。
(5 ) 課程安排,學習計劃要安排得合理。
學習應該是“淺-》深”,先廣後精。
理論先行。這樣可以走少很多的彎路,以不變應萬變。
(6)要抓住主要的矛盾。明白自己的興趣是什麼。術業有專攻。人的精力是有限的。把自己的精力放在感興趣的方面。努力地把這方面學深。
(7) 看視頻,這樣可以從老師那裡學到一些書本上學不到的額外知識。
(8) 要正確看待遺忘,學習後面的一些時,前面的肯定會遺忘了。
難道又回頭把前面的全部再學一次嗎? 不。
暫時沒有這個必要,當要用到前面的些知識時。再翻看前面的,特定知識。這樣可以很快地系統把那門課程學完。
如果覺得自己想深入瞭解那個課程, 你就可以再借一兩本老外的關於這方面的權威著作,仔細閱讀與實踐。 由於之前有一定的基礎,所以看起這些書來自然就不會很吃力,如果能借到英文版的,那就最好了。
你就會發現自己越學越深了。(但是有一個要說明的是:借的書要分開層次。初級-》中級-》進階。
(9 ) 切記,不要想著把每個方面都學精。這樣是最後什麼都無法學好。要學會抓住主要矛盾,這樣才可以學精。最後成為某方面的專家。 電腦是觸類旁通的。如果你某方面學精了以後,學起其它的東西,很快就上手了。 可以按照: 先淺後深的方法。(這樣很容易理論聯絡實際)。
按照這樣的原則,可以合理地安排學習計劃。少走很多的彎路,很快都減少學習新技術的時間。
(10)必免人云亦云。實踐是檢驗真理的唯一標準。
綜合個方面的資訊(正,反) -》 具體問題,具體分析。找到適合自己的路。
(11) 下載一套好的視頻,可以在你遇到困難的時候幫你一把。
6. 上面的方法未必每個人都適用。還是那一句,實踐是檢驗真理的唯一標準。是不是適合自己的,一試就知道了。
7 . 但有個很重要的,是每個初學者都要注意的:
理論是技術的核心。如果整天都在追趕技術。那你最後就會離核心技術越來越遠。
我們應該是先把基礎的理論課程學好。其中《資料結構與演算法》,這個是必不可少的。
許多初學者很容易忽視它,隨便看看就算了。
這樣是不行的。要想學好這個,必須上機實踐。你把這個學好了,你絕對可以成為一個好的程式員,甚至是一名好的軟體工程師。它可以使你很快地掌握其它課程,鍛煉你的思維能力。建模能力等等。
下面是我個人的一些小小的建議:
借一本好的《資料結構》教材。國內的比較出名的是《資料結構與演算法(C語言版)》,你把裡面的演算法,弄通。把習題集上的題都練完。
對於看不懂的內容,可以下在EMULE上面下載一套資料結構的視頻。看一看,查一下資料,很快就懂的了。
再找一本C++描述的看一看。看一些演算法設計的書。最好是國外的。
那你很快就可以成為一個優秀的程式員。
因為經過上面嚴格的訓練,你的思維能力,對代碼的感覺,將會得到很快的提高。
強勁的理論基礎,可以使你更好的發展。
再瞭解一下作業系統的知識,看一些網路方面的書。那你接觸到這方面的編程,就會很快地掌握了。
8. 學到編程的最高境界是脫離語言,最重要的還是思想。
9. 非電腦專業比電腦專業多的就是非電腦知識。
學到進階的部分,物件導向建模,我們就會發現,原來自己比別人多出了一些東西。