這些很棒編程學習方法 你知道嗎
一旦你發現一個學習工具,它采用自上而下的方法,那么什么是最好的學習方法?我對這有一個具有爭議性的觀點:我認為盡可能快地記住基礎知識對初學 者 而言是絕對有必要的。當成為更高級的學習者,記憶很快成為一個被丟棄了的方式。你可能聽到過別人輕視地說(“不要死記,要內部消化”,“我在消化記住的東 西”,“我討厭測試,我不得不回想起記憶中的東西”)。
另一方面,當你還是小學的時候,你被迫花時間來背乘法口訣表。為什么要背呢?因為你的基礎乘法口訣表可以是構建更復雜的乘除法的基礎。這和你記憶 編程 語言的語法并沒有什么不同:如果你寫 if 或 for 循環越自然,那么你寫出更復雜的語句塊也更容易。
我也承認記憶并不總是學習所有東西的最好方法,但是我相信對于編程初學者而言,是實踐編程所絕對必須的。為什么呢?因為它可以減少阻力,如果有什么東西會帶給初學者挫折,那就是阻力。
考慮到這一點,這里有一些具體的建議給那些正在學習或準備學習 Web 應用開發的初學者。實際上,說得更遠點更抽象點,這就是一個如何開始學習軟件開發的一個好計劃。很顯然,這不是一個適合所有人的計劃,但是我認為它一定適合大部分初學者。
-
學習一門弱類型的編程語言,不要先學習那種具有強制類型的、 面向對象 的編程語言。嚴格而言,如果有人對你提到 class (類)或繼承,那么你就應該去選擇其它的途徑了。雖然我認同類和繼承相關技術是軟件開發中必不可少的,但是我強烈認為它們不應該是初學者的選擇。
-
鑒于此,我認為 JavaScript 是初學者而言最理想的編程語言,因為:(a) JS 解釋器在絕大部分瀏覽器上都可用,(b)它的面向對象特性并不是強制型的,(c)在工業界被廣泛使用(是的,即使是 web 之外的客戶端,即使是現在擔任設備工程師的我也做嵌入 JavaScript 的工作。)
-
說得更具體點,我建議你學習用 JavaScript 如何學習去下面的事,特別是以這個順序:
-
學習如何打印出一些東西,學習如何聲明和定義變量,學習基本算術運算操作(包括余數操作),學習循環(特別是 for 循環),學習把抽象重復的代碼寫成函數,學習字符串和用循環操作字符串,學習數組和數組的循環方法(特別是 foreach 循環),學習創建和操作對象數據集。
-
記住上面的這些并每天寫一個程序來實踐,直到這些都輕而易舉地想起來。
-
學習 Git 的基本操作,學習通過命令行使用 Git。這意味著要先學習四個 Unix / Linux 命令(ls,pwd,mkdir,cd)。當學習了這幾個命令,也就學會了以“樹型”或層次結構的呈現方式查詢文件系統。
-
一旦你掌握了上面的幾個 Unix/Linux 命令,并會從命令行進入文件系統,你就應該學幾個基礎的 Git 命令。主要是 git init, git status, git add and git commit。
-
一旦你掌握了 Git 的基本操作,在學習下面的技術時將其集成到你的工作流中。
-
學習 HTML 基礎,能夠憑記憶創建簡單的 HTML 頁面。學習 DOM 和如何理解 HTML 作為指定的分層樹結構。花點時間來思考它如何關系到你在前面步驟中學到的分層文件系統。
-
學習 CSS 選擇器,了解它如何讓你選定 DOM 的某些部分。了解 DOM 元素之間的關系。了解一個 DOM 元素作為另一個 DOM 元素的父元素或子元素的含義。理解這與后代和祖先之間的關系有什么不同。記住選擇器可以讓你通過這些關系來選定某些元素。
-
學習 jQuery ,并主要專注于 DOM 的操作能力。學會用 jQuery 對 DOM 插入或刪除元素,實踐可視化如何影響用 DOM 定義的樹型結構。
-
實踐 jQuery 中的事件處理和 DOM 操作(比如,實踐操作 DOM 當用戶點擊某個東西,或在指定的時間間隔)。
-
多練習 JavaScript 對象,并把它們當作可變的聚合器。學習如何用 JavaScript 來表示更復雜的數據而不是基本數據類型。學會應用并操作這些 數據結構 。理解并定義 JSON 、理解它如何與 JavaScript 對象相關聯。
-
學會使用 jQuery 的 getJSON 函數從文件中獲取數據到 JavaScript 對象中。使用類似的技術,用一個簡單的 JSONP API 去練習用 AJAX 拉取數據。練習向 DOM 插入和刪除這個數據。
在這個階段,做一個簡單的幻燈片來循環播放 Flickr 圖片,這將是一個令人難以置信的項目,將真正考驗你的能力,使用之前學過的基礎技術來實現它。
如果你做了這一步,那么你已經掌握了大量必備的編程和計算機科學基本概念。具體來說,你掌握了 計算機程序 的最重要元素(如果 if-else 語句,循環,變量,對象,函數,數組等),你已經學會了鏈式或樹型的數據結構。這時,無疑你已經準備好轉移到更高級的主題。
英文原文: A Strong Approach To Learn Programming