Skip to content
Hazuki Keatsu
Go back

大二学年总结

Hazuki Keatsu

前言

终于结束了期末考试,为了完成这个期末考试,我焦头烂额地复习了一个月左右,从最开始地游刃有余到后面的直接摆烂。本以为我期末考试肯定会挂课几门的,但是就目前的结果来看,似乎全部安全通过了。由于各种问题,这个学期确实摆烂居多,但是这个学期同样也发生了很多的重要的事,有很多的事对我来说都是意义非凡的,所以思来想去,正好考完试了,留在学校没有什么事要做,不如写一个大二学年总结吧,以后还能回忆回忆。

一、学习

学习不应该是本文的重点,但是作为一名大学生,我觉得还是可以稍微提一下的。这个学年学习了很多的专业课程和以前没有修完的大类通识课,通识课就没必要说了就是大学物理一类的。说实话,这也是我意见最大的地方,我说计算机的学生学大学物理是何意味,也不知道学了有何用,还不是考了就忘。

专业课内容就挺丰富的了,什么数据结构、面向对象、操作系统、计算机组成原理,等等。确实是学了很多的东西,不过还是感觉学得很浅薄,毕竟大多数的时间都在教师里面上课,没有什么更多的实践机会,课是听了的,上手是不会的。

不过我觉得这些都不是最 NB 的,最 NB 的还得是我大二上学期一次性修了三门通识课,当时真是活力满满,一口气选了三节课,结果上得和狗一样,直接给我累趴了,一整天不是上课就是上课。本来想着提前上完通识课,双创周直接跑路,结果在期末考试快结束的时候,突然多了三门什么的思想政治理论实践课,直接给我整无语了,破灭了我的暑假跑路梦,所以才有了今天在这里写的这篇文章。(三节课硬控我两个星期,我真的服了,西电当个人吧。我说教学内容应该放在教学周,有没有懂的?)

就目前的结果来看,这个学年的学习工作是正常完成了的,均分在 85 分左右,唯一的拖后腿的居然是英语,不过英语不是保研科目,那就算了吧,不管了。

这个学期末还做了一个重要的决定:我决定退出软件工程卓越班,西电的实验班真是太恶心了,卷子出得难压分不说,还经常整一些有的没的的破事儿。本来以为保研会是一件很难的事情,但是我发现我现在的成绩都保底西电了,所以还是退出吧。我现在还是比较讨厌西电的,以后对于我来说只有两种选择:要么就业,要么保研外校。

二、工作

这个才是重头戏,这个学年我学了很多的技术栈,也参与了很多的开源项目的开发,对于软件工程领域的认识又上了一层楼。

首先是在大一的暑假,我学习了 Flutter 相关的技术,和大多数初学者一样,我搭建了一个 TodoList 软件,并开源在了 Github。这个项目是一个练手的项目,所以代码写得很烂,也没有得到了很多的关注,但是它造就了一件很重要的事情,这个待会儿说。

然后就是我使用 Astro 搭建了一个个人博客,当时是直接使用的 Astro-paper 的模板,但是我新增了很多的功能,包括字数统计、文章目录、评论区等,然后二次开源为 Aero-paper,这是一个现代风格的博客主题,有很多的毛玻璃和卡片的设计,但是后来我觉得这个设计过度复杂化了,所以我还是回到了最基础的 Astro-paper,同时进行了少量的定制,就将就着用吧,因为我明白了博客的本质还是在于内容,而不是页面有多精美。再次搭建博客的时候,我的审美变成了比较喜欢的论文的排版,所以我使用了完全的衬线字体和米白的背景,这应该是我的博客的最大的变化。

搭建博客的同时还丰富了我的 Github 主页的 Readme 文档,添加上了我常用的技术栈的 skill-icons 和 contribution-wall-snake。其实这个文档也是经历了一个从繁到简的过程,从最初的各种复杂的 api 调用,到后来只有简单的文字说明和使用 workflow 构建的 skill-icons 和 contribution-wall-snake,这是我现在形成的全新的开发美学——回归极简主义。

我还在这段时间写了一个项目——bili-audio-parse-api。这个本来是准备给博客用的,让我静态部署的博客能通过一个微服务来解析哔哩哔哩的视频的音频(因为我的博客有一个网络播放器)。这个项目是我第一次尝试人和人工智能协同工作——完全的人的架构设计和完全的人工智能代码编写,从最初的一个简单的需求文档,到开发文档,最后到代码的生成,让我体会到三件事:

  1. 人工智能拥有极强的编码能力,在写代码上完全可以替代人;
  2. 人工智能没办法做设计,如果设计上没有规划好,人工智能的代码将写得非常糟糕;
  3. 文档在软件的开发中极其重要。

接下来是我最重要的一个阶段,在这个阶段,我真正地实际参与到了开源软件的开发中。如果之前的开源只是自己的小打小闹,这次才是真正将自己写的代码交出去给其他的人看。我之前学习了 Flutter 这个框架,同时我们学校校内有一个服务于学生的开源信息聚合软件 traintime_pda/xdyou 也是使用的 Flutter 构建的,而我也是这个软件的使用者,我在使用的过程中发现了一些问题,于是我给这个项目提出了 Issue 同时修复了问题,并提出了 Pull Quest。项目的所有者对于软件的维护很上心,回复很快,我也第一次参与到了和大家一起讨论软件的 Issue 的解决方法,这对我的收获很大。形成了我的开源参与模式——先去使用一个软件,然后发现问题,然后和他人交流并寻找解决问题的方式,然后解决问题,然后发现更多的问题(或者是别人的问题),然后去解决别人的问题,慢慢地成为一个项目的核心维护者。

之后,我还写了很多的小玩意:

  1. xuexitong-paste-injector:这是一个用来破除学习通网页端禁止粘贴的脚本。在这个脚本的开发过程中,我学习到了开发油猴脚本的方法,也对逆向网页有了更加深刻的理解。
  2. xuexitong-ppt-downloader:这是一个下载学习通网页上不可以下载的 PPT 文件的脚本。是上一个项目的拓展,我通过这个脚本还学习到了浏览器插件的开发方式。

然后,我还立项写一个视觉小说引擎。由于市面上太多的同类产品的出现,这个项目已经决定流产了。我完成了这个引擎的 UI 框架的开发,这是一个使用 Rust 构建的保留式的声明式 UI 框架。为了开发这个 UI 框架,我还专门去学习了 Rust 这门语言,Rust 也是我继 C、CPP 和 Dart 之后掌握的第四门编程语言,虽然说掌握的不太深。我的这个 UI 框架是借鉴了 Flutter 的框架设计,使用了 Widget Tree 和 Render Object Tree 的双树结构,为了适配视觉游戏引擎的需求,我去掉了 Element Tree 的设计,使用全量刷新替代 Flutter 的局部刷新设计。然后由于 Rust 的所有权机制,Flutter 用来实现响应式的函数回调在 Rust 里面是不可能的,所以我使用了消息传递的方式来替代,事件顺着 Render Object Tree 向下传递,直到被目标组件捕获,然后将消息从下至上传递,直到被目标组件捕获,然后被消费。这也算是一点不同于 Flutter 的小设计。开发这个 UI 框架对于来说最大的收获可能是对 Flutter 这样的保留式的 UI 框架有了一个更加深刻认识,理解了框架的工作原理。

同时在做这些工作的时候也去给一些开源项目(例如,flutter_i18nastro-paper)写了一些小 PR,修复了一些小问题。

我还参与了 shining-acg-app 的开发,我实现了项目的瀑布流布局,这是我第一次去在生产环境中写网页代码,项目使用 deno 在同时管理前后端。参与这个项目的最大的收获是我在学习了 svelte 这个轻量前端框架的同时还接触了很多的项目管理知识,对于多人协同工作有了一个全新的认识。

然后就到了近期,我觉得最值得一说的项目是 velotype。这是一个使用 GPUI 构建的原生即时渲染的 Markdown 的编辑器。我在这个项目中使用了一个新的开源贡献模式,即直接去仓库的下面找自己感兴趣的 Issue,然后向作者表示,你对这个项目感兴趣,然后直接去解决这个 Issue。

所以,这个学年还是干了很多的活的,收获也是很多的。我接下来准备去完成一个更大的全栈项目用来找工作用的,当然也会开源的,可以期待一下。

三、生活

说句实话,我觉得我大二过得很垃圾,因为各种家庭的原因和自己生活上的原因,我自己的心理其实也出现了很多的问题,使得我很多时候并不能全身心的专注于自己本身了。虽然我自己这样说也不知道对不对,但是很多的时候一些事情没办法就是没办法的。

人这一辈子说长也长,说短也短,人从来不是只有老了才会死,而是任何时候随时都有可能会死,所以呢,在自己的能力范围内,一点苦都不要吃,一点难听的话都不要听,不喜欢的人就直接删掉。人生的首要任务是规避痛苦,而非追求幸福,摒弃所有不必要的愧疚感,让自己过得舒服才是最高的准则。所以在自己能力范围内一定要好好爱自己,要把自己的感受放到第一位。

关于未来,其实我也想了很多。

我现在的感觉是,灵活就业或者阶段性失业,可能真的会成为我们这代人的常态了。能拿到稳定高价值岗位的人,大概只会是少数。

至于 AI 到底会替代哪些工作,我觉得不能简单按文科理科来分,而是要看“劳动的可编码性”。那些依赖于固定规则、模式化输出的岗位,不管文理,都首当其冲。需要复杂情境判断、跨领域直觉和审美偏好的工作,相对安全一些。

往软件工程这个方向说,我觉得七八成的初级程序员会被替代。但这里有一个让我挺在意的点,就是金字塔的塌方。只会写 CRUD 的岗位被取代之后,未来的架构师和算法设计师要从哪里来呢?如果底层的梯子被抽走了,程序员的群体结构就不再是金字塔,而会变成图钉——极少数顶级的人配合 AI 完成大部分工作,中间层剧烈收缩。AI 确实只是工具,但它同时砍掉了很多人从底层一步步成长上来的路。

这些问题的根源,我觉得在于时间错配——生产力的爆发可能就在未来五到十年,而分配制度的根本性改革至少需要几十年。中间的这段真空期怎么过,我也没有答案。但单纯的“按劳分配”肯定行不通了,因为很多人会失去“劳”的机会,也就直接被排除在了分配体系之外。

往大了说,我觉得 AI 可能是实现共产主义的一把钥匙。物质极大丰富和按需分配,需要 AI 和可控核聚变这样的技术来支撑。但我也在想,物质极大丰富不等于按需分配,中间还有一个核心变量——分配权。如果算力、数据和算法这些生产资料依然掌握在少数人手里,那生产力的飞跃只会让贫富差距更大。

说来说去,这些都不是我一个人能改变的事。我能感受到的是,我们这代人大概率要成为夹在旧分配制度和新生产力之间的过渡代。听起来是挺无奈的,但既然活在这个时代了,也没办法。

往小了说,我能做的就是把眼前的事做好。把下一个项目写完,把下一个 PR 提了,把想学的技术学了。不管技术怎么变,能解决问题的人总归是有用的。路还长,慢慢走吧。


Share this post on:

Next Post
交叉编译