想學編程并不難 這樣做就可以了
不論你是想自己設計游戲,還是開發iPhone或安卓手機上的應用,還是僅僅為了娛樂,學習編程語言都是一條必經之路。編程語言種類繁多,用途各 異,然而一旦掌握其中之一,其他的也就迎刃而解。作為初學者,你可能要先從Java或HTML開始學,一旦掌握了一門編程語言,你就發揮無窮的想象,開發 各種神奇的軟件啦。
步驟
1、確定目標
Learn a Programming Language Step 1 Version 2.jpg
學習編程語言既充滿樂趣,又充滿挑戰。有些花費多年時間學習一門編程語言的大學生到最后也無法確定自己的方向到底是什么,所以,在你開始前,最好先想清楚,你是想成為一名程序員,還是游戲開發者,還是機器人專家?
2、選擇一種編程語言
Learn a Programming Language Step 2 Version 2.jpg
初學者一定要從主流語言開始學習,比如中級語言C和C++。這兩種語言是任何一名合格、專業的程序員都必須掌握的,因為它們稱得上是軟件開發界的 主 流。但是最好不要從高級語言開始學,如Java,因為這些語言對于初學者來說難度未免太高(高級語言可以以后再學,但是C語言和C++應該作為你的基 礎)。然而對于完完全全的門外漢的來說,可能C和C++都有點困難,那么你也可以從Python開始學,這種語言被大家廣泛認為是適合初學者的。
此外,每一種語言都要學習至少一年。要熟悉編程范式,尤其是面向過程及面向對象這兩種;要廣泛閱讀,多用編譯器及IDE(網上有許多免費的)練習編程。
掌握一種語言后,先不要急著運用,而要去多買些數據結構方面的書來看,學習搜索、分類、二叉樹及鏈表創建等概念。因為無論你是要制作游戲還是開發軟件,數據結構都是必須要考慮的。
隨后,你就可以開始學習更加高難度的語言,如Java。對于進階學習者來說,可能還需要學習分而治之(Devide-and-conquer)、貪婪算法(Greedy Method)及回溯(Backtracking)等計算機算法,這又要花上至少一年的時間。
3、熱愛數學
Learn a Programming Language Step 3 Version 2.jpg
許多人都由于這樣那樣的原因而對數學頗不感冒,而作為一名優秀的程序員,卻要整天與一籮筐的數學問題打交道。正如你所見,學編程真的是說起來容易 做 起來難,而它的難并不在于你對一種語言的了解程度,而在于這種語言牽扯到的數學問題。編程中的大多數問題都能在數學模型(如斐波那契數列、弗洛伊德算法、 傅立葉級數等等)中找到端倪,更不用說數學公式在解決編程問題中的廣泛應用了。所以,現在開始,去學習各種公式及其特性吧,還要仔細鉆研算術及微積分,因 為不懂數學,就好比巧婦難為無米之炊。
4、要保持內在的動力
Learn a Programming Language Step 4 Version 3.jpg
記住,羅馬建成非一日之功,所以不要在短時間里給自己填壓太多知識。學習編程語言并不容易,因為這是一門需要時常調用邏輯思維的知識。你要做的, 就 是理解程序背后的邏輯,然后不斷練習,直到熟能生巧為止。如果你只是死記硬背一些程序,那么你就錯過了學習過程中的樂趣,而且一些概念你也未必真的理解。 所以,學習編程需要不斷地挑戰自己,但也不要操之過急。
5、要有耐心
Learn a Programming Language Step 5 Version 3.jpg
有時,即使是卓有成就的程序員也會被簡單的小問題難住,所以,遇到問題時,一定要讓自己放松下來。找張草稿紙,想想有什么現成的公式可用,或者自己 想一個公式出來。你看,這就是你為什么要學習數據結構和數學。在成為熟練的程序員以前,一個人往往需要花費大把的時間來構思用于解決特定問題的程序。這一 過程中,你可以去Project Euler或者 Codecademy 這樣的網站上看看,上面有簡單的編程作業及教程,可以用以練習并提高技能。
6、絕不輕言放棄
Learn a Programming Language Step 6 Version 2.jpg
如果你在編程過程中經常粗心犯錯,那么整個過程就會變成一場曠日持久的折磨,然而一旦問題解決,所有的沮喪都會煙消云散。在學習各種算法(傅立葉 級 數、向量、邊界問題、線性代數、矩陣)的同時,也要注意休息。在解決特別復雜的問題時,要按時放松大腦,讓困擾在心頭的難題暫時轉移到潛意識中。另外要有 合理的工作計劃,當你編程編到倦怠的時候,就可以小憩一會兒,或者出去散一會兒步,但是永遠不要說放棄。
7、成為高手
Learn a Programming Language Step 7 Version 2.jpg
學到這個階段,你就可以試著去教教別人,并且向別人展示你制作的應用。如果你認識比你更厲害的人,就要與他分享你的想法和問題,這樣會使你積累更多的經驗;你也可以模仿諸如文本編輯器、windows軟件等專業軟件來進行自主開發;積極參加相關競賽來挑戰自我。
懂得一種編程語言是很贊的,但更贊的就是懂得多門語言,這不僅僅意味著你的“工具箱”里有了更多的“工具”,更是意味著你掌握了更多解決問題的方 法。因為不論你慣用哪種語言,懂得其他語言總是能使你更好地了解常見的抽象概念及問題。所以,有條件的情況下,盡量多學幾種語言,最好是學習兩三種具有不 同設計原理的語言,如Lisp、Java及Perl。但是每一種都要用心學。
8、廣泛閱讀
Learn a Programming Language Step 8 Version 2.jpg
許多高水平的程序員閱讀量也十分驚人,他們也往往會在輸入第一行代碼前深思熟慮一番。所以,你一定要多閱讀、多思考。每周都要檢查一次自己的作品 (平時要養成保存代碼的習慣,這樣日后才能復查、反思);還要多買編程方面的好書。購買的書必須是最值得一看的,而并非是最暢銷的。永遠不要盲目地追隨某 一種資源,因為那樣只會讓你的眼界變得狹隘。一旦你掌握一種知識,就要仔細鉆研其用途及改進的可能。
9、去培訓中心參加培訓
Learn a Programming Language Step 9 Version 2.jpg
如果你覺得自學效果不理想,就去報名參加一些初級的編程班吧。但是報名前,一定要先向之前在里面學習過的人了解一番。
10、勤加練習
Learn a Programming Language Step 10 Version 2.jpg
要養成用編程解決問題的習慣,如果你能自己發現生活中需要解決的問題的話最好,如果不能,就可以去看看以下這些網站:
-
TopCoder - 這是美國著名的編程競賽網站,能夠極大地增長算法方面的知識。
-
Codeforces - 另一種編程競賽網站,這里舉行競賽的頻率要略高于TopCoder。
-
Project Euler - 該網站上有許多涉及的編程問題。
-
CodeAbbey - 該網站上有許多初學者經常會遇到的問題,其難度低于上述所有網站。
小提示
-
要學會利用軟件發行者提供的最新應用程序接口及官方參考資料。
-
對于大多數人來說,編寫自己感興趣或者能夠真正投入使用的程序要比照著教科書上的案列來做有趣得多。那么,你不妨利用搜索引擎來搜尋自己感興趣的項目。
-
學會利用參考材料。即使無法記住所有的知識也不用覺得難為情,真正重要的是你知道去哪里找參考資料。
-
編程之前可以先打打草稿來構思可能的解決方法,然后去問問別人的意見。
-
教學相長。因為在教別人編程的同時,你不僅會對既有的知識更加熟悉,也會幫助你從其他的角度來看待問題。
-
光看教程是不足以把任何一門編程語言學到家的。所以,你要盡量去找些志同道合的人,然后互相學習。多多瀏覽并參與討論這個小團體內其他人發表的意見,這樣你才能學習更多的技能。
-
如果你對游戲編程感興趣,就要尤其用心學Python、C++以及Java。在這三者中,C++是最強大的一個,Python最簡單,而Java制作的游戲則最適合在不用改動的情況下在Windows、Mac OS及Linux系統上運行。
-
每天至少練習幾個小時,正所謂熟能生巧。
-
學習新知識的時候,親手實踐、做出改動、預測結果這一過程是非常重要的,因為這樣你才能把一個概念吃透。
-
多和其他程序員交流,多看其他人寫的程序。這比看任何書、上任何課程都有用。
-
致力于計算機語言標準化。你可以關注C++標準委員會(ANSI C++ committee),也可以在自己的小團體中把2格縮進還是4格縮進統一一下。不管怎樣,通過這些實踐,你都能對其他人在編程方面的偏好及其原因有更深的理解。
-
多學最常用的及行業內規范的算法。
-
多學著用Java解決問題。
-
向免費軟件學習。多研究免費軟件的源代碼,因為如果你能利用現成的代碼,又何必費盡心思去重寫呢?只不過抄下來的時候要確保自己真正理解。
-
如果僅僅是用于在Windows上執行簡單任務的程序,就可以用C#(類似Java)或Visual Basic來做;如果是其他平臺,那么比較常用的就是Perl、Python、bash(或其他shell語言)。
-
你可以用編程來解決模擬真實情景中的問題。