AI时代,所谓的热爱是什么
搬运一下之前发在nova的文章,写给自己,常看常新
零.审视自己
看到nova第一个社团活动是提出一个问题,内心还是有点高兴的。初到NJU,面对着崭新的大学生活,还是有点不知所措的。我把我在nova的第一篇文章标题取作审视自己,就是想借着这个任务,用淘金式的问题去剖析我自己,审视我自己。
1.问题是?
开门见山,问题是:来到NJU,我到底要不要为了热爱去选择一个风险较高的CS专业?以及热爱能不能让我在社会上有一个立足之地?
2.这个问题从何而来?
背景:高中三年的空档期
先说下背景吧。
众所周知,河北的竞赛资源可以排到全国倒数,臭名昭著的衡水模式压榨着大部分不在顶尖中学的学生。很不巧的是,笔者就来自于这样一个省份的普通中学,高中时期几乎没有时间去搞计算机相关的东西。
三年的空档期,让我在小时候积累的 CS 相关知识消失殆尽。脱离了 Agent,我甚至无法规划一个简单的爬虫 + Web App 项目。
这种 CS 专业知识的缺失,让我没有信心在高手如云的 NJU 去转 CS/AI。
LLM 带来的冲击
第二个当时会犹豫的原因,是 LLM 的冲击。
记得初二的时候,ChatGPT 横空出世。尽管 GPT-3.5 在那时用途有限,但是对于头次见到计算机真正输出自然语言的我来说,还是一个很大的震惊。
后来 LLM 的发展大家有目共睹:
- 基础设施从最初的 LLM,发展到后面的 Agent、Harness;
- 模型从最开始的 OpenAI 一家独大,到后面的 Claude、Gemini、Kimi、DS 等百花齐放;
- 人类写代码的速度也有了质的提升。
尽管 Vibe Coding 的质量无法与人类相媲美,但其极高的效率和较低的门槛,拉近了代码和普通人之间的距离。
并且,作为一名大一新生,转专业失败的后果,以及毕业后工作前景的未知,都是我需要承担的风险。
提出这个问题后,我也问了下bgm上的一些人,他们是这样回答的:
这里再讲个小故事吧:
中考后,我用一个月写了一个动画评分聚合系统,其功能类似Metacritic,技术栈python+fastapi+meilisearch,纯手搓,代码全是屎山
在agent时代来临之前,使用gpt4重构了这个老项目,前端得到了美化,后端的逻辑也规整了一些
这里ai其实就深度参与了代码的编写
从当时的提交记录来看,一天也能出好几版,cc也是乱写一通,注释更是不写
待到agent时代,使用codex再次重构项目时,生产力效率更是upup,只要配好action跑ci/cd,agent就会帮我完成一切。
最终项目中几乎没有了当时我手写的代码,取而代之的是质量比我这个初学者好上几十倍的代码和比较清晰的注释。
简而言之,我作为初学者一个月的摸索,不如llm两个小时的工作。
我感觉我被token量化了。
作为大一新生,我还有至少五六年的学习生活。照现在ai的发展速度,待我毕业时,ai至少迭代了十个世代,工作流也将会发生很大的变革(到现在三四年的时间就已经进化到了harness,有点不太敢想未来会是什么样子)。
正如我之前一直坚持的观点:学计算机需要爬到一个比较高的高度,我害怕我会爬不上去。
同时,这种ai给编码带来的便利也会让新手产生这样一种幻觉:AI这么厉害,以后什么东西都可以用ai去写。
但是,这种内心的“放纵”反而会让初学者更加难以入门。ai的一手操办容易误导自学cs时候的方向,不知道从何学起,也不知道怎么去学。所以我坚信这样一种观点:要想做出好的vibe coding的作品,需要学习一点计算机相关的知识。
此外,还有一个很好的证据来证明目前粗制滥造的vibe coding作品的泛滥:在前ai时代,背靠微软的github很少宣称自己的基础设施容量不足,但在agent时代,github甚至被巨量的commit/action搞崩了好几次,以至于官方要发文扩容基础设施。
当你在GitHub搜索一些项目时,你会发现好多不明所以的项目,没有清晰的readme,没有好的版本管理,有的只有emoij充斥在文档中,contributors那里躺着claude。
拜托,这真的很打击初学者学习的积极性的好吧,在ai废料之中很难挑出自己的作品的感觉真的很难受。
以下内容有部分出自于chatgpt之手
3.别人是怎么回答这个问题的?
提出这个问题之后,我也去问了一些已经走在这条路上的人。
有趣的是,我得到的答案并不一致。
有人告诉我:
喜欢就学。兴趣驱动的话,是可以学得很好的。
他本科虽然不是 CS,但高中开始自学,也写了不少东西。在他看来,现在各行各业的就业都谈不上特别轻松,CS 也并没有特殊到“完全不能选”。真正重要的是,在某个方向上足够深入。CV、NLP,甚至编译器、加速计算这些相对传统的领域,都仍然需要真正理解它们的人。
还有人认为,CS 本身是一个非常宽广的学科。相比很多已经比较成熟的学科,它仍然有很多值得探索的问题。而且如果考虑 AI,研究生阶段几乎已经成为一个绕不开的问题,本科更多承担的是打基础的作用。
这些回答让我稍微乐观了一些。
但很快,我又看到了完全相反的声音:
“快跑,今年计算机秋招又炸了。”
以及更加直接的一句:
“CS 自己都找不到工作了。”
甚至有人提醒我,如果最后只是通过辅修、双学位的方式学习 CS,在实际求职中,它的认可度可能远远没有我想象得那么高。
于是问题反而变得更加复杂了。
一边告诉我:
有兴趣就去学,CS 依然有很多值得深入的方向。
另一边却告诉我:
就业已经越来越困难,最好不要轻易进入这个行业。
那么,我到底应该相信谁?
4.《学会提问》给我的第一个提醒:观点不等于事实
如果是在以前,我可能很容易被其中某一种说法影响。
看到“计算机秋招又炸了”,我可能马上开始怀疑自己:
那我是不是根本不应该转 CS?
而看到有人说“只要有兴趣就能学好”,我又可能瞬间乐观起来:
那我就放心大胆地转吧。
但读完《学会提问》之后,我觉得这种思考方式本身就存在问题。
因为无论是:
“CS 前景很好。”
还是:
“CS 已经找不到工作了。”
它们首先都只是一个结论。
在接受结论之前,我应该继续追问:
他的理由是什么?
他的证据是什么?
这个证据能不能支撑这么大的结论?
他的个人经历能不能代表整个 CS 行业?
他说的“找不到工作”,究竟指的是本科生、硕士生,还是某一个具体方向?
他说的“CS 前景很好”,又究竟是科研前景、就业前景,还是学科本身的发展前景?
这样想以后,我才意识到:
这些看似互相矛盾的观点,实际上可能根本没有在讨论同一个问题。
5.“CS 好不好就业”也许本身就是一个太大的问题
比如有人说:
CS 就业不好。
那么我首先需要追问:“CS”到底指什么?
前端、后端、客户端、算法、AI Infra、CV、NLP、编译器、数据库、操作系统、安全……
这些方向之间的就业情况显然不会完全一样。
同样,“就业不好”又是什么意思?
是岗位数量减少?
是应届生竞争激烈?
是薪资下降?
还是过去那种本科毕业就能轻松拿到高薪 Offer 的时代结束了?
如果只是把这些情况全部压缩成一句:
“计算机不行了。”
那么这句话虽然足够醒目,却没有办法真正帮助我做决定。
同样,“计算机仍然很有前景”也是如此。
计算机科学作为一门学科仍然有大量值得研究的问题,并不能直接推出:
四年以后,一个普通 CS 本科生一定很好就业。
这里实际上混杂了两个完全不同的问题:
CS 这门学科有没有未来?
以及:
选择 CS 的我有没有未来?
前者讨论的是一个学科。
后者讨论的却是我自己的能力、方向、学历、经历以及几年后的就业环境。
而真正与我的选择有关的,其实是后者。
6.我之前的推理中,有没有隐藏的假设?
再回头看自己之前的担忧,我发现其中其实隐藏着不少没有经过验证的假设。
比如:
LLM 越来越强
↓
AI 越来越会写代码
↓
程序员需要写的代码越来越少
↓
CS 岗位越来越少
↓
所以不应该选择 CS
这条推理看起来十分顺畅。
但每一个箭头,其实都需要证据。
AI 提高编程效率,是否一定意味着程序员数量减少?
还是意味着同样数量的人可以完成以前更大的项目?
Vibe Coding 降低写代码的门槛以后,是不是反而会让软件需求进一步增加?
未来真正被压缩的,会不会只是大量重复性的编码工作?
如果是这样,那么需求下降的也许不是“懂计算机的人”,而是“只会按照需求写代码的人”。
当然,反过来也不能因为这些可能性存在,就乐观地认为:
AI 一定不会影响程序员就业。
我真正能够得到的结论只是:
我目前没有足够的证据,证明“LLM 发展”可以直接推出“CS 不值得学”。
所以,比起不停讨论“AI 会不会让程序员失业”这个过于庞大的问题,我似乎更应该问:
在 AI 已经能够大量参与编程的时代,什么样的 CS 能力仍然稀缺?
如果未来人人都可以让 Agent 写出几百行代码,那么判断一个方案是否合理、设计一个复杂系统、理解计算机底层发生了什么、定位 AI 没有发现的问题,也许反而会变得更加重要。
这也是我真正想去验证的事情。
7.我的“基础差”,又是怎么得到的结论?
除了就业,我另一个很大的顾虑是:
我现在的 CS 基础太差了。
进入 NJU 以后,这种感觉可能会更加明显。
有人高中就在打 OI,有人已经写过完整项目,有人早已熟悉 Linux、算法甚至机器学习。
而我经历了高中三年的空档期,很多以前学过的东西都已经忘掉了。
和他们相比,我当然很容易得出:
我不适合 CS。
但《学会提问》让我意识到,这里面又发生了一次偷偷的概念转换:
“我现在不会”
被我悄悄转换成了:
“我以后也学不会。”
可是支撑后一个结论的证据,其实并不存在。
甚至有人回复我的经历本身就是一个反例——本科并不是 CS,并不意味着一个人不能自己学习,也不意味着之后不能继续进入相关领域。
那么,我真正需要验证的问题就不应该是:
“我现在比别人差多少?”
而应该是:
“当我真正投入时间以后,我学习 CS 的速度怎么样?”
这个问题靠思考是回答不了的。
只能靠学习。
8.我真的“热爱 CS”吗?
还有一个更根本的问题:
我一直说自己因为“热爱”想去学 CS。
但“热爱”这个词本身,也值得怀疑。
我喜欢折腾服务器,喜欢部署一些奇奇怪怪的服务,喜欢研究一个程序为什么报错,也喜欢看到一个东西从完全不能运行,到最后真正跑起来。
但这些真的等于:
我热爱计算机科学吗?
也不一定。
也许我喜欢的只是“折腾”。
也许我喜欢的是创造东西之后的成就感。
也许我喜欢的是软件工程,而不是计算机科学。
甚至也可能,我只是喜欢使用新技术,而不喜欢真正研究技术背后的原理。
那么:
当课程从“做一个好玩的项目”,变成数据结构、离散数学、计算机组成、操作系统的时候,我还会不会喜欢?
当一个 Bug 连续折磨我几个小时的时候,我还有没有耐心?
当 Agent 可以十分钟帮我完成一个项目,而我却需要几天时间从底层理解它的时候,我愿不愿意选择那个更慢的过程?
如果这些问题的答案都是“不愿意”,那么我所谓的热爱可能没有自己想象得那么牢固。
所以,与其现在告诉自己:
“因为我热爱 CS,所以我要转 CS。”
不如把它改成:
“我要验证,我对 CS 的兴趣能不能支撑长期而枯燥的学习。”
9.不过,热爱至少给了我学习的动力
虽然前面一直在追问:
“我真的热爱 CS 吗?”
但有一点,我目前还是比较确定的:
学习自己感兴趣的东西,确实会给我带来更强的内驱力。
回头看自己以前接触计算机的经历,其实很多东西都不是因为“必须学”才去学的。
比如 Linux 运维。
比如略显枯燥的语法。
比如这篇文章正在用的Markdown。
仔细想想,从 Linux 运维,到算法,再到 Markdown,这些东西之间看起来没有什么直接联系。
但它们背后似乎有一个共同的起点:
我对 CS 本身感兴趣,所以愿意不断去接触它周围的新东西。
这种感觉和为了考试学习是不太一样的。
为了考试学习时,我经常会问:
“这个考不考?”
但学习自己真正感兴趣的东西时,我更容易问:
“这个为什么会这样?”
“还有没有更好的实现方法?”
“既然已经学到这里了,要不要再往下看看?”
而后面这几个问题,似乎才更容易让一个人长期学下去。
所以,我现在并不想把“热爱”描述成一种万能的东西。
它不能保证我一定能转专业成功,也不能保证我毕业以后一定能找到好工作,更不能弥补能力上的所有差距。
但是它至少能够提供一种很重要的东西:
让我愿意主动学习的动力。
而如果一门专业需要四年、甚至更长时间持续学习,那么这种“愿意自己往前走”的动力,也许本身就是选择专业时不能忽视的一部分。
所以,对我来说,“热爱能不能让我在社会上立足”也许还不能回答。
但至少目前,我能够回答另一个更小的问题:
热爱能不能让我更愿意学习?
我的答案是:
能。
10.那我真正愿意面对和解决的问题是什么?
写到这里,我发现我最开始的问题是:
来到 NJU,我到底要不要为了热爱选择一个风险较高的 CS 专业?以及热爱能不能让我在社会上有一个立足之地?
但这个问题其实太大了。
它要求刚刚进入大学的我,在没有足够信息的情况下,预测自己的能力、四年后的就业市场,甚至预测 AI 未来的发展。
我当然回答不了。
所以,比起强迫自己现在给出一个“Yes or No”,我更愿意把它拆成一些真正能够去验证的问题:
- CS 的就业到底发生了什么变化?“秋招炸了”究竟是短期周期,还是长期趋势?
- 不同 CS 方向的就业情况是否存在明显差异?
- LLM 真正正在取代的是哪些工作,又让哪些能力变得更加重要?
- 如果想走 AI,本科阶段真正应该打下哪些基础?研究生是不是真的已经接近必要条件?
- 用一个学期系统学习之后,我和其他同学之间的差距究竟有没有自己想象得那么大?
- 脱离 Agent,我究竟能够独立完成什么?使用 Agent 以后,我又能够做到什么?
- 我喜欢的到底是 CS、软件工程,还是单纯喜欢折腾技术?
- 辅修 CS、转专业、跨专业读研,这几条道路真实的成本和收益分别是什么?
- 如果转专业失败,我真正会失去什么?
- 如果因为害怕失败而没有尝试,四年以后我会不会更加后悔?
- “热爱”究竟怎样才能转化成真正能够让我立足的能力?
其中一些问题可以查数据。
一些问题可以问学长学姐。
一些可以通过课程和项目验证。
还有一些,也许只有几年之后的自己才能回答。
但至少,它们比一句:
“CS 到底值不值得学?”
更加接近一个我真正能够面对的问题。
11.目前,我能得到的答案
现在让我回答文章开头的问题,我仍然没有办法给出一个确定答案。
甚至在看完这些评价以后,我反而更加不愿意简单回答:
“应该转。”
或者:
“不应该转。”
因为我发现,悲观的评价未必是错的。
CS 的就业竞争可能确实在变得更加激烈,AI 带来的冲击也是真实存在的。
但乐观的评价同样有道理。
计算机科学并没有因为 AI 出现就突然失去研究价值,真正深入理解一个领域的人也仍然有存在的意义。
所以这些过来人的回答真正给我的,似乎并不是一个答案。
而是更多的问题。
这可能也是《学会提问》给我最大的启发:
面对一个重要的人生选择,我真正需要的不是尽快找到一个能够让我安心的答案,而是尽可能避免因为一个听起来有道理的答案,就停止继续思考。
于是,我现在更愿意把最开始的问题:
“我要不要为了热爱冒险去学 CS?”
改成:
“我愿不愿意花足够的时间和行动,去验证自己能不能把这份热爱变成真正的能力?”
转专业结果、四年后的就业环境、LLM 会发展到什么程度,这些事情我现在都控制不了。
但是有一件事情是我可以控制的:
在真正了解它之前,不因为恐惧替自己提前放弃。
至少现在,我愿意继续把这个问题问下去。
一些补充
写文章的功夫,有一个网友的观点我很认同:
他的观点和我之前的观点不谋而合:AI时代,看重的是工程管理能力、新技术的学习能力以及清晰的自然语言表达能力。
在古法编程的时代,一门语言的新特性可能要等好几年才能大规模应用;而在ai时代,每隔几个月就会有新的ai项目,新的工作流程出来。于是,持续学习在如今更为可贵,我们需要不断学习新概念,新技术,这样才能赶上ai浪潮。
至于思想,我认为ai思维的形成是建立在上面讲到的“持续学习”的基础上的。只有不断学习,我们才能真正认识到ai的边界在哪,以便我们在边界之内去build我们的世界。
放个皮卡丘在这里:
