如何才能高效的學習程式語言
程式語言種類繁多,用途各異,然而一旦掌握其中之一,其他的也就迎刃而解。那麼?以下是小編分享給大家的高效的學習程式語言的方法,希望可以幫到你!
高效的學習程式語言的方法
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
如果你在程式設計過程中經常粗心犯錯,那麼整個過程就會變成一場曠日持久的折磨,然而一旦問題解決,所有的沮喪都會煙消雲散。在學習各種演算法傅立葉級數、向量、邊界問題、線性代數、矩陣的同時,也要注意休息。在解決特別複雜的問題時,要按時放鬆大腦,讓困擾在心頭的難題暫時轉移到潛意識中。另外要有合理的工作計劃,當你程式設計編到倦怠的時候,就可以小憩一會兒,或者出去散一會兒步,但是永遠不要說放棄。
高效的學習程式語言的建議
明確目的,外部模型,內部型型
任何時候你學習使用新工具,明確學習的目的,外部模型和內部模型都是十分有用的。
當你瞭解了工具的目的時,你的大腦會載入有用的上下文細節,使你更容易吸收新知識。這就好比拼圖:當你看到完整拼圖之後,更容易把各部件拼到一起。這個道理適用於語言本身及及語言庫。
工具的外部模型就是它呈現出來的介面以及它想讓你思考問題解決的方式。Clojure 的外部模型就是一個Lisp,它想讓你把程式設計當做大部分以資料為中心,不可變的轉換過程。Ansible 希望你把伺服器的整備工作想成定義最終狀態,而不是定義抵達那種狀態所要採取的步驟。
工具的內部模型就是如何將輸入到其介面轉換成一些底層的抽象。Clojure 把 Lisp 轉換成 JVM 的位元組碼。Ansible 把任務定義轉換成了 shell 命令。在一個理想國中,你不需要理解工具的內部模型,但事實上,理解內部模型總是有用的,因為在某些看上去迷惑或者矛盾的部分它可以讓你有個一致的檢視。舉個例子,當 DNA 雙螺旋模型被發現的時候,它幫助科學家們瞭解更高階的現象。從我的角度來講,當然,這篇博文也是歷來所有偉大科學成就之一。
很多教程經常混淆工具的外部和內部模型,使學習者感到困惑。意識到這點可以幫你輕鬆辨別何時你會感到沮喪。
間隔重複幫助記憶
間隔重複被證明是長期記憶中新資訊編碼的最佳方法之一。 這個想法是以不斷增加的時間間隔來測驗自己,以使用最少重複次數最小化記憶衰減。 衛報寫了一篇很好的介紹性文章。
睡眠和練習
保重身體!身體可不僅僅是你腦袋的載體。如果你想保持專注和高效的學習,就要足夠的睡眠和練習,而不是beats the pants off狂飲咖啡因和能量飲料。
學習程式語言的誤區
誤區1:啃完幾本書,就能系統的學會程式設計了
是什麼讓你相信買一本書就能學會程式設計?是幻覺。
程式設計方面的書一般挺厚的,拿在手裡,感覺知識沉甸甸的,翻開一看,感覺講的很系統很詳細。你會覺得自己已經下定決心要學好程式設計了。但你絕對不會讀完超過五章的內容。
不是因為你太懶惰,而是因為剛開始學習就深入到細枝末節中並不是一個好的選擇,練習是學習一門技能最重要的環節,而如果不上手練習,你會把書裡教的知識忘得一乾二淨。
誤區2:先學別的語言做鋪墊,再學你想學的語言
總有人會告訴你,「打好基礎很重要,你得先學 C 語言。」
或者是,「直接學程式語言太難了,你可以先學 Scratch 培養感覺。」
這簡直是人為加長學習路徑。
誤區3:看著原始碼學程式設計,對著敲一遍
這種觀點說,github 上不是有很多好的開源專案嘛,你照著敲一遍程式碼,然後就能領悟了。
這應該是受了應試教育時背課文的迫害吧……對於初學者,這樣學習效率太低了,因為每一行你都看不懂,而且沒有思考的模仿只是機械運動而已,除了提升打字速度應該不會有其他任何效果。
好了,說了這麼多誤區,那麼對的是什麼呢?如果你學習程式設計是為了做出點東西出來,而不是為了做科研去研究各種程式語言語法之間的細微差異,那麼上手做專案是最快的學習路徑。
但是,如果沒有選擇正確的學習方法,這其中的痛苦,足以讓一個初學者沒辦法堅持下去。程式設計是即時反饋的,當你學其他技能,不會有人對著你大喊「你錯了!」,但是程式會向你持續報錯。而當你嘗試了幾小時,用了各種方法,程式卻在說,「你還是錯的!」,你會很沮喪甚至很憤怒。
那麼,從寫出第一句 hello world,到能上手做一個真實的專案,到底需要怎麼學?
結合了學習的認知模型,我們總結了一套適用於初學者的程式設計學習方法,也是實戰課程體系的核心思路:
1、循序漸進:把一個真實專案拆解成若干階段,分階段學習、練習,逐漸提升難度
2、槓桿知識:學習和專案最相關的核心知識,借用能提升開發效率的工具框架,讓最少的投入獲得最大的槓桿產出
3、建立連線:人腦是通過突觸相連線的,學習的過程就是在強化已有的連線,建立新的連線。而根據已經掌握的知識點拓展、用生活中的例子去類比,能讓你更快的學會。
4、持續反饋:通過老師或者是搜尋,掌握獨立解決排錯的方法,最終掌握自學的方法。
當然,這些只是很簡要的概述,想要真正應用這套方法去制定自己的學習計劃,需要一個系列連載來詳細介紹具體的執行方法才行。掌握這套學習方法之後,你可以根據自己的情況去選擇適合自己目標的學習材料,從而少走彎路。
1.如何才能快速的學習程式設計技術
2.c語言學習心得6篇
3.有效學習的十大方法
4.程式語言用什麼方法學習
5.設計程式設計需要什麼語言