經典代碼需要背誦嗎?


我覺得首先要弄清楚代碼是什麼?代碼是一個人去抽象的表達世界的方式,是人與計算機溝通的渠道。

我認為好的代碼體現在兩個方面:

1、代碼整潔度,規範化,標準化。

這是一個經驗豐富的軟體工程師所必備的技能,經驗豐富的工程師在設計之初就會想到,如何擁抱產品的變化,變化是永恆的,沒有不變的需求。所以為了能夠最大限度的適應產品的變化,就要求代碼去解耦,「一個函數只做一件事」等等良好的規範。

這種代碼,我認為首先要做的是欣賞,然後在自己工作對照,進而就心領神會了,這種代碼背也沒用。

2、常用的演算法

常用的演算法,如二分查找、經典的排序演算法,我認為還是需要在理解的基礎上,多寫一遍,從而達到背的結果,但是核心還是去理解演算法的精髓。

3、經典的軟體實現

比如redis,MySQL,Linux等等非常優秀的軟體實現,這個時候我認為最關鍵的是,理解作者為什麼這麼設計,需要上升一層高度去理解它,這樣才能擴寬自己的思維。如果是專門吃這碗飯的,比如dba,理解MySQL代碼,才能端好這碗飯,如果能背下來,那肯定理解到不一般的地步了。

歡迎大家關注我~~


再經典的代碼都不需要背誦。這與文科學習差異很大。為了應試(應付考試)例外,這裡不討論應試。

代碼記憶是要通過理解來記的,記的是思想,演算法等。

如果一段代碼非常典型,經常都要用到,也不需要背誦。要做的是把這段代碼寫到電腦的文檔里,隨時複製過來。

一些常用的函數可以適當記憶,不過那只是一個函數名而已,最多也就附帶把參數也背背。但絕對不需要背誦行數超過一行的大段代碼!

另外對於完全從零開始學習編程的人,什麼基礎都沒有的,在前期,比如前三個月,可以適當背誦一些短小的經典代碼,比如演算法相關的代碼。不過只限於完全零基礎的。等熟練了後,永遠都不再需要背誦超過一行的大段代碼。


代碼,是有邏輯的,是需要理解的,是要實現功能的,一段代碼,如果去死記硬背,那麼你學不會的。同樣,一段代碼,如果你理解了他的邏輯,了解它實現的功能,那麼,當你再次想要做這個功能時,自然而然的就能夠寫出來。又何須背誦下來呢?對不對?

對於金典代碼,需要我們反覆去推敲細讀,弄清邏輯,弄清每段實現的功能。即使你看了幾遍已經看懂了,但是還是要反覆讀寫,所謂溫故而知新,多讀幾次,自然會有新的領悟,比如會看到原創代碼作者的思維方式,架構思想,這些會對你有很大的幫助。


推薦閱讀:

霍金在科學界到底是什麼水平?
小米之家和小米專賣店的區別?
德国的制造工业那么发达,为什么德国没有像法国一样拥有自己的品牌大飞机?
如何把毛筆字轉換成矢量圖?
你們感覺到了華為mate10的AI技術嗎?

TAG:演算法 | 教育 | 科技 |