受康奈尔笔记法启发设计的程序员算法手写本
Posted 服务端开发爱好者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了受康奈尔笔记法启发设计的程序员算法手写本相关的知识,希望对你有一定的参考价值。
大多数程序员都习惯了平时在电脑上敲代码,但也有些情境要求我们手写代码,比如平时学习时做纸质笔记,完成老师布置的课程作业,同事之间交流讨论讲解思路,ACM比赛时手写分析算法,还有最常见的面试手写算法等。昨天看了康奈尔笔记法,觉得有点意思,于是想着把它应用到程序员的圈子里来,可以在面试等场合很好的向面试官阐述算法思路同时规范书写,希望能给大家带来一些帮助。
一、什么是康奈尔笔记法
图1.康奈尔笔记法
5R笔记法,又叫做康奈尔笔记法,是用产生这种笔记法的大学校名命名的。这一方法几乎适用于一切讲授或阅读课,特别是对于听课笔记,5R笔记法应是最佳首选。这种方法是记与学,思考与运用相结合的有效方法。
自从沃尔特·波克博士发明了康奈尔笔记法以来,这一笔记法被广泛应用于听课、阅读、复习和记忆材料。使用这一笔记法可以让你的笔记系统化,使你主动融入到知识的创造中去,提高你的学习力,从而帮助你取得学习成果。
二、程序员算法手写本设计思想
图2.程序员算法手写本设计图
程序员算法手写本采用了康奈尔笔记法的三大模块划分原则,同时结合了程序书写本身的特性,共分为以下三个部分:
(1)【思路】:理清算法思路,可以图文并茂的分析算法,写出算法实现步骤、边界条件和测试用例等,为算法实现奠定基础,好的思路不仅能有效的向他人展示你的思考过程,帮助你清晰地写出算法,更能有效减少手写算法代码难以反复修改的弊端。(tip:可在“思路”上方留白处简单写上算法题目作为标题。)
(2)【算法实现】:根据上一步已经形成的思路,一步步写出相应的算法实现,行号模拟平时编译器里写代码的习惯,有助于规范格式和向他人讲解算法实现思路,为算法交流提供便利,为什么设计32行我想你们都会懂,因为程序员对这个数字很敏感,希望你也喜欢。(tip:可在“算法实现”上方写出对程序的命名,如程序需要几页纸共同实现也可以在这里标明页码。)
(3)【总结反思】:分析算法的时间复杂度和空间复杂度,总结所用的方法和可以进一步优化改进的地方,为解决follow up问题提供方案,写完代码后和面试官的交流过程都可以在这里继续进行分析。
三、如何使用
笔者自己制作成了A4竖开的本子以方便使用,大家在写代码时可以自己在白纸本上画出这样的框架来启迪思路,让你的手写算法更规整更具说服力,也可以和现在非常流行的“方格本”结合使用(《聪明人用方格笔记本》这本书里详细讲解了它的用法和好处,此处不再赘述。),同时笔者提供了一个word版的“程序员算法手写纸”,很方便修改和定制,大家如果需要可以直接打印使用。东西虽然很简单,但笔者很用心的思考怎样才能用纸写出更优雅的程序,打动你的面试官。
图3.《程序员算法手写本》
好了,轮子做好交给你们了,希望你们喜欢,如转载或用作其他用途请留言告知^__^。
附:“程序员算法手写纸word版”百度云链接:http://pan.baidu.com/s/1pLi1aeZ 密码:oltr
以上是关于受康奈尔笔记法启发设计的程序员算法手写本的主要内容,如果未能解决你的问题,请参考以下文章