想學程式設計並不難 這樣做就可以了
不論你是想自己設計遊戲,還是開發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語言)。
-
你可以用程式設計來解決模擬真實情景中的問題。
相關文章
- 想學程式設計?這樣開始程式設計
- 選了風變程式設計,才發現Python並不難學程式設計Python
- Java程式設計師想拿百萬年薪?你只需要這樣做!Java程式設計師
- 學Java程式設計難不難?怎麼才能學好?Java程式設計
- Kafka並不難學Kafka
- 年終了,程式設計師這樣談加薪就穩了!程式設計師
- 想幫助使用者做決定?你的APP可以這樣設計!APP
- 零基礎學ui設計難不難?UI
- Java從程式設計師到架構師其實並不難Java程式設計師架構
- [譯] 想幫助使用者做決定?你的APP可以這樣設計!APP
- 年終了,程式設計師應該這樣談加薪!程式設計師
- PHP做api開發離不開簽名驗證,我這樣設計PHPAPI
- 百萬年薪挖大學教授做程式設計師,學生變成上司,這樣好嗎?程式設計師
- 那些學了 Python 的程式設計師,程式設計能力都“退化”成什麼樣了?Python程式設計師
- 從設計模式角度分析Promise:手撕Promise並不難設計模式Promise
- 程式設計師如何做出“不難看”的設計程式設計師
- 程式設計師來做設計,世界會怎樣?程式設計師
- 程式設計師這樣寫程式碼程式設計師
- 程式設計師修神之路--分散式系統設計理念這麼難學?程式設計師分散式
- CTQ難理解?這樣說你就明白了
- 當程式設計師發現BUG時,這反應絕了,你是不是這樣的程式設計師程式設計師
- 從入門到勸退?這樣設計遊戲難度只會令玩家不斷流失遊戲
- 學Python的程式設計師,程式設計能力都“退化”成什麼樣了?Python程式設計師
- 雙十一,程式設計師可太難了程式設計師
- 做程式設計師快30天了程式設計師
- Python 並不適合職場程式設計Python程式設計
- 程式設計師的美麗假期(並不)程式設計師
- 學半年程式設計才知道“物件導向”可以這樣理解程式設計物件
- 函數語言程式設計很難,這正是你要學的原因函數程式設計
- 想學程式設計要些啥基礎?程式設計
- 程式設計師:難做但又必須做的 9 件頭疼事程式設計師
- 程式設計師 “做管理上岸” 這種事情基本不存在了程式設計師
- 如果兩個程式都這樣做會怎樣?
- 第一個想取代程式設計師的AI程式設計師,失敗了?程式設計師AI
- 想跟上這個時代,你該學習了
- 學習Java,我建議這樣做Java
- 在國企做程式設計師怎麼樣?程式設計師
- DirectX程式設計技術 --- 想學遊戲程式設計嗎?必讀 (轉)程式設計遊戲