如果要用一个词来形容 2023,我会选「启程」。
不是那种意气风发的出发,而是站在路口犹豫了很久,终于迈出第一步的感觉。
写在前面
大二。广州的秋天来得很晚,十月底还穿着短袖在食堂吃饭。宿舍四个人,两个在打游戏,一个在刷剧,我对着屏幕敲 SQL 语句。那段时间数据库概论占据了我大部分精力——关系代数、范式分解、事务隔离级别,每一章都像在啃一块干面包。但我还是把八章笔记全部敲进了博客。
现在回头看,那些笔记写得很稚嫩。SELECT 语句的例子都是从课本上抄的,ER 图画得歪歪扭扭。但它们是我认真对待技术写作的起点——至少我学会了把「理解一个东西」和「把它讲清楚」当成两件不同的事。
第一个被人使用的项目
真正改变轨迹的是 wps_script。
起因特别朴素:每天手动给爱奇艺、B站、全民K歌签到太烦了。我花了两个周末用 JavaScript 写了一套 WPS AirScript 自动化脚本,支持十几个平台的自动签到。写的时候纯粹是为了自己用,README 都写得很随意。
没想到发到 GitHub 之后真的有人来用。第一个 Star 来自一个完全不认识的人,我盯着那个通知看了很久。后来 Star 从个位数涨到两位数、三位数。有人提 Issue 说某���平台的签到接口改了,有人提 PR 帮我加了新平台的支持。
这是我第一次体验到开源的闭环——你写的东西有人需要,有人用,有人帮你改进。那种感觉很微妙,不是成就感那么简单,更像是一种确认:原来我做的事情是有意义的。
课程作业与意外收获
同期用 PyQt5 写了一个图书管理系统,是数据库课的大作业。说实话这种 CRUD 项目没什么技术含量,但我认真做了 GUI 界面、数据统计图表、导入导出功能。答辩的时候老师说「做得比要求的多」,那句话让我开心了好几天。
9 个 Star。放在现在来看微不足道,但对当时的我来说——有人觉得我的课程作业值得收藏,这件事本身就是一种鼓励。
博客的诞生
年底的时候,我决定搭一个自己的博客。
前前后后折腾了好几个晚上:Mix Space 的后端部署、MongoDB 的配置、Nginx 的反向代理、HTTPS 证书的申请。中间踩了无数的坑——Node.js 版本不对、端口被占用、PM2 进程莫名其妙挂掉。有一次凌晨两点还在 SSH 里面 debug,室友已经睡着了,只有机械键盘的声音和空调的嗡嗡声。
但当我在浏览器里输入自己的域名,看到自己写的文字出现在屏幕上的那一刻——值了。
也是这个时候我第一次接触了 Node.js 和 Express。跟着教程搭了一个后端服务,部署到 Vercel 上。那种「我的代码在互联网上跑起来了」的感觉,至今记忆犹新。像是在数字世界里种下了一颗种子,然后远远地看着它发芽。
里程碑
- GitHub 开始有了稳定的 commit 记录
- wps_script 发布,成为第一个被陌生人使用的项目
- 博客搭建完成,写了第一批技术笔记
- 学会了 Git 的正确打开方式(是的,之前一直在网页端手动上传文件,想想都觉得离谱)
技术栈
Python · JavaScript · Node.js · Express · PyQt5 · SQL · Git
从零到有,每一个都是新的。每学会一个新东西都有一种「原来还能这样」的惊喜感。
开源
wps_script 是我的开源初体验。从写 README 到处理 Issue,从看懂别人的 PR 到点下 Merge——这个过程教会了我很多课堂上学不到的东西。比如怎么和素未谋面的人协作,比如怎么在代码里表达善意。
电子垃圾
- 一台学校统一配的笔记本(i5 + 8G,跑个 VS Code 就开始转圈)
- 一个 ¥45 的域名 caiths.com
- 一台最低配的云服务器(1C1G,但它是我在互联网上的第一块地)
关于这一年
2023 年没有什么惊天动地的大事。没有拿奖,没有实习,GitHub 上的绿点也很稀疏。但回头看,这一年完成了几件对我来说很重要的事:写了第一个有人用的开源项目,搭了第一个属于自己的博客,学会了用 Git 管理代码而不是用微信传文件。
所有的开始都不算晚。重要的是,你真的开始了。
「一个人知道自己为什么而活,就可以忍受任何一种生活。」——尼采
往年回顾
这是第一篇年度总结。希望以后每年都能写一篇,等老了回来翻翻,也是一种奇妙的体验。