大多数程序员都习惯了平时在电脑上敲代码,但也有些情境要求我们手写代码,比如平时学习时做纸质笔记,完成老师布置的课程作业,同事之间交流讨论讲解思路,ACM比赛时手写分析算法,还有最常见的面试手写算法等。昨天看了康奈尔笔记法,觉得有点意思,于是想着把它应用到程序员的圈子里来,可以在面试等场合很好的向面试官阐述算法思路同时规范书写,希望能给大家带来一些帮助。
一、什么是康奈尔笔记法
图1.康奈尔笔记法
5R笔记法,又叫做康奈尔笔记法,是用产生这种笔记法的大学校名命名的。这一方法几乎适用于一切讲授或阅读课,特别是对于听课笔记,5R笔记法应是最佳首选。这种方法是记与学,思考与运用相结合的有效方法。
康奈尔笔记系统把一页纸分成了三部分,就是左边四分之一左右和下面五分之一左右的空间单独划拨出来。右上那最大的空间是我们平时做笔记的地方,你按照你的习惯记录就行了;左边那竖着的一条空间叫做“线索栏”,是用来归纳右边的内容的,写一些提纲挈领的东西,这个工作不要在做笔记的时候做,而是在上完课之后马上回顾,然后把要点都写到左边,这样一方面马上复习了内容,另一方面理清了头绪。下面那横着的一栏是用来做总结的,就是用一两句话总结你这页记录的内容,这个工作可以延后一点儿做,起到促进你思考消化的作用,另外也是笔记内容的极度浓缩和升华。
自从沃尔特·波克博士发明了康奈尔笔记法以来,这一笔记法被广泛应用于听课、阅读、复习和记忆材料。使用这一笔记法可以让你的笔记系统化,使你主动融入到知识的创造中去,提高你的学习力,从而帮助你取得学习成果。
二、程序员算法手写本设计思想
图2.程序员算法手写本设计图
程序员算法手写本采用了康奈尔笔记法的三大模块划分原则,同时结合了程序书写本身的特性,共分为以下三个部分:
(1)【思路】:理清算法思路,可以图文并茂的分析算法,写出算法实现步骤、边界条件和测试用例等,为算法实现奠定基础,好的思路不仅能有效的向他人展示你的思考过程,帮助你清晰地写出算法,更能有效减少手写算法代码难以反复修改的弊端。(tip:可在“思路”上方留白处简单写上算法题目作为标题。)
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26