一個非常正確且強大的程式設計學習方法
一旦你發現一個學習工具,它採用自上而下的方法,那麼什麼是最好的學習方法?我對這有一個具有爭議性的觀點:我認為儘可能快地記住基礎知識對初學者而言是絕對有必要的。當成為更高階的學習者,記憶很快成為一個被丟棄了的方式。你可能聽到過別人輕視地說(“不要死記,要內部消化”,“我在消化記住的東西”,“我討厭測試,我不得不回想起記憶中的東西”)。
另一方面,當你還是小學的時候,你被迫花時間來背乘法口訣表。為什麼要背呢?因為你的基礎乘法口訣表可以是構建更復雜的乘除法的基礎。這和你記憶程式語言的語法並沒有什麼不同:如果你寫 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 語句,迴圈,變數,物件,函式,陣列等),你已經學會了鏈式或樹型的資料結構。這時,無疑你已經準備好轉移到更高階的主題。
謝謝關注websites部落格!
本文最初發表在codecloud.net,文章內容屬作者個人觀點,不代表本站立場。
相關文章
- 一個非常Strong的程式設計學習方法程式設計
- 翻譯 | 新手開始學習程式設計的正確姿勢程式設計
- 反應式程式設計是正確的方法嗎? - JAXenter程式設計
- 學習風變程式設計,是我做過最正確的決定!程式設計
- 【海量資料學院】DBA的學習方法論系列—正確的學習方法
- WPF依賴屬性的正確學習方法
- 程式設計師正確看程式碼的方式程式設計師
- 小小程式設計師的學習方法程式設計師
- 初學者學習程式設計的方法程式設計
- 作為一個程式設計師的學習思考程式設計師
- 一個簡潔且強大的狀態管理庫 - iFlow
- 如何正確學習Node
- 如何正確學習JavaScript?JavaScript
- 一個程式設計師的數學學習探索之旅程式設計師
- 如何正確的開始用 Go 程式設計Go程式設計
- Vue 中 強制元件重新渲染的正確方法Vue元件
- Shell程式設計基礎學習之一:正規表示式程式設計
- 讓 Web 設計師高效學習程式碼的 6 個方法Web
- 10個非常實用的程式設計技巧程式設計
- 程式設計師計算私活薪資的正確方式程式設計師
- Vue引入vxe-table(一個功能非常強大的表格元件)Vue元件
- Java程式設計師如何正確地學習新的知識,擴充自己的技術棧Java程式設計師
- 提出問題,解答問題!這才是理解程式碼設計的正確方法
- Go併發程式設計--正確使用goroutineGo程式設計
- 設計模式(一):學習大綱設計模式
- 英語不應該那麼學(正確的英語學習方法)
- 老闆該如何正確的犒賞程式設計師程式設計師
- Java學習的正確開啟方式Java
- 程式設計師提升學習效率的3個方法,影響過整個世界程式!程式設計師
- 15個不起眼但非常強大的 Vim 命令
- 構建應用程式的正確方法
- Kafka中非常值得學習的優秀設計Kafka
- 學習程式設計的七個階段程式設計
- JavaScript 設計模式 :正確使用物件導向程式設計的姿勢JavaScript設計模式物件程式設計
- Python程式設計方法論學習Python程式設計
- Flutter一個輕量且強大的外掛:GetX 之路由管理Flutter路由
- C++程式設計學習50個經典網站 強力推薦C++程式設計網站
- 寫給程式設計師的有效學習方法程式設計師