一個非常 Strong 的編程學習方法

一旦你發(fā)現一個學習工具,它采用自下而上的方法,那么什么才是最好的學習方法?我對這有一個具有爭議性的觀點:我認為盡可能快地記住基礎知識對初學者而言是絕對有必要的。當成為更高級的學習者,記憶很快成為一個被丟棄了的方式。你可能聽到過別人輕視地說(“不要死記,要內部消化”,“我在消化記住的東西”,“我討厭測試,我不得不回想起記憶中的東西”)。

另一方面,當你還是小學的時候,你被迫花時間來背乘法口訣表。為什么要背呢?因為你的基礎乘法口訣表可以是構建更復雜的乘除法的基礎。這和你記憶編程語言的語法并沒有什么不同:如果你寫if或for循環(huán)越自然,那么你寫出更復雜的語句塊也更容易。

我也承認記憶并不總是學習所有東西的最好方法,但是我相信對于編程初學者而言,是實踐編程所絕對必須的。為什么呢?因為它可以減少阻力,如果有什么東西會帶給初學者挫折,那就是阻力。

考慮到這一點,這里有一些具體的建議給那些正在學習或準備學習Web應用開發(fā)的初學者。實際上,說得更遠點更抽象點,這就是一個如何開始學習軟件開發(fā)的一個好計劃。很顯然,這不是一個適合所有人的計劃,但是我認為它一定適合大部分初學者。

學習一門弱類型的編程語言,不要先學習那種具有強制類型的、面向對象的編程語言。嚴格而言,如果有人對你提到class(類)或繼承,那么你就應該去選擇其它的途徑了。雖然我認同類和繼承相關技術是軟件開發(fā)中必不可少的,但是我強烈認為它們不應該是初學者的選擇。

鑒于此,我認為JavaScript是初學者而言最理想的編程語言,因為:(a)JS解釋器在絕大部分瀏覽器上都可用,(b)它的面向對象特性并不是強制型的,(c)在工業(yè)界被廣泛使用(是的,即使是web之外的客戶端,即使是現在擔任設備工程師的我也做嵌入JavaScript的工作。)

說得更具體點,我建議你學習用JavaScript如何學習去下面的事,特別是以這個順序:

學習如何打印出一些東西,學習如何聲明和定義變量,學習基本算術運算操作(包括余數操作),學習循環(huán)(特別是for循環(huán)),學習把抽象重復的代碼寫成函數,學習字符串和用循環(huán)操作字符串,學習數組和數組的循環(huán)方法(特別是foreach循環(huán)),學習創(chuàng)建和操作對象數據集。

記住上面的這些并每天寫一個程序來實踐,直到這些都輕而易舉地想起來。

學習Git的基本操作,學習通過命令行使用Git。這意味著要先學習四個Unix/Linux命令(ls,pwd,mkdir,cd)。當學習了這幾個命令,也就學會了以“樹型”或層次結構的呈現方式查詢文件系統(tǒng)。

一旦你掌握了上面的幾個Unix/Linux命令,并會從命令行進入文件系統(tǒng),你就應該學幾個基礎的Git命令。主要是 git init, git status, git add and git commit。(推薦:Git 教程

一旦你掌握了Git的基本操作,在學習下面的技術時將其集成到你的工作流中。

學習HTML基礎,能夠憑記憶創(chuàng)建簡單的HTML頁面。學習DOM和如何理解HTML作為指定的分層樹結構?;c時間來思考它如何關系到你在前面步驟中學到的分層文件系統(tǒng)。

學習CSS選擇器,了解它如何讓你選定DOM的某些部分。了解DOM元素之間的關系。了解一個DOM元素作為另一個DOM元素的父元素或子元素的含義。理解這與后代和祖先之間的關系有什么不同。記住選擇器可以讓你通過這些關系來選定某些元素。

學習jQuery,并主要專注于DOM的操作能力。學會用jQuery對DOM插入或刪除元素,實踐可視化如何影響用DOM定義的樹型結構。

實踐jQuery中的事件處理和DOM操作(比如,實踐操作DOM當用戶點擊某個東西,或在指定的時間間隔)。

多練習JavaScript對象,并把它們當作可變的聚合器。學習如何用JavaScript來表示更復雜的數據而不是基本數據類型。學會應用并操作這些數據結構。理解并定義JSON、理解它如何與JavaScript對象相關聯。

學會使用jQuery的getJSON函數從文件中獲取數據到JavaScript對象中。使用類似的技術,用一個簡單的JSONP API去練習用AJAX拉取數據。練習向DOM插入和刪除這個數據。

在這個階段,做一個簡單的幻燈片來循環(huán)播放Flickr圖片,這將是一個令人難以置信的項目,將真正考驗你的能力,使用之前學過的基礎技術來實現它。

如果你做了這一步,那么你已經掌握了大量必備的編程和計算機科學基本概念。具體來說,你掌握了計算機程序的最重要元素(如果if-else語句,循環(huán),變量,對象,函數,數組等),你已經學會了鏈式或樹型的數據結構。這時,無疑你已經準備好轉移到更高級的主題。

轉自:程序員的資料庫?由Alice翻譯

英文原文:A Strong Approach To Learn Programming

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容