ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

四课联动复习手册:数据可视化、数据科学、操作系统、数据库高频考点全梳理

四课联动复习手册:数据可视化、数据科学、操作系统、数据库高频考点全梳理 2021年考试周前我的桌面上铺开的是四门课的PPT数据可视化、数据科学导论、操作系统OS、数据库。单看每一门内容都不算少合在一起就有点吓人——数据可视化要记各种图和编码规则数据科学导论动不动就是流程和模型OS全是进程调度、死锁和内存管理数据库又是一整袋SQL和范式理论。更麻烦的是它们之间还有交叉比如可视化要从数据库里取数取数过程又离不开数据科学里的清洗思路清洗完的数据要给模型用模型跑起来又被OS的并发知识连着。当时我给自己定的目标是不追求每一处细节都背下来先把高频考点和底层逻辑抓稳再用题去验证。最后我把四门课的知识点、历年试题和个人易错点整理成了一份复习手册考完回头看这套整理方法比单纯翻书有用很多。这篇文章就是那份手册里最有价值的部分适合正在备考这几门课、或者想快速搭起知识框架的同学。1. 课程全景与复习策略1.1 四门课在学什么、为什么会同时考先说清楚这四门课在知识结构里的位置。数据可视化解决的是怎么把数据讲清楚核心是视觉编码和后端工具的配合数据科学导论解决的是从数据里怎么挖出结论像一条流水线从取数、清洗一直延伸到建模和解释数据库解决的是数据存在哪、怎么高效查关系模型、SQL和事务是主战场操作系统解决的是底层资源怎么调度进程、内存、文件系统都是资源管理的具体体现。很多人复习时把这四门课当独立科目处理但我建议把它们看成一条链路数据科学导论管流程数据库管取数可视化管呈现操作系统管底层支撑。考试中经常会有跨课程的题目比如请描述从数据库提取用户行为数据到前端可视化的完整过程这种题就是在考你能否把四门课串起来。复习时心里装着这条链路遇到综合题就不会懵。1.2 我的复习时间线与优先级排序当时我用了三周时间大致分三遍走。第一周扫读课件只做框架不做笔记目标是知道每门课有哪几大模块、老师强调过哪些重点第二周针对框架逐章填充整理知识点清单和易错点第三周集中刷题用真题和课后题检验把不会的题对应回知识点重新看。这个方法对课程多、时间紧的情况特别有效因为它避免了看了后面忘了前面。优先级方面我的排序是数据库和OS优先因为它们计算题多、知识点密集且一旦理解了就很难忘数据可视化次之因为它理论部分需要背的细节多但整体难度不大数据科学导论放在最后冲刺因为它的题目大多数是流程题和概念题短期内可以突击提升。如果你是考前两周才开始也建议按这个顺序取舍先把容易拿分的计算题练熟再背概念。课程复习优先级主攻题型建议投入时间占比数据库高SQL书写、范式分解、事务概念30%OS高调度计算、PV操作、页面置换30%数据可视化中图表选型、视觉编码、实操配置20%数据科学导论中流程设计、评估指标、案例分析20%2. 数据可视化理论是答题的骨架2.1 视觉编码与图表选型是核心考点数据可视化这门课理论和实操往往三七开。理论部分最重要的就是视觉编码和图表选型。视觉编码说白了就是数据中的每个属性映射到图形上的哪种元素——点的位置、线段的长度、形状、颜色、面积、角度这些都是视觉通道。考试最常见的出题方式是给你一份数据和几个变量问你该用哪种视觉通道去表达。这里有一个经典的考点视觉通道的优先级排序。学界有一个公认的结论人对位置的感知最敏锐其次才是长度、角度、面积颜色饱和度和色相的排序相对靠后。原因很简单人眼处理空间信息是本能散点图上两个点的上下左右关系一眼就能看出来而颜色从深蓝到浅蓝的差异则需要仔细分辨。作答时如果遇到为什么这里用位置而不是颜色这类题就把这个逻辑讲清楚先用位置表达最重要的变量再用颜色等次要通道表达次要变量。图表选型也是高频题而且常和生活案例绑定。比较类别数据用柱状图或条形图时间趋势用折线图两个连续变量的关系用散点图连续特征的分布用直方图或箱线图占比关系才考虑饼图。注意饼图是有争议的类别一多就难分辨考试里如果给一堆类别的占比建议优先答条形图而不是饼图。地理数据用地图加颜色深浅多维数据用雷达图或平行坐标。答题时把数据类型-视觉通道-图表类型三者对应起来写逻辑就很完整。2.2 ECharts实操记住这几个关键配置就够用2021年我们课程设计主要用ECharts考试里也出现过让写核心配置的题。ECharts的配置对象里最核心的就是xAxis、yAxis、series三个字段。柱状图最基础的配置长这样option { xAxis: { type: category, data: [周一, 周二, 周三] }, yAxis: { type: value }, series: [ { type: bar, data: [120, 200, 150] } ] };我这里给的是一个最小可运行配置。xAxis的type是category表示分类轴data直接给类目数组yAxis的type是value表示数值轴不用写data。series里的type决定图形类型bar是柱状line是折线scatter是散点data是数据数组。实际考试很少要求把整段代码默写出来但经常让你判断如果要改成折线图需要改哪几个字段——答案就是series里的type从bar改成line其他不用动。如果要展示两个维度比如降水量和气温叠加可以把series数组改成两个对象一个type为bar一个type为line再设置不同的yAxisIndex分别对应左右两个Y轴。这个知识点在可视化考试里出现过不止一次值得留意。此外tooltip是悬浮提示legend是图例title是标题这些都有默认值优先记xAxis、yAxis、series三者就够了。2.3 可视化方案设计题怎么答才不丢分设计题通常是给一份数据背景让你提出可视化方案。比如某城市一年的气温和降水量数据请设计可视化方案并说明理由这种题有固定的回答套路。第一步写清楚数据类型气温是连续数值、降水量也是连续数值时间维是周期性的有序数据第二步选图表类型气温用折线、降水量用柱状两者组合成双Y轴图第三步说明视觉编码横轴放时间左Y轴放气温右Y轴放降水量用颜色区分两条序列第四步补充交互设计悬浮显示具体数值加图例方便对照。另一个常考点是识别图表中的误导性设计。截断Y轴会夸大波动幅度3D柱状图会让人误判数值高度颜色过度丰富会干扰信息读取。这些在复习时都要当成简答题材准备答题时先指出问题再给修改方案分条写才容易拿分。3. 数据科学导论流程意识比背概念重要3.1 把OSEMN流程刻进脑子里数据科学导论这门课最核心的骨架就是数据科学流程。我当时复习时把OSEMN五个步骤背得滚瓜烂熟因为几乎所有案例分析题都能套它Obtain获取数据、Scrub清洗数据、Explore探索数据、Model建模、iNterpret解释结果。考试里最常见的大题就是给你一个业务场景请设计数据科学项目流程这种题其实就是把OSEMN展开再结合场景补充细节。以用户流失预测为例完整的答题思路应该是Obtain阶段从数据库或日志系统获取用户注册信息、登录行为、消费记录Scrub阶段处理缺失值和异常值比如把登录次数为负的记录删掉、把缺失的付费金额按均值填补Explore阶段做描述性统计和相关性分析看看哪些特征和流失相关Model阶段选择分类模型用历史数据训练并评估Interpret阶段输出结论比如连续30天未登录且消费金额下降的用户流失概率高并交给业务方决策。答题时把每一步都写具体不要干巴巴地只写数据清洗四个字场景里的细节才是得分点。3.2 统计与机器学习基础考点数据科学导论里的统计基础经常考的是描述性统计和概率分布。均值、中位数、方差、标准差这些是基本盘正态分布、二项分布也常出现在选择题和简答题里。有一个频繁踩坑的点很多同学把相关性和因果性混为一谈。考试如果给你冰淇淋销量与溺水人数正相关这种案例正确答案是说明这是相关关系可能存在共同原因比如天气炎热不能直接推出冰淇淋导致溺水。答这种题时把相关不等于因果需要实验或更严格的因果推断来验证这句话写全基本就稳了。机器学习基础部分监督学习和无监督学习是必考点。监督学习有标签做分类和回归常见算法有线性回归、逻辑回归、决策树无监督学习没有标签做聚类和降维常见算法有K-Means和PCA。模型评估指标也要记牢准确率、精确率、召回率、F1。其中精确率和召回率的关系常考精确率看预测为正例的样本中有多少预测对了召回率看真实正例中有多少被找到了。如果题目说垃圾邮件过滤宁可错杀也不放过那就要高召回率如果推荐系统宁可漏推也不推错那就要高精确率。这套逻辑想明白了具体公式就不容易背乱。3.3 过拟合与数据清洗的重点题型过拟合几乎是每次考试必出现的概念题。标准答案要点是模型在训练集上表现很好但在测试集上表现差说明泛化能力不足原因通常是模型过于复杂或训练数据太少解决办法包括增加训练数据、减少特征维度、使用正则化、交叉验证、简化模型结构。答题时把这些点按是什么-为什么-怎么解决的顺序组织就能拿到大部分分数。数据清洗的题也常考。比如一份数据里有缺失值、重复记录、异常值请说明处理步骤。我的答题模板是先处理缺失值根据缺失比例决定删除或填补再检测异常值用3σ或IQR方法识别并进一步确认然后删除重复记录最后统一格式和数据类型比如日期格式统一、类别变量做编码。这里要提醒一句异常值不一定是错误也可能是真实的极端业务场景不能无脑删除答题时提一句需要结合业务判断会显得更专业。4. 操作系统四大模块是主战场4.1 进程线程与同步互斥PV操作必须动手写OS的复习我分成了四大模块进程线程、调度与死锁、内存管理、文件系统。进程与线程的考点非常固定进程是资源分配的基本单位拥有独立的地址空间线程是CPU调度的基本单位同一进程内的线程共享代码、数据和文件但拥有各自的栈和寄存器。状态转换图也是必考新建到就绪、就绪到运行、运行到就绪、运行到阻塞、阻塞到就绪。很多人会漏掉运行到就绪这是时间片用完时发生的状态切换答题时别丢这个分支。同步互斥部分信号量和PV操作是重头戏。P操作是申请资源资源数减一小于零就阻塞V操作是释放资源资源数加一唤醒等待队列中的进程。生产者消费者问题是经典题目设置三个信号量empty表示空缓冲区的数量full表示已填满缓冲区的数量mutex用于互斥访问缓冲区。写伪代码时要注意顺序一般是先执行P(empty)再P(mutex)不能颠倒否则可能造成死锁。我当时复习时把生产者消费者、读者写者问题各手写了两遍考试时遇到类似题就非常踏实。4.2 调度算法与死锁计算题要能把公式写出来调度算法这部分几乎必考一道计算题。FCFS先来先服务规则简单但平均等待时间通常较长SJF短作业优先平均等待时间理论最优但长作业可能饥饿RR时间片轮转适合交互系统时间片选太大就退化成FCFS选太小则上下文切换开销过大。考试中经常给几个进程的到达时间和执行时间要求计算平均等待时间和平均周转时间。周转时间等于完成时间减去到达时间等待时间等于周转时间减去执行时间把公式先写在卷面上再算即使结果出错也能拿步骤分。死锁的四个必要条件是互斥、持有并等待、不可剥夺、循环等待。预防的思路是破坏这四个条件之一避免的经典算法是银行家算法关键在于判断系统是否处于安全状态检测则通过资源分配图有环不一定死锁无环一定不死锁解除方式是撤销进程或资源剥夺。这里有一个考试容易踩的坑题目说破坏互斥条件是不可行的因为有些资源本身就是互斥的比如打印机答预防措施时优先写破坏持有并等待和破坏循环等待。4.3 内存管理与文件系统怎么把两章串联复习内存管理的核心概念是分页、分段和虚拟内存。分页把逻辑地址划分为页号和页内偏移通过页表映射到物理地址分段按逻辑结构划分段段表管理每段的基址和长度。虚拟内存的基石是局部性原理——程序在一段时间内只访问集中的一部分空间所以可以把暂时不用的页面换出给正在运行的页面腾空间这也是为什么物理内存小于程序大小也能运行。页面置换算法里OPT理论最优但无法实现FIFO实现简单但可能有Belady异常LRU利用历史预测未来是实际系统中最常用的近似方案。计算缺页次数的题要先画出帧的状态变化再统计缺页次数过程写清楚就能拿分。文件系统这个模块我把重点放在inode和链接上。inode保存文件的元数据大小、权限、时间戳和数据块指针文件名只是目录项指向inode的入口。硬链接是多个目录项指向同一个inode删除一个链接只是引用计数减一只有计数归零才真正删除数据软链接是独立的文件内容是目标文件的路径目标被删除后软链接就失效。考试常让区分这两种链接的区别顺便会问硬链接能不能跨文件系统——答案是否定的因为inode编号在不同文件系统中不互通。5. 数据库SQL、范式、事务三座大山5.1 SQL书写分组与连接的执行逻辑要过关数据库这门课SQL是必考且分值大头。我复习时发现很多同学SQL写不对不是语法不熟而是执行顺序不清楚。SQL的执行顺序是from先确定数据来源where做行级过滤group by分组having对分组结果过滤select投影最后order by排序。记住这个顺序很多错误就能自查出来。比如统计平均分大于80的系很多新手在where里写avg(score) 80这是错的因为where在分组之前执行此时还没有聚合值这个条件必须放在having里SELECT dept FROM students GROUP BY dept HAVING AVG(score) 80;连接查询也是高频考点。inner join只返回两表匹配的记录left join返回左表全部记录右表没有匹配就补NULL。做题时建议先在草稿纸上画出两个表的示意图再标出连接字段最后写出select的列。遇到查询没有选任何课程的学生这类取反语义的题通常用not exists或not in子查询解决用join反而容易混。我当时把not exists、in、join三种写法都练了一遍考场上遇到同类型题就能灵活选一种最快的方式。5.2 范式分解与ER图转关系模式范式理论是数据库理论题的主角。1NF要求属性不可再分2NF要求消除非主属性对候选码的部分函数依赖3NF要求消除非主属性对候选码的传递函数依赖BCNF要求消除主属性对候选码的部分和传递函数依赖。复习时要会把一个不规范的表分解成3NF。比如选课表学号、姓名、课程号、课程名、成绩候选码是学号课程号但学号决定姓名属于部分函数依赖所以它只满足1NF不满足2NF。分解成学生表学号、姓名、课程表课程号、课程名、选课表学号、课程号、成绩后每一张都在3NF以上。ER图转关系模式也有固定规则实体转成表主码就是实体的码1对1联系可以把一端的主码并入另一端1对多联系把一端主码放入多端作为外码多对多联系必须单独建一张表表内含两端主码组合起来作为主码。做题时先把规则列出来再逐个分析实体和联系不要跳步这种题的得分非常稳定。5.3 事务、隔离级别与索引的原理事务的ACID四个性质是概念题重点但更重要的是理解它们之间的联系。原子性靠undo日志保证持久性靠redo日志保证一致性和隔离性则与并发控制相关。并发事务会出现三类问题脏读是读了未提交的数据不可重复读是同一查询两次结果不同幻读是查询范围时出现了新的行。隔离级别从低到高依次是读未提交、读已提交、可重复读、串行化对应的副作用依次减少但性能开销逐渐增加。锁机制的考点是共享锁S锁和排他锁X锁S锁之间兼容S锁和X锁、X锁和X锁都互斥。两段锁协议要求事务分两个阶段扩张阶段只能加锁不能解锁收缩阶段只能解锁不能加锁遵循这个协议可以保证并发调度的可串行化。MySQL默认的隔离级别是可重复读依靠间隙锁一定程度避免幻读这些细节如果在大题中自然带一句会是不错的加分点。索引部分B树是重点。B树所有数据都存在叶子节点叶子之间用指针串成链表所以范围查询很高效比如查找价格在100到200之间的商品只要定位到下限位置沿链表往后扫就行。这也解释了为什么B树索引适合数据库而不适合频繁更新、区分度低的列。比如性别字段只有两个值建索引后要回表扫接近一半的数据还不如全表扫描快。6. 常见问题与备考避坑实录6.1 复习时容易踩的四个坑第一个坑是只刷题不回归概念。我身边就有同学把调度算法计算题刷得滚瓜烂熟但遇到什么是饥饿这种概念题反而说不出所以然。OS、数据库这类课计算题和概念题是交替出现的复习时每个知识模块都要保证既能算也能说。第二个坑是把SQL当英语课学只背语法不实际跑。join和子查询的执行顺序、group by和having的区别光看教程很难记住。我的建议是本地装一个SQLite或MySQL每天手敲五道题把题目要求的表建出来实际查询结果出来后再比对正确答案。数据库的SQL题动手练过和没练过考场上的差距非常明显。第三个坑是数据可视化只看图不自己画。看到一篇可视化报道觉得好看、惊艳但考试让你设计可视化方案就无从下手。解决方法是课下用ECharts复现三到五个经典图表体会xAxis、yAxis、series之间的关系再试着调整颜色和tooltip把配置弄熟练了考试写方案和配置时心里才有底。第四个坑是PV操作光看不练。信号量这个知识点看别人推演很简单自己上手就卡在P和V的先后顺序上。建议把生产者消费者、读者写者、哲学家进餐三道经典题全部手推一遍重点理解先资源信号量后互斥信号量的规则多推几遍就能形成肌肉记忆。6.2 不同类型题的答题节奏名词解释题先一句话给定义再补充关键特征必要时画个图。比如什么是虚拟内存先写虚拟内存是操作系统提供给进程的逻辑上连续、物理上可离散的内存抽象再补充局部性原理和页面置换机制最后画一个逻辑地址映射物理地址的简图。这样的答案阅卷老师一眼就能看到得分点。计算题先把公式写出来再代数字。调度算法的平均等待时间、页面置换的缺页次数、银行家算法的安全性判断这些题的每一步都有分值过程清晰比结果正确更重要。我当时的习惯是在草稿纸上先算一遍确认无误后再誊写到答题卡避免因涂改丢分。设计题和案例分析题按场景-数据-方案-理由四段式组织。比如数据可视化的方案设计题写完图表类型和视觉编码后还要补一句因为位置通道对人眼感知最友好所以用横轴放时间、纵轴放数值。这样既显得思路完整又扣住了课程核心概念。7. 一点个人体会复习这四门课的过程最大的收获并不是某道题会做了而是发现它们其实是围绕数据展开的一整套体系。数据库负责把数据管好数据科学负责把数据用好可视化负责把结果讲清楚操作系统则在最底层把计算资源调度好。备考时如果只顾着分割知识点很容易陷入背了忘、忘了背的循环。我自己最有效的做法是把每章内容问题化比如把什么是死锁改成死锁怎么产生、怎么避免、如果发生了怎么处理然后对着问题自己讲给自己听能顺畅讲出来的就算掌握讲不清楚的就回头翻课件。考前最后一天我只看自己整理的问题清单和易错点不再翻大部头教材状态反而比之前踏实。希望这份整理也能帮你把零散的知识点串成一张网少走一些我当年走过的弯路。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进