2024 个人总结

2023 年的目标

“因此在 2024 年,我将会学习更多的关于算法(CS61B)、计算机网络(CS114)、 数据库、编译原理、Java(面向实习学习)、分布式等知识,争取能在暑假拿到offer。”

上述言论是我在 2023年12月31 在博客中提到的。当时我的想法是学习 Java 后端,学习通用的 Java 学习路线,然后在暑假拿到 实习offer。

但最终,2024 年一整年,我的学习内容可以说是和上面的没有任何关系。在这篇博客中,我会谈到我为什么会发生这样的转变。事实上,如果我在 2024 年真的去做 Java 后端了,我是很有信心能在暑假拿到 实习offer 的,因为我在 2023 年已经有了一个很不错的 Java 的基础,学习更高级的 JavaWeb 是没有任何障碍的。

我没有选择 Java 后端的原因比较多,大概是我对计算机系统结构的兴趣、我对计算机底层原理的好奇和我对职业生涯周期的担忧的综合的结果。下面我将会谈到我的看法(均是我的个人看法,请理性看待)。

AI 的崛起

如果在 2023 年说到,AI 会取代程序员,我会嗤之以鼻,因为我是真的在 2023 年初期用过 AI 来辅助写代码并且那时候我感到它一点都不强,无非就是只是生成一些简单的代码框架,类似于模版的东西。至于那时候网上铺天盖地的程序员要被 AI 取代的信息我一点都不相信。甚至为了方便,我在网上使用了一个开源项目,把 gpt 做到了命令行工具里,那时候是 gpt3.5,它会犯很多我能轻易察觉到的错误。比如有时候它会误解 C++11中的某些知识,我还得给它纠正,然后我才能继续下一步。

在 2024 年 6 月份的时候,事情变了,我接触到了 gpt4.0。通过使用 gpt4.0,我第一次感受到了 AI 的迅猛和进化速度,它几乎能回答我关于编程知识任何疑问,包括修改代码、给出 bug 解决方案等等。gpt4.0 远比 3.5 强。3.5 如果是一个小学生的话,4.0 就是一个很厉害的大学生。

如果按照这个趋势发展,程序员的工作效率可能会增加 10 倍甚至几十倍都是有可能的。而需求增长是缓慢的,这意味着将会有大量的程序员失业,留下的往往是名校+高学历等 buff 加成的。而普通大学生呢?这就是一个关键问题了。

因此从那个时候,我开始认真思考这些类似于 “AI 取代程序员” 的信息了。

到 6 月份,上学期快结束了,我主要就是学习了 C++11等,还做了两个小项目,刷了一些 leetcode。

再谈 AI

这学期我选了一门本选研的课程《高级编译原理》,这门课是本科生和研究生一起上的。这门课提供了两个实验。一个是词法分析,一个是语法分析。

词法分析是我用 rust 写的,语法分析比较复杂且我对 rust 掌握有限,所以我用 C 语言完成了它。

我做语法分析的时候,使用了 vscode 中提供的 Copilot。使用的体验是,Copilot 太强了。我写代码喜欢先写注释,结果我刚写完注释,它就知道我要干什么,接着就给我生成了几十行代码,我直接 Tab,然后编译运行,结果是,他真能跑。

尽管生成后的代码依然存在部分问题,但是也仅仅在我微调之后,它的功能就很完善了。这样我的效率增加了至少 3 倍,一下午就写好了,包括文法、消除递归和嵌套、LL1 判断、构建分析表等等。

我的问题是,Copilot 在 5 年后将会发展到多强?由于前端代码在代码数据中占大多数,那么训练出来的模型可能将会最擅长前端代码的生成,前端框架、前端项目甚至都可以直接给出。

另外还有Java、C++后端等,增删改查、常见需求在 AI 的加持下,不难想象,对于涉及的程序员的需求将会大大减少。

这对于很多程序员的职业生涯将会是很大的打击,因为历史经验告诉我们,生产力的爆炸式增长,并不会带来工作时长的减少。同时需求增长的速度具有滞后性,因为很多需求是需要人为创造的,因此它具有滞后性。程序员的职业生涯可能将会非常短暂。

写一个 CPU

6月份的时候,有一个朋友给我推荐一生一芯项目,我看了官网的介绍和一些讲义大纲之后,顿时来了兴趣,经过 10 左右的思考和了解,我决定开始学习一生一芯。因为写一个 CPU,然后在自己写的 CPU 上启动 Linux 或者自己的操作系统。我想,这件事情太酷了,任何一个喜欢计算机的都很难抵挡这种诱惑。

经过了一个暑假和三次答辩,终于在开学最后一个周末,通过了入门考核,那真的让人振奋。

开学后,自然是全职做 ysyx。中间的痛苦和快乐真的让人回味无穷。印象最深刻的是接入 SoC 后我给自己埋的一个 Bug坑了我好几天,每天在那里 debug 10小时都无济于事。还好最后解决了。

其它的有意思的事情在这里就不多说了,文字难以表达的东西太多了。

未来要做什么

未来要做什么,这个问题我思考了很久很久。首先,我的工作必须不是那么很容易被取代的,这让我向往底层;其次,我必须得提高计算系统结构这方面的能力,这对我来说相当重要,否则我就不会来再一次读这个本科了;最后,我喜欢分享,我希望等我掌握足够多的知识后,能活跃于各个社区。

当下就是去好好实习,学习尽可能贴近生产的技术和技能。接着就是龙芯杯、编译器、操作系统这些东西,也就是掌握计算机系统结构所涉及的一切。


2024 个人总结
http://blog.luliang.online/2025/01/09/2024年度总结/
作者
Luyoung
发布于
2025年1月9日
许可协议