画出你的知识网。
算法进阶 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
写下对你最有效的两种。
想想编程里什么最让你觉得有意思。
回想一次挫折,写下你从中学到了什么。
算算你已经坚持了多少天。
默写这张全景图。
找出你的两个漏洞。
写下你对这四门的初步印象。
想想为什么只会刷题不够。
更新你的知识地图。
参考答案(家长):知道自己的方式,学习效率能翻倍。
参考答案(家长):有联系的知识记得更牢,也更容易迁移。
参考答案(家长):能说出学到什么,挫折就有了价值。
参考答案(家长):有人爱解谜,有人爱做出东西,都好。
参考答案(家长):能默写出来,说明体系已经建立。
参考答案(家长):一千六百多天,这本身就是很了不起的事。
参考答案(家长):有个印象,学起来会更有方向。
参考答案(家长):补漏比重复练已会的收益高得多。
参考答案(家长):地图越完整,遇到新题越容易定位。
参考答案(家长):不懂计算机原理,很多性能问题和系统问题都想不明白。
想想你写过最长的程序有多少行。
把一道做过的题拆成三块。
找一个你写过的"什么都干"的函数拆开。
把"姓名、年龄、成绩"三个参数打包。
为什么全局变量难查?
给 998244353 起个名字。
检查你的代码里有没有重复出现的数字。
给一段绕的逻辑加一句"为什么"注释。
把一段用 a、b、c 的代码改成有意义的名字。
给"判断质数"的函数设计五组测试。
参考答案(家长):拆完会发现算法部分其实很短。
参考答案(家长):多数人不超过两百行,真实项目要大得多。
参考答案(家长):定义一个结构体,传一个就够。
参考答案(家长):拆完每个都好测也好懂。
参考答案(家长):如 MOD,一看就知道是模数。
参考答案(家长):任何地方都能改它,出错时不知道是谁改的。
参考答案(家长):如"这里必须倒序,否则物品会被重复选取"。
参考答案(家长):抽成常量,改一处即可。
参考答案(家长):1、2、质数、合数、大数各一组。
参考答案(家长):改完往往就不需要注释了。
给"数组求和"设计边界测试。
为什么手工测试很难做到?
给你的代码文件夹建一个版本库。
给一次改动写一句提交说明。
为什么小步提交更好?
重构前必须有什么?
挑一段代码做一次小重构。
先在纸上列出需要哪些功能。
设计题目的数据结构。
完成这条最短流程。
参考答案(家长):太累会偷懒,机器不会。
参考答案(家长):空数组、一个元素、全负数、极大值。
参考答案(家长):如"修复二分边界导致的死循环"。
参考答案(家长):哪怕只有自己用,也值得。
参考答案(家长):能验证功能没坏的测试。
参考答案(家长):范围小,出问题容易定位也容易回退。
参考答案(家长):如添加、列出、查找、删除、存档、读档。
参考答案(家长):改完跑测试,确认功能不变。
参考答案(家长):有一条能跑通的线,后面就是往上加。
参考答案(家长):如编号、标题、难度、标签、是否做过。