不看笔记写出来。
计算机基础 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
完整讲一遍。
动手画。
再找两个分层的例子。
它们共同的前提是什么?
再找两个权衡。
冗余的代价是什么?
为什么顺序写日志比随机写数据快?
你最想深入哪个方向?
找一篇技术博客读读看。
参考答案(家长):能一口气讲完,说明网络和密码学都通了。
参考答案(家长):写不全的地方就是要回头补的地方。
参考答案(家长):如虚拟内存、文件系统、接口与实现分离。
参考答案(家长):会发现很多概念在不同课里反复出现,那是真正的核心。
参考答案(家长):如索引换写入速度、冗余换可靠性。
参考答案(家长):局部性 —— 用过的还会再用。
参考答案(家长):顺序写对硬盘友好,不用来回寻道。
参考答案(家长):成本、复杂度、以及一致性维护的负担。
参考答案(家长):会发现大部分名词都能对上号,这就是地基的价值。
参考答案(家长):常见的是人工智能、图形学、分布式系统、安全。
给自己定一个未来三个月的目标。
想想哪些知识十年后还有用。
给地基期写一段总结,说说它给你带来的最大变化。
先想想它需要哪几个部分。
为什么先砍掉这么多功能?
为什么用定长页?
为什么变长字段要单独处理?
动手实现。
淘汰脏页时要注意什么?
动手实现。
参考答案(家长):原理、思想、分析方法,以及自学的能力。
参考答案(家长):要具体可验证,如"实现一个小型数据库"。
参考答案(家长):存储、索引、解析、执行、事务,正好对应五门课。
参考答案(家长):多数人的答案是"看到现象能想到背后的原理"。
参考答案(家长):便于定位和读写,和磁盘块对齐效率高。
参考答案(家长):先做出能跑的最小版本,再逐步加。
参考答案(家长):按页号乘页大小定位偏移,读固定字节。
参考答案(家长):否则每条记录长度不同,无法快速定位。
参考答案(家长):哈希表加双向链表,就是标准的最近最少使用结构。
参考答案(家长):必须先写回文件,否则修改就丢了。
记录数据。
动手实现。
怎么让条件可配置而不是写死?
为什么叶子存位置而不是整条记录?
动手实现查找部分。
动手实现插入部分。
记录数据并解释差异。
这是 B+ 树相对 B 树的什么优势?
先实现分词。
动手实现。
参考答案(家长):两层循环:页循环加页内记录循环。
参考答案(家长):差距通常在几十倍以上,局部性原理生效了。
参考答案(家长):索引更紧凑,一页能放更多键,树更矮。
参考答案(家长):把条件表示成一个可求值的表达式对象。
参考答案(家长):递归返回是否需要上提,逐层处理。
参考答案(家长):每层做二分查找定位子节点。
参考答案(家长):范围查询不用回到上层,效率高得多。
参考答案(家长):从线性降到对数,差距随数据量增大而拉开。
参考答案(家长):每种语句一个解析函数,结构清晰。
参考答案(家长):识别关键字、标识符、字符串、数字、符号五类。