tanky woo的程式人生在部落格中發表了《關於程式設計的淺學習與深學習》,文章是關於程式設計學習的乙個提議、歸納、總結。
以下是文章全部內容:
1. 多看書。
2. 多看**。
3. 多敲**。
這些我不想多說,也覺得沒有多說的必要。
經常在csdn上看到有人問「我學習c++一段時間了,該如何高階?」,然後接著就是一大堆的人,重複這上面的三句話或者更多,我不是說這些方法是錯的,我只是認為,這樣沒有點到本質,初學者喜歡依賴於書籍,他們看書了,他們也照著書敲了**,但是他們就是感覺一直在基礎的層面上打轉,這是為何呢?
在c++裡定義複製建構函式時,大家知道,一般對於類中含有指標的,要進行深複製,而不是淺複製。而我在這裡也要講乙個類似的方法,那就是關於程式設計的淺學習與深學習的問題。
大家在這裡可以先試著想想自己平時是怎麼學習程式設計的?遇到乙個新函式、新概念,大家是看書?記住概念?看看**?抑或是其他?
我根據個人的理解和經驗,在沒遇到乙個新知識時,我把學習這個知識點的深度分為三個層次,依次深入:
1. 看了書,看了**。
2. 在1的基礎上,照著書把**敲在電腦裡執行了。
3. 在2的基礎上,自己根據自己的理解和腦海裡的記憶,不看書,把**敲在電腦上,並執行。
對於第1個層次,一般會發生在以下情況下:平時沒學習,考前瘋狂的看書,但是沒時間敲**,於是把書和**都用學習概念的方法—->死記,這樣,直接導致了考時忘光光,考後欲哭無淚。
對於第2個層次,大部分人應該都處於這種情況。大家平時學習時,是一種機械化的學習,也就是第2種層次所說的,照著書敲**,這樣雖然當時把程式執行出來了,很高興,但是,如果我接著讓你不看書,自己動手再敲一遍,有幾個人可以敲出來?或是,我把題目要求改一改,讓你們用這個新學到的方法做,有幾個人可以做出來?
這就是第2種層次的弊病,網上很多人都建議,自己動手把**敲在電腦上,但是我相信,他們的本意是讓大家不看書,把**敲上去,而不是只是簡單的照著書敲**。
對於第1種層次,根本談不上是學習;而第2種層次和第3種層次,就是我在文章標題裡所說的淺學習和深學習的區別。
我說了很多,可能有些人覺得是廢話,只需要一兩句就可以說清楚的。本文的目的,只是為了分析淺層次與深層次學習的區別,進而能自己去區別學習層次,雖然一兩句話也可以說清楚,但是卻無法印刻在讀者的腦海裡,更無法自己去形成這個概念,也就無法判斷自己的學習是否到位。
一、學習程式設計,要完成三個步驟:
1. 看書,看**;
2. 對照著書敲**;
3. 拋開書本,自己根據自己理解,去敲**,或者自己給個題目,然後用新學到的知識去解決;
二、學習程式設計,如果只做到上面兩個層次,不如不學,把時間留著去打會球,因為這樣根本沒學到知識,當然,不排除有些人記憶力超強。
三、以上學習方法可以運用到其他學習上去。大家自行去理解,尋找一套適合自己的學習方法。
以上是我對程式設計學習的乙個提議、歸納、總結。
關於程式設計的淺學習與深學習
tanky woo的程式人生 在部落格中發表了 關於程式設計的淺學習與深學習 文章是關於程式設計學習的乙個提議 歸納 總結。以下是文章全部內容 關於程式設計的學習,大家肯定都知道,也是大家都說來說去的,就幾句話 1.多看書。2.多看 3.多敲 這些我不想多說,也覺得沒有多說的必要。經常在csdn上看...
有關物件引用的淺學習
就不講什麼堆啊棧啊什麼的了,首先把基本資料型別和非基本資料型別區分開,這裡叫引用物件把。test public void test03 public people update object b,people p 輸出結果 1.update before p1people 2.update in p...
資料結構的淺學習
資料結構 鍊錶 1.查詢慢 2.增刪快 鍊錶中的每乙個元素也稱為乙個節點 乙個節點包含了乙個資料來源 儲存陣列 兩個指標域 儲存位址 自己的位址 資料 下乙個節點的位址 單向鍊錶 鍊錶中只有一條鍊子,不能保證順序 雙向鍊錶 鍊錶中只有二條鍊子,保證順序 二叉樹 分支不能超過兩個 排序樹 查詢樹 在二...