自學編程重要的是實踐,寫代碼、看別人寫的代碼、再寫代碼,你看再多的書,聽再多的公開課,不寫代碼,你還是不會編程。但是寫代碼也要講究方法循序漸進,不能剛學了幾天語法,就想寫個操作系統什么的,樹立這種不切實際的目標只會讓你的自信受到嚴重打擊。
學習一門新的語言,都有一個三步走的計劃:
學好語法以后,開始寫一些小程序。
所謂小程序,一般就是100行以內就能解決的問題,其它答案里有人建議的TopCoder有很多這種題目,另外我推薦Problems|LeetCodeOJ,還有我用Python寫的答案(RealHacker/leetcode-solutions)。
做這些題目不但能夠熟悉語言的語法,而且可以操練一下數據結構和算法,畢竟這些都是編程的基本功,另外對于要找工作的同學,這上面的題目刷一遍對于技術面試很有幫助。
然后,就可以找一些中等規模的實際問題來解決。這一階段的目標不只是語法,你還需要了解這個語言的標準庫和一些常用的第三方庫,清楚這種語言常用的編程范式(過程式、面向對象、函數式)。推薦Github,這里面的項目都不大,但是涉及面比較廣
比如:
寫一個FTP客戶端程序,你需要了解網絡編程的一些知識。
寫一個帶進度條的下載器,你需要了解多線程,也許還需要圖形用戶界面編程。
寫一個簡單的論壇程序,你需要了解web編程,數據庫訪問等等。
寫一個給圖像添加數字水印的程序,你需要了解最基本的圖像編程。
這些程序工作量也不大,加上學習各種庫的時間,應該最多一星期就可以完成。不要小看這些程序,很多龐大的軟件項目最開始也就是幾百行的程序而已(寫好以后,不用沾沾自喜,要知道這些都是被人發明過幾百遍的輪子,找一個完成同樣功能的成熟開源程序,讀一下它的源碼,并和自己的代碼比較,看看別人的寫法好在哪里?有哪些設計模式可以學?
經過上面的歷練,你應該對這種語言的編程有些感覺了。前兩步都是SinglePlayerGame,但是軟件是一個群體性工作。所以接下來可以參與一些實際工程:找一份用這種語言編程的工作,或者參與一個開源項目。這一階段的目標就不局限于技術本身了,你要了解軟件工程方面的很多知識,比如怎么和別人合作開發、開發流程、代碼風格、文檔、以及軟件架構等一些宏觀的東西。
經過上面三步,你應該已經是這門語言的一個合格程序員了。
但是別指望21天就能打完這三關,10年還差不多。想要快速學成編程還有個辦法,去報個Java培訓班,有靠譜的老師帶著,肯定要比自己一個人摸索上手快的多。學校當然是要去找正規專業的IT學校,畢竟學到的技術是自己,國內的學編程的好地方北京動力節點Java培訓機構就不錯,動力節點是一家只專注培訓Java的機構,至今已有8年的教學經驗,有著多年軟件行業實戰經驗的IT精英人士組成的講師團隊,能夠帶領學員參與真實的研發項目,數月學習給學員帶來技術、經驗“雙豐收”,課程體系也都是圍繞企業真實項目而設計,把各個知識點穿插到項目中去講解,達到融匯貫通的目的,確保學員去企業就可以勝任項目開發。且課程研發部門每期會對課程做一次評估,更新一次課程內容和案例,確保課程體系緊跟行業發展,滿足企業用人需求,做到永不脫節。
重要的是動力節點Java零基礎班現已開啟免費學習,對于想學Java的同學無疑是好消息,親自考察教學質量,機會就在眼前,快來報名吧,座位緊張,先到先得。