受康奈爾筆記法啟發(fā)設(shè)計的程序員算法手寫本
大多數(shù)程序員都習(xí)慣了平時在電腦上敲代碼,但也有些情境要求我們手寫代碼,比如平時學(xué)習(xí)時做紙質(zhì)筆記,完成老師布置的課程作業(yè),同事之間交流討論講解思路,ACM比賽時手寫分析算法,還有最常見的面試手寫算法等。昨天看了康奈爾筆記法,覺得有點意思,于是想著把它應(yīng)用到程序員的圈子里來,可以在面試等場合很好的向面試官闡述算法思路同時規(guī)范書寫,希望能給大家?guī)硪恍椭?/span>
一、什么是康奈爾筆記法

圖1.康奈爾筆記法
5R筆記法,又叫做康奈爾筆記法,是用產(chǎn)生這種筆記法的大學(xué)校名命名的。這一方法幾乎適用于一切講授或閱讀課,特別是對于聽課筆記,5R筆記法應(yīng)是最佳首選。這種方法是記與學(xué),思考與運用相結(jié)合的有效方法。
自從沃爾特·波克博士發(fā)明了康奈爾筆記法以來,這一筆記法被廣泛應(yīng)用于聽課、閱讀、復(fù)習(xí)和記憶材料。使用這一筆記法可以讓你的筆記系統(tǒng)化,使你主動融入到知識的創(chuàng)造中去,提高你的學(xué)習(xí)力,從而幫助你取得學(xué)習(xí)成果。
二、程序員算法手寫本設(shè)計思想

圖2.程序員算法手寫本設(shè)計圖
程序員算法手寫本采用了康奈爾筆記法的三大模塊劃分原則,同時結(jié)合了程序書寫本身的特性,共分為以下三個部分:
(1)【思路】:理清算法思路,可以圖文并茂的分析算法,寫出算法實現(xiàn)步驟、邊界條件和測試用例等,為算法實現(xiàn)奠定基礎(chǔ),好的思路不僅能有效的向他人展示你的思考過程,幫助你清晰地寫出算法,更能有效減少手寫算法代碼難以反復(fù)修改的弊端。(tip:可在“思路”上方留白處簡單寫上算法題目作為標(biāo)題。)
(2)【算法實現(xiàn)】:根據(jù)上一步已經(jīng)形成的思路,一步步寫出相應(yīng)的算法實現(xiàn),行號模擬平時編譯器里寫代碼的習(xí)慣,有助于規(guī)范格式和向他人講解算法實現(xiàn)思路,為算法交流提供便利,為什么設(shè)計32行我想你們都會懂,因為程序員對這個數(shù)字很敏感,希望你也喜歡。(tip:可在“算法實現(xiàn)”上方寫出對程序的命名,如程序需要幾頁紙共同實現(xiàn)也可以在這里標(biāo)明頁碼。)
(3)【總結(jié)反思】:分析算法的時間復(fù)雜度和空間復(fù)雜度,總結(jié)所用的方法和可以進(jìn)一步優(yōu)化改進(jìn)的地方,為解決follow up問題提供方案,寫完代碼后和面試官的交流過程都可以在這里繼續(xù)進(jìn)行分析。
三、如何使用
筆者自己制作成了A4豎開的本子以方便使用,大家在寫代碼時可以自己在白紙本上畫出這樣的框架來啟迪思路,讓你的手寫算法更規(guī)整更具說服力,也可以和現(xiàn)在非常流行的“方格本”結(jié)合使用(《聰明人用方格筆記本》這本書里詳細(xì)講解了它的用法和好處,此處不再贅述。),同時筆者提供了一個word版的“程序員算法手寫紙”,很方便修改和定制,大家如果需要可以直接打印使用。東西雖然很簡單,但筆者很用心的思考怎樣才能用紙寫出更優(yōu)雅的程序,打動你的面試官。

圖3.《程序員算法手寫本》
好了,輪子做好交給你們了,希望你們喜歡,如轉(zhuǎn)載或用作其他用途請留言告知^__^。
附:“程序員算法手寫紙word版”百度云鏈接:http://pan.baidu.com/s/1pLi1aeZ 密碼:oltr

浙公網(wǎng)安備 33010602011771號