2021 年,我都做了些什么

一、前言

每当我静下心来仔细回想自己的 2021 年,一切好像过得特别快,又好像过得特别慢;好像做了很多事情,又好像什么都没做;好像自己成长了很多,又好像一切都还在原地踏步。

2021 年依旧是被新冠疫情改变的一年,但是随着我们的思维和生活被它深刻的介入,它构成了巴迪欧等人所宣称的「事件」——偶然的断裂涌现,并且持续地延宕到现在,成为我们生活的一个背景。我想了很久要用一种怎样的方式来复盘我的 2021 年,才会让读起来不至于像流水账,最终决定还是以时间线为线索,串联一下我对 2021 年的回忆。这篇自己 2021 年的年度总结文章,从 1 月初回到家后开始动笔,今天终于跟自己的拖延症做了最后的斗争,写完了这篇总结。

二、2021 年开发的项目

2021 上半年基本上每天都在 coding,这是一整年我最享受的一段时光。作为一名开发者,你编写的每一行代码就像承载你思想和智慧的 DNA 片段,我最大的成就感来自于自己的开发的东西能够得到了用户的喜爱,能够潜移默化地改变一些人的工作和生活。技术最好的使用场景就是能够用它来替代人类,去完成那些枯燥乏味的工作。

2021年的Github绿点图

校勤工俭学工资申报系统

这是从校学生处承接下来的一个项目,搭建这个申报系统的目的,是对我校勤工俭学工资申报流程进行信息化改造,这是今年花费时间最多,也是带给我收获最多的一个项目。

在分析了系统的主要需求后,决定使用 Python 的 Django 框架进行开发,Django 自带大量 Web 开发常用工具和框架,适合快速开发此类应用,同时它自带的数据库 ORM 组件和管理系统 admin,对开发此类管理系统来说,可以省去不少的代码量,开发中可以专注于主要业务逻辑的书写。另外,系统的前端页面我采用的是 Tailwind,Tailwind 是我 2021 年新接触的一个 CSS 框架,使用 Tailwind 来创建原型和实现定制设计是非常快的,比大多数其他 CSS 框架快得多,而且具有深度的可定制性。

系统主界面

系统上线之后,学生可以在系统上申报勤工工资,学院/二级部门管理员可以在后台对这些工资申请进行管理、审批和导出当月报表,校级/一级管理员可以对勤工信息进行归档整理,统筹工资发放。21 年 3 月份在全校 15 个二级学院中试运行,4 月份开始在全校范围内推广使用后,稳定运行至今,截至今天系统拥有用户 1000 余人。自投入应用以来,解决了以往工作存在的管理散、效率低等问题,极大地提高了助学管理工作的效率和质量,达到了预期的效果,得到了学校领导的表扬,已成为学校日常运作中不可或缺的一部分。

还记得在大一的时候,我给自己定了个目标:就是开发一款全校人都使用的小程序,当时想起来觉得自己的能力还是差的挺远的。现在想起来,自己竟然在大三完成了自己当初给自己定下的目标,算是我大学里值得骄傲的一件事情,很感谢学生处的老师们能够信任我给我这次机会。

在今年年底,在这个项目的基础上组队参加了 2021 年高校易班技术创新大会,获得了「自主应用研发」类的省级一等奖,国家二等奖,也算是意外之喜了。

会通楼空课室查询系统

这个系统源自于自己的一次临时起意,这次心血来潮也让我收获了大家的认可。

5 月开始,我所在的校区开始大范围整修,整个校区只剩下一栋教学楼在课室没课的时候可以开放给同学们自习,但是在实际运行中会发现有一个很大的弊端,同学们不知道课室在哪个时间段课室是空着的,课室既没有课,也没有被借出。举个我自己亲身经历的例子,在 5 月的某一天晚上,我在会通楼想找一个空课室,来写完我的课程论文,连续三次刚找到空课室,刚收拾好没多久就有借了课室的同学来把我赶走,这的确让人火大。于是我论文也不写了,我就在想想我能做些什么。

问题主要出现在信息差上,大部分同学们不知道可以通过教务平台查询空课室,即便知道的也会因为繁琐的步骤而望而却步。即便如此,教务系统上的课室信息并未包含系统借出的,而这部分借出课室的信息,需要通过另一个系统拥有特定权限的账号才可以查询,两者数据整合到一起,才可以得到最为准确的空课室信息。但是这部分工作量实在太大了,为何不能由我来做一个资源的整合呢,说干就干。

花半个小时的时间写好了空课室信息自动更新脚本,再用 Django 快速搭建了一个简易的 Web 查询平台 demo,由于前端 UI 框架套用的勤工系统,所以开发起来特别快,前后花的时间加起来不超过两个小时。忙完已经是凌晨 1 点,回宿舍的路上我发了一条朋友圈将这个系统介绍给大家用,没想到第二天这个系统居然掀起了一点小波澜。带系统二维码的海报被传到了校内各个群,还得到了权小益的转发,由于在系统上留了微信号,微信几乎被加爆了。

其实系统本身并没有什么技术含量,我只是将我手上可以获得到的资源进行了整合,写了自动化脚本,方便自己也方便同学寻找自习室。摸着良心讲,我预料到同学们会对这个系统有好的反应,但是反应如此之大是却是让我始料不及的。由于使用的同学比较多,后续还更新了几个呼声较大的功能:支持按照时间段查询,以及增加了对仙溪校区的支持。下半年在备考期间,也保持着对系统的维护,科技向善,能够帮助到他人对我来说是最开心的一件事情。

系统详细的介绍可以看下面这两篇推文

https://mp.weixin.qq.com/s/QxhB8mYS9XRyv7L7sMSq1g

https://mp.weixin.qq.com/s/jZkVaxJZHI3MDbIyDNonJw

空课室系统后台数据

其他一些小项目

学院学工管理平台

这是配合学院易班开展活动的一个平台,由我主持开发,老师给予了极大的自由度,基于 Django-allauth 重写了 Django 的用户系统,由于用户功能的完善,使得系统的可拓展性十分高,现在这个系统包括查寝、党史学习打卡、运动记录打卡、体测成绩查询、青年大学习未学习名单查看等特色功能。

学院党建主题网站

学院党建项目需要一个开发一个主题网站,和团队成员自行设计并且从零设计并搭建了一个网站,缺点是没有针对手机端页面进行适配,总体上还是比较满意的。

建党百年头像

献礼建党百年的一个特色活动,纯前端静态页面,使用 fabric.js 让用户上传头像并且生成头像框,算是一个比较有趣的应用。

说课打分系统

受专业课老师所托,开发了一个说课打分系统,需求能够在页面上实时显示最新打分情况,对并发量有一定的要求,在这个项目学习到了一些应对高并发的处理方式,也算是一种特殊的收获。

三、技术学习

2021 年对技术上的学习其实是有些懈怠的。

算法方面,在年初为了准备面试,重新梳理了一遍自己半吊子的数据结构与算法知识,刷了约莫一个多月的 LeetCode,当时自己还能写得出 LRU 和红黑树的代码,直到后面面试碰壁准备考研,也就减少了对算法的学习。到今天写这篇文章的时候,算法水平已经退化到一个相当低的水平了,这玩意还是得多写多练,才能提高自己的水平。

今年自己几个项目都使用到了 Django,于是在闲暇时间阅读学习了 Django 的源码,一开始以为自己对 Django 足够熟悉,读起来应该会是得心应手,但是发现这是一个深坑,光是搭建 Django 源码的 debug 调试环境就要花去我一天的时间。但是这种通过阅读源码反刍自己学习的方式却令我受益匪浅,到了今天我也还没读完 Django 的源码,QuerySet 部分的源码学习了接近三个月的时间才断断续续地读完,新的一年立个 flag,希望能够读完 Django3.x 的源码。

由于有监控的需求,今年还搭建了 Prometheus + Grafana 的监控平台,能够对基于 api 做一些简单的二开。

由于部署的需要,容器和容器编排也学习了一些,现在能够按照要求自己编写一些 docker-composed 配置文件了。

由于需要实现异步任务,新接触了 Cerely,对 Redis 更加熟悉了,花时间拜读了 redis-cli 的源码。

为了整活,用 Jenkins 搭建了自己基于容器化项目的 CI/CD,但是自己没整明白,不敢在生产环境用。

……

2021 年基本上都是基于项目需求学习相应的技术,学的比较杂,学得也不深,业界前沿的一些东西并没有接触多少,新的一年希望能够在继续修炼好内功的同时,多往深了学习一些常用的吧。

四、考研

谈起 2021 年,绕不开的一个事情肯定是考研,本来年初都做好了找工作准备,在刷算法题和背八股文了,但是在春招找实习岗的时候由于自己院校专业的原因,过了技术面倒在了 HR 面。对我自己而言,本科专业不是计算机类专业始终让我难以释怀,也深感自己在学科基础知识方面与其他同学的差距,没有系统学过这类知识,始终是一种缺憾。以上两个原因,促成我做成考研的决定,最终结合自身的条件,决定报考西南某双非计算机特色院校的软件工程专业。

虽然 4 月左右就决定考研,但是当时还在学院任职、专业课的课程的压力也不小,平日里分给考研复习的时间具体下来不到三个小时,背背单词和看数学基础课视频就差不多结束了。真正开始进入复习状态,是从 7 月暑假开始的,假期学校不提供留宿,便在学校附近租了一个小单间,由于我对自己有深刻的认知,知道凭借自己的自制力,是不可能老实待在出租屋学习的,最后在祖庙商圈一间自习室办了两个月的卡,也就正式开始这半年时间的复习。

到自习室办完卡后顺路献了血,此时离考研正好剩下半年的时间

暑假期间的复习基本上都是在打基础。数学跟的武忠祥和李永乐的强化课,看完课程后将书上例题自己重新做一遍,再选做一些课后的习题,现在看来还是对自己太温柔了,训练量实在太少,为最后考研时数学的尿崩埋下了伏笔。我的专业课只有一门书,暑假两个月的时间大概前后过了得有三四遍,得亏是暑假时间将专业课基础打牢稳住了基本盘,到了后期发现完全没有时间来补这些基础。英语的复习完全交给了阅读,一天一篇加精读,一开始正确率相当惨淡,一套试卷 20 道题只能对个 7、8 道,到最后慢慢找到了感觉,假期结束阅读保持在了一篇最多错 1 个的水平,速度也略有提高了。政治我是在 8 月才开始的,马原看的徐涛的强化课视频,政治其他三科觉得看的有点浪费时间就自己看书了,每复习完一章做对应的 1000 题。

9 月开学回到学校之后其实是 emo 了一阵的,学习效率也明显降低,因为不确定学校的防疫政策,而且校内自习室资源相当紧缺,到后面也是感谢辅导员老师的帮助,为我们争取到了几间相对固定的自习室,这才逐渐好了起来。9 月基本都是对一些知识进行扫尾,数学对强化部分的习题进行二刷,寻找知识漏洞。专业课开始做真题,大概一两天一套卷子,做完一轮后统计出错的地方,针对自己薄弱的地方回炉重造。英语上就开始三小门的准备,说实话这三门除了新题型有比较强的方法论,翻译和完型在我看来都是考察一些基本功:即阅读+单词,前面基础打好这部分也没遇到太多的问题。政治直到 11 月底都还没开始准备大题,都在梳理知识点,1000 题应该刷了得有三遍,还记得当时刷五位一体的多选题红了一大片时的崩溃。

11 月后离考研就越来越近了,从那时候对自己处于一个怎样的水平就有一个清晰的认知了。这个时候自己有有点进入懈怠期开摆了,数学每天一套真题/模拟卷再查漏补缺,英语每天背单词加一两套阅读,政治每天刷上一百道左右的选择题再看看错的知识点,专业课上就只是整理一些代码题的模板,以上做的这些基本都是在保持做题感觉和调整到考试的状态。

大后期其实没什么好说的,我也不像励志故事的主角那样起早贪黑,基本上每天就是保持状态,等着考试那天的到来。到了 12 月身边一些考研的同学的心态也发生了一些变化,有的人心态崩了,有些人弃考了,一对比我反而不像一个正在考研的人。最后自己也就稀里糊涂上了考场了,稀里糊涂地考完了,除了数学其他三科自己都还觉得满意,也就给这段旅程告一段落了。

Forest记录

五、写在最后

去年我 23 岁,马上就到本命年了,过去一年好像什么事也没做成。不过这一年,学习思考,写代码交朋友,越来越清晰,知道自己想要什么,要做什么。新的一年希望自己能够继续前行在给自己制定的规划上,继续做自己喜欢的事情,我深知计划赶不上变化,人生总是充满了各种意外,但是我仍希望可以朝着自己定下的那个方向去努力,同时也非常期待这条路上的所有意外。感谢一切的遇见,谢谢我的家人,以及帮助过我的朋友们。

新的一年来了,旧的一年已经离去,时间从不回头,失意的,懊丧的,后悔的,都已经发生,已经抛在身后,于是一切又重新开始,又都是新的可能,这一年,我们理应更了解自己,也许不用那么卷,也许我们应该向着那个更豁达,更温柔,更体谅自己的人生,多前进一步,对自己好一点,抱抱你自己。

Hsinyan

2022 年 1 月 22 日

Last modification:January 25, 2022
If you think my article is useful to you, please feel free to appreciate