代碼不懂要先背下來嗎?

【學生提問】算法

  老師對於有些程序設計的代碼寫法,不理解的時候,我是否是應該先背下來,或者作個記錄,之後要用的時候,再參考,仍是用什麼方式完全弄懂?這個對於算法的理解,有什麼提升的方法和步驟嗎?ide


【答覆】函數

  首先,我不同意在不理解的狀況下強記的方法。不理解先強記,對於某些少數的人文類知識,如詩詞,是能夠的,由於那些內容,一字不差是基本要求。各學科都有其內在邏輯,對絕大多數知識,要設法將本身已有知識與新學的知識聯繫起來,這能夠是到達理解程度的中間狀態,這樣就能夠不記而記了。對於程序和算法而言,掌握其思想,懂得其技術,寫法能夠有不少,先背下來,可能就壞事了。學習

  其次,如何處理這件事?建議幾個策略,我以你正在學的遞歸爲例說明:(1)補差法:如今學不懂遞歸,根源可能仍是你對函數機制的理解不到位,形參和實參的結合、函數返回的值以及返回的點等等,只要有一個地方模糊,到遞歸時,就會成爲障礙,你能夠藉着學遞歸,找出與之相關的前面的知識點,把不曾覺察的短板補上來;(2)外圍突破法:看某一本書沒懂,某一個視頻沒看懂,多是這些材料與你的思惟沒有搭上線,你能夠再找一些材料,能夠在網上找,能夠翻其餘書,別的材料裏的例子、講法,可能讓你一會兒就打通了本身未能發現的關鍵障礙,作到了理解;(3)暫時擱置法:學習是個長期的過程,別期望全部的內容過一遍就全打通,若是這個知識點太困難了,又不是立刻急着要用上(急着要用的能夠先照貓畫虎),就能夠先放一放(不是放棄了),之後,一是記着往前走一段時間後再回來看(一年級的沒全懂,二年級回來再看,發現容易了),二是在用着時馬上回來看(這是用補差法解決後續的知識點順帶解決遺留問題),這時是帶着要解決的問題來學,天然效果就行了。設計

  總結一下,學習的困難源於知識的聯繫不夠、知識點間的邏輯不明,死盯一點,用單一方式突破,有困難正常。用較長的週期、用多種材料、多種方式突破,而不是在形式層面背會,這是解決困難的思路。視頻

相關文章
相關標籤/搜索