计算机科学
训练你把一个问题建模到机器能执行的精确度 —— 并且能推理当它规模化运行、出故障、以及被人攻击时会发生什么。
开始那个「每周代码评审」文件夹。学期末有四条记录,比任何证书都是更好的信号。
给一个专业打一个总分,会盖掉真正重要的事实:这个专业训练的是若干项独立能力,而它们并不朝同一个方向变化。自动化作用在任务上,所以任何评估都放在下面的职业页里 —— 不在这里。
适用于四年制计算机与软件工程本科。研究方向与硬件方向差异很大。
这个专业实际训练了什么#
不是课程表 —— 是课程表底下的能力,以及每一项比过去更值钱还是更不值钱。
精确建模问题
比以前更值钱把一个人含糊描述的东西,变成一份没有未定义情况的规格。
生成处在规格的下游,而且会比人更快地把错误规格放大。现在「写规格的人」比「写代码的人」决定了更多结果。
推理失效模式
比以前更值钱在东西坏掉之前,就知道它在并发、部分失效、非预期输入下会怎么坏。
这是生成式代码天花板暴露得最清楚的地方。「在压力下会错」的流畅代码,在上生产之前和正确代码看起来一模一样。
读懂陌生系统
比以前更值钱在脑子里装下别人代码库的足够部分,以判断哪个观察是决定性的。
越来越多代码由机器产出,工作也就越来越多是「读没人手写过的代码」。审查「看起来对但错了」的代码,是一项独立且新近变得核心的技能。
写常规代码
单独拿出来变弱了为规格清晰的东西产出正确、地道的实现。
规格清晰、训练数据丰富、跑一下就能验证 —— 代码生成最强的场景。但注意:你没法判断一份你自己写不出来的代码,所以即使它不再是「产品」,仍然是前提。
基础理论
基本稳定复杂度、数据结构、并发模型、计算机实际怎么执行。
这个专业里过时最慢、也最不可能靠看教程补上的部分。它让你能推理一个你从未见过的系统。
能连到哪里#
9 条方向,绝不只有一条。每一条在子页里写全:你的训练里什么用得上、毕业生普遍缺什么、入门的现实,以及这个学期能验证的一个动作。
课堂之外可以补什么#
这里说的是毕业生实践中普遍缺什么 —— 不是断言你的学校没教。
在一个有真实后果的代码库里待过 —— 实习、有人依赖的开源项目、任何「错了会有代价」的地方。玩具项目教不会判断力,因为它什么都不承担。
刻意且定期地审查别人的代码,包括生成的代码。这是市场最缺、而学校考核最少的能力。
写作。设计文档、事故复盘、解释性说明。能往上走的工程师,是那些别人能跟上他推理过程的人。
这个学期#
一到两个动作,每个都产出能拿给别人看的东西。不是书单。
开始那个「每周代码评审」文件夹。学期末有四条记录,比任何证书都是更好的信号。
在一个「正确性代价很高」的领域,把一个生产系统从头读到尾。一处的深度胜过五处的广度。
常见问题#
有,但理由和五年前不同。过去这个专业值钱是因为它让你能产出代码;现在的价值在于它让你能判断代码 —— 而你判断不了一份自己写不出来的代码。真正变化的是入门端的就业市场:过去养着初级、让他们练出判断力的常规工作,恰好是被自动化的部分。所以训练依然有效,只是「第一份工作用别人的工资教会你」这个安排正在削弱。要明确为这个缺口做计划,别假设第一份工作会替你补上。
计算机是个特殊情况:工具最擅长的,恰恰是这个学位教你产出的东西;而它通向的初级岗位,属于最年轻从业者就业已经下降的那一类。这是一个成立的论据 —— 但它不是「离开」的论据,而是「带着计划进入」的论据:你得想清楚怎么走到做判断的那一层,因为过去托着你走过去的常规编码那一级台阶变薄了。
当它改变了「你能被雇来做什么」时值得 —— 研究、系统、从业者稀少的专精方向;而作为「等应届市场回暖」的办法不值得。一个把同样的生产技能往上教一级的硕士,面对的是同样的工具。要查具体的实验室或团队,不是学位名称。
一个不是你写的、但你调通了的东西。把「读起来顺、其实是错的」代码读到能找出哪里自信地坏了 —— 本站把这项任务标为新近变得核心,而它恰恰是一叠生成出来的个人项目证明不了的。对一个不是你起头的代码库做一次真实贡献,胜过五个做完的个人项目。
方法#
评估落在任务上,不落在专业上。沿着上面任何一条方向进入职业页,可以看到哪些任务在变、证据到什么强度、以及它还不能说明什么。