计算机科学
训练你把一个问题建模到机器能执行的精确度 —— 并且能推理当它规模化运行、出故障、以及被人攻击时会发生什么。
给一个专业打一个总分,会盖掉真正重要的事实:这个专业训练的是若干项独立能力,而它们并不朝同一个方向变化。自动化作用在任务上,所以任何评估都放在下面的职业页里 —— 不在这里。
适用于四年制计算机与软件工程本科。研究方向与硬件方向差异很大。
这个专业实际训练了什么#
不是课程表 —— 是课程表底下的能力,以及每一项比过去更值钱还是更不值钱。
精确建模问题
比以前更值钱把一个人含糊描述的东西,变成一份没有未定义情况的规格。
生成处在规格的下游,而且会比人更快地把错误规格放大。现在「写规格的人」比「写代码的人」决定了更多结果。
推理失效模式
比以前更值钱在东西坏掉之前,就知道它在并发、部分失效、非预期输入下会怎么坏。
这是生成式代码天花板暴露得最清楚的地方。「在压力下会错」的流畅代码,在上生产之前和正确代码看起来一模一样。
读懂陌生系统
比以前更值钱在脑子里装下别人代码库的足够部分,以判断哪个观察是决定性的。
越来越多代码由机器产出,工作也就越来越多是「读没人手写过的代码」。审查「看起来对但错了」的代码,是一项独立且新近变得核心的技能。
写常规代码
单独拿出来变弱了为规格清晰的东西产出正确、地道的实现。
规格清晰、训练数据丰富、跑一下就能验证 —— 代码生成最强的场景。但注意:你没法判断一份你自己写不出来的代码,所以即使它不再是「产品」,仍然是前提。
基础理论
基本稳定复杂度、数据结构、并发模型、计算机实际怎么执行。
这个专业里过时最慢、也最不可能靠看教程补上的部分。它让你能推理一个你从未见过的系统。
能连到哪里#
多条方向,绝不只有一条。每条都写明:你的训练里什么真的用得上、毕业生普遍缺什么、现实的入门条件,以及这个学期能验证的一个动作。
软件工程(但要有策略地进)
任务级分析 →- 什么用得上
- 全部 —— 这是直路。
- 毕业生普遍缺什么
- 缺的不是知识,而是判断力的证据。传统第一份工作靠「付钱让你写两年常规代码」来教判断力;这个安排正在削弱,所以你需要在别人通常还不会要求的时候,就证明自己有审查级的思维。
- 入门的现实
- 梯子最低一级比过去窄了,顶端完好。去看对应的职业页 —— 在首批职业里,这个职业「入门 vs 资深」的分裂是最尖锐的。
拿一个生成的 PR(你的或开源项目的),写一份真的找出了问题的评审意见,把推理写清楚。每周做一次并存下来。那个文件夹比再做一个教程项目更值钱。
「错了代价很高」的方向
- 什么用得上
- 失效推理 + 基础理论,用在会把人牢牢留在环节里的地方:支付、安全、数据一致性、基础设施。
- 毕业生普遍缺什么
- 在某一个具体领域的深度,而深度只能靠时间。大多数毕业生是广而不深,对这条路恰好是反的。
- 入门的现实
- 入门岗位更少,但存在的那些风险更低、薪资更好。通常是在别处做一两年之后才进入,而不是直接进。
挑一个这样的领域,把一个真实生产系统对它的处理从头读到尾 —— 找一个开源的支付或认证库 —— 直到你能向同学讲清它的失效模式。
工程与问题之间
- 什么用得上
- 问题建模 + 读懂系统的能力,用在「同时理解机器和人需要它做什么」的位置:解决方案工程、开发者体验、技术产品。
- 毕业生普遍缺什么
- 把沟通当成一级能力而不是「软技能」—— 写出别人真能照着做的文档,以及和一个不共享你词汇表的人把对话进行下去。
- 入门的现实
- 很少有面向应届的岗位,通常是做过一段工程之后横向进入。值得早点知道它存在,以便有意识地往那边积累。
给你做过的东西写文档,交给一个不熟悉它的人,看着他卡在哪里 —— 不要帮忙。那段沉默就是收获。
把工程思维带到非软件行业
- 什么用得上
- 整套工具,用在几乎没有人「既懂本行又能动手做」的地方。这个组合很稀缺,而且不和生成式工具正面竞争。
- 毕业生普遍缺什么
- 行业知识本身,几乎从零开始 —— 以及忍受第一年感觉像在倒退的耐心。
- 入门的现实
- 没有标准路径 —— 这有两面:没有队要排,但也没人在招。通常起点是你和那个行业本来就有某种连接。
找一个非软件行业、有重复性问题的人,做出真能帮到他的最小的东西。一个人在用,胜过一百个 star。
课堂之外可以补什么#
这里说的是毕业生实践中普遍缺什么 —— 不是断言你的学校没教。
在一个有真实后果的代码库里待过 —— 实习、有人依赖的开源项目、任何「错了会有代价」的地方。玩具项目教不会判断力,因为它什么都不承担。
刻意且定期地审查别人的代码,包括生成的代码。这是市场最缺、而学校考核最少的能力。
写作。设计文档、事故复盘、解释性说明。能往上走的工程师,是那些别人能跟上他推理过程的人。
这个学期#
一到两个动作,每个都产出能拿给别人看的东西。不是书单。
开始那个「每周代码评审」文件夹。学期末有四条记录,比任何证书都是更好的信号。
在一个「正确性代价很高」的领域,把一个生产系统从头读到尾。一处的深度胜过五处的广度。
常见问题#
有,但理由和五年前不同。过去这个专业值钱是因为它让你能产出代码;现在的价值在于它让你能判断代码 —— 而你判断不了一份自己写不出来的代码。真正变化的是入门端的就业市场:过去养着初级、让他们练出判断力的常规工作,恰好是被自动化的部分。所以训练依然有效,只是「第一份工作用别人的工资教会你」这个安排正在削弱。要明确为这个缺口做计划,别假设第一份工作会替你补上。
方法#
评估落在任务上,不落在专业上。沿着上面任何一条方向进入职业页,可以看到哪些任务在变、证据到什么强度、以及它还不能说明什么。