標籤:自學 新手
現在編程越來越普及了.很多人開始自學編程.作為一位在程式圈摸爬滾打8年多的程式員.很高興看到編程的普及化.回想自己自學編程的道路.走了不少彎路,但也有很多收穫.在此,總結過去的學習經驗.奉獻給java小白們.希望你們在學習的道路上走的更加順利愉快.
為了不浪費諸位的時間先列個提綱,有興趣的可以擴充閱讀:
1.我想不論出於什麼樣的目的學習編程,興趣是最重要的.學習過程過於痛苦的話,很難堅持下去.即便是為了工作為了生活,也不能讓自己不開心.但學習是有難度的.如果不能很好的調節好難度,就會遇到太多的挫折,幾經努力而無果,就失去了信心.而如果可以正確的調節難度.每次都有小挑戰,戰勝挑戰獲得提高還能增強自信心.就會進入良性迴圈,越學越有意思.所以對於初學者來說,難度的控制是最為關鍵的.對於初學者來說,可能認為對於一個未知的領域,怎麼知道如何降低難度呢?我來舉個例子:比如做一個學生管理系統.要求可以錄入班級資訊學生資訊,記錄學產生績,查詢資訊等等功能.超複雜的系統是不是?如果一開始就做這種難度的.一定會放棄吧.但是可以簡化.簡化到最簡單的,可能是已知5個學生的成績, 查詢某個學生的成績.不會資料庫?沒關係,可以用數組代替.怎麼表示學生的成績和分數?不會類? 沒關係可以用字串"學生名,成績"表示.你看問題就簡化為只需要會數組,for迴圈,if判斷.string的字串分割函數 就可以實現的小功能. 這種把大問題分解為可以說實現的簡單小問題也是很有用的編程思想.(自頂向下程式設計).如果把學生管理比喻成馬拉松的話. 第一個小挑戰就是看了10頁的java基礎而制定的第一個500米小目標.雖然500米很渺小,但這個過程可以實現,而且對初學者有些難度,實現後也感覺也棒棒的.接著不斷學習新知識,比如學到了類.就可以把簡陋的字串升級為對象,代碼也更加清晰易懂.不斷豐滿自己的知識和例子的完成度.相信不久的將來,一定會實現這個不敢相信可以完成的系統吧.
2.還是結合上面的例子. 在不斷學習新知識並運用到自己的系統中時,會遇到各種各樣的問題.所以一些必要的技能就很重要啦
使用搜尋引擎:自己遇到的問題,別人肯定遇到過,熟練運用搜尋引擎可以方便的找到解決方案.要學會使用關鍵字.
思考能力:一個問題的解決辦法有很多,沒有對錯只有適不適合.在網上找到了答案.靜下來試試別的方案.做做比較.想想為什麼可以解決?他們的優缺點是什麼?還有沒有更好的方法? 雖然耗時,但收穫會很多很多.
提問的能力:如果經過了以上的步驟,提問就不是什麼問題了.找一個好的平台,提問就好.如果沒有經過上兩步就提問的話.很可能沒人理.因為這是在浪費別人的時間.高手看到了也不會回答.
實踐的能力:把書上的知識用於實踐,否則知識沒有任何意義.所以每次看書的時候.思考一下這個知識如何讓自己的
3對於新手.我建議先看視頻教程.因為書上很多講解再細.自己實踐的時候總是遇到各種書上沒提到的細節問題而苦苦搞半天沒有結果.我推薦這個網站,涉及的知識點很全,很小白,而且最重要的是有視頻.照著做可以節省很多時間,建議註冊帳號,以後可以重複觀看和查看學習進度.下面是推薦連結:http://how2j.cn?p=28403
經曆一段時間視頻的洗禮.慢慢會發現視頻的效率太低了(恭喜你成長了,從小白進化為初學者) 這時候的你適合看書 thingking in java,head first 系列 XX in action 是我推薦的叢書.深入淺出.非常適合初學者.
其實後面學習的還有很多.但我相信,走到這一步的你,已經知道自己要如何走了.願你在編程的道路上走的開心.
如何自學java