又是一个学年过去了,自9月份开始我就是一名大三的学生了。每到这个临近结束的时刻,我都会顿感一阵恍惚——时间匆匆流动,而我却远没有实现一年前给自己设立的目标;越来越多的喜怒哀乐在我心中留下各种印记,想让满足延续,也想让遗憾得到弥补。
每当我骑着单车,双眼扫过沿途上的形形色色,都会觉得自己是尤为的普通,不会有路人的目光在我身上多停留一刻。而儿时的我常常会认为这时的我不可一世,自命不凡,本应该得到更多的关注。这样可笑的自负,甚至持续到了我最初进入大学的那一段时间——我经常畅想,一个自命不凡的、擅长情感输出和语言表达的南方孩子在一个北方人居多的学校究竟可以掀起什么波澜。
这一年,让我彻底认识到了自己有多么普通,不过,在和他人交往的过程中,我也在一直坚持着一种信念——那就是我可以继续成为我自己,而不需要太多的关注,因为所谓的关注最终也只会成为他人茶余饭后的谈资,这并不能实质性地有助于我。这就是自命不凡的我,在平凡和不凡之间做出的折衷。
那么,作为一名“平凡的不凡”,接下来我将讲述大二这一年我是如何在一件件平凡事当中想要展现出我的不凡的。这既是记录,也是处理过往事件留下来的情感,更是为了更好地向前。
2023年暑假——与复读毕业后的同学们聚餐
早已有所预料的是,我所认识的,选择复读的同学,高考都有了理想的成绩。事实上,这的确更加重了我心中的遗憾。不过,我并没有让这种情绪在我心中驻留太久,因为当见到这些打打闹闹相处了两年半的同学们,又重新聚在一张餐桌前的时候,我是开心的。
值得另外一说的是,每当我认为自己思念他们的时候,我都会在想:他们是否想念我呢?答案一般都是否定,而这种否定,不仅是对问题的否定,也是对条件的否定——因为大家各奔东西,互相之间有着深厚情感的本就不多,不至于难舍难离。饭毕闲聊之后,又会回到往日的正常生活,不会有太大变化,自然,就没有什么想念。我当然也不会例外,除了零星的几个至今仍来往密切的老同学,其他的老同学,我获取他们讯息的渠道只有他们的朋友圈。
我也早就明白了这个事实,但我仍然想在会聚的这一刻,制造些属于大家的快乐。于是,我在朋友面前,跳起了《新宝岛》,是的,就是猛男舞团那一版的抽象舞蹈。收到的反响还想强烈,但仍未达到预期,我也接受了,因为此前当我在班上制造快乐的时候,也经常遭遇尴尬的局面。
聚餐的过程中,也绝对没有自己所想的那么热闹。虽说来了十几号人聚在一张圆形转桌旁,但是都只会在各自的小团体里聊天。这很正常,原因我也说过了,虽有两年半的交情,但彼此之间并不都是情感深厚。跳了一支“热舞”的我,也自然不是聚餐讨论的中心。大家更加在意的是,主办本次聚餐的大Y——暑假期间,他跑外卖挣到了2w块钱,现在正在畅快地吃酒喝肉,我其实是羡慕的。
饭毕,闲聊片刻,就各自散了。要说这次聚餐我收获到了什么,其实更多只是和老同学打个照面,没有电视剧上演的激情热烈,也没有朋友圈各种照片上展现的那么情谊深厚。
寂寞再次袭来,但是我逐渐意识到,这样才是真实的,大家都没有错,待到世事变迁的多年后,我们或许才会再次重聚,一起举杯邀明月。
2023年8至大约12月——发夹
从小学开始,我就很想留长发,只是因为电视上看长发的男性都很帅。然而,无论我怎么留发/梳理,都只能拥有一个刘海的头发结构,而且直至大学我也未曾烫卷,造成的结果是:头发不能均匀且弯翘地铺在前额,也不能连带所有的头发都均匀地向后梳理,而只能耷拉在一侧的脸和额头上,只要稍稍一长,就会遮住一边的眼睛,既不舒适,也不美观。
然而,又不舍得剪掉,也不想随波逐流去烫发,于是突发奇想,用发夹固定住了刘海,保住了长发,也清理了视野。不过,这当然是一种别人看来相当怪异的打扮。不过,我自己觉得很特别,就一直留,直到我的发夹丢了。
等到我2024年7月再去理发的时候,师傅告诉我,不想让头发随意耷拉,想让它定型、变得蓬松的话,其实只要用吹风机吹吹头发就好了——此时的我简直醍醐灌顶,回家试了几天才知道真的是这样。从这时起我便不再需要发夹了。
长头发不时还是会让眼睛痒,但仍然不想像许多本行的IT工作者一样,缩减自己的发量,于是换上了头巾,它比发夹还要好用。
2023年12月——奶奶去世了
奶奶去世之前,父亲有一直给我发有关奶奶状态的信息,前面一段时间还好,但后面几天,我连续收到奶奶每况愈下的说辞。远在北方的我不可能立马就赶到,学校这边也有项目在身,于是我跟父亲说:“要我来的话,我马上就赶过去”。
然而,奶奶去世是在凌晨时刻。这时的我仍在酣睡,昨晚甚至还在打游戏,而母亲和姐姐在凌晨已经给我打了好几个微信电话了。也就是说,我并没有如我所说的那样,“马上”赶过去。
醒来得知噩耗,简单洗漱和整理行李,匆忙和室友交代了下,学校门口喊了辆出租车,就赶往高铁站了。
时间比较紧迫,所处的北方城市还没有机场,我没有买便宜的普高中转票,而是买了将近800块钱的复兴号直达高铁票。
大概是晚上六点,我终于到了父亲所说的地方,母亲应该是刚哭过,红着眼看到我之后便迎了上来。我问父亲在哪里,她指向一个都是用铁板搭建起来的类似于工厂房的地方,似乎并没有建起来多久。周旁的房屋全都呈现一副拆迁的模样,脚下的泥路也全是垃圾,父亲以前就常跟我说,这里要搞建设。
面见父亲,他正在和三叔四伯们聊着天,状态似乎还不错。此后为奶奶守丧、抬棺还有最后的火化路上,父亲的情绪似乎一直都很稳定,只是在为奶奶唱歌和给奶奶盖棺的时候,掉着一滴滴的泪。
那么,这时的我,应该哭吗?说句心里话,在得知奶奶的死讯开始,我总感觉我心中那一股悲伤的情绪夹带着刻意——是因为至亲的人离去了,我应当这样做。这不完全是发自内心的哀伤。我曾经读到过一篇文章,有说到过这样一个现象,说要么是因为伤害过于大了来不及接受现实,要么是伴随后世长期的阵痛。但我无论怎么去推理,我都无法将自己这一种带有明显刻意的哀伤归类。
我为自己对亲人甚至没有一份纯粹的感情这件事感到羞耻,因而不曾向父亲母亲还有姐姐透露,也因此在该展现哀伤的场合无论有多不纯粹,我都至少要有一份痛苦的模样,挤都应该挤出一滴泪来——但是这样,只会让我觉得自己虚伪。
这难道也是一种“不凡”吗?那未免也太地狱笑话了。父亲母亲展现出的担忧、遗憾和悲痛都是自然而然的,姐姐留下来的泪水也绝不是挤出来的,七姑八姨、三叔四伯们连夜在奶奶身边守灵,还不时跟奶奶说说话也都是几十年来情感深厚的反映。而只有我的酸楚,一部分只是为了所谓“应该这样做”的自我惩戒。
也许,大概是我和奶奶相处时间还不足够长,也可能,儿时奶奶照顾我的记忆我全都丧失了,也有可能,是自小学开始就开始封闭自我所导致的。无论如何,我都亏欠奶奶两份,一份是我没有考上一所理想的院校光宗耀祖,一份是我对奶奶没有一份纯粹的爱,未来的日子,我需要努力去弥补。
此次奔丧之行,还让我知道了家族内部中暗藏着许多问题,我这才知道,奶奶的存在,其实是有着维系整个家族勉强持续下去的重大作用的。
2023年12月-2024年1月——第一个团体大项目LinkingMall
这次项目其实是来自于本学期两门课程的联合答辩,JSP和数据库原理与技术,前者已经是相当落后的技术,后者则涵盖有较多的实用价值。联合答辩的项目就是要做一个Web项目,当然,没有要求单体还是分离、本地还是远程。这时候的我还没有完全熟悉前后端分离,服务器也不熟悉,队友也对此完全没有经验,于是就选择了本地单体类型的,做一个线上购物商城LinkingMall.
技术细节就不在这里细说了,除了Git以外,我们再没有用到什么流行技术,前端是一部分从网络copy来的三大件代码,后端则是屎山Java。整个项目值得记录的,其实是我们作为一个团队协同工作的过程。
首先,团队当中有四个人,两男两女,我先做的就是分工,男生负责后端业务实现,女生负责前端页面设计。这时我们甚至没有学会使用API进行前后端联调,但是在分工阶段我仍然在代码上设计了对外的接口(当然,没有了API,只能是方法调用)。这样也算是做一个前后端分离,然而其他人似乎并没有做这样的分离,而是全功能的模块化(A同学实现登录模块的前端设计和后端CURD,B同学实现管理员模块的前端设计和后端CURD……)——后来的事实证明,我们最初选择前后端分离,是相当明智的决定。
接着,我们全员都需要参与到需求分析和数据库设计中去。一部分原因是课程的答辩要求有这一部分,一部分原因是我自己想要这么做而不是一上来就闷头敲代码——这是我在学软件工程时知道的,代码实现的比重很多时候只占项目的25%,在这之前我们要花大量时间在市场调研、需求分析和接口设计上。这一部分,不要求团队成员掌握什么技术,这只是概念上理论上的东西,上课的时候全都讲过了,按照书本上的流程和案例来就可以。因此,我们完成地也比较顺利,比较主要的原因是,我们经常聚在一起交流。
后来,就是兵分两路,同步进行前端和后端的代码实现了。同样,写代码也有老师的示例做参照,一路上没有遇到什么阻碍,真正难到我的,是最后的代码合并。其实有关本项目的不足之处,我想了还是很久的,团队其他三人都有很好完成我交给他们的任务,但终究是我最初设计得太过复杂,导致数据库有过多冗余的表,后端业务上有比较多冗杂混乱的代码。正常的小型单体项目,即便只是方法调用式的前后端分离,合并起来也不会有很多毛病。但是我们的项目,就是因为我想要的太多(还是完美主义了),导致工期延长、代码合并困难重重,甚至就要不能通过第一次答辩了。
是什么最终使得我们一次就通过答辩了呢?是我的汇报发言、较为美观的PPT和前端页面——老师看到这样“精彩”的展示,就认为我们水平很高,再加上时间原因,已经不需要接着演示了,后端业务就这样被略过了。这让我想起来电影《年会不能停》当中的一句话:“工作是咱们做的,但人家比咱们会汇报,那功劳就是人家的。”
是啊,面对一众不懂技术的评委/老师,做好汇报,真的就算成功了一半了。。。
但是,最后我们仍然需要提交答辩报告和完整的源代码,经过老师的鉴定,我们的作品被认为是最好的。总的说来,我还是一个不愿意落入俗套和懒惰的人,即便这是一个漏洞百出+使用技术落后的小项目,我还是想尽可能让它有点不一样,所以我才在一开始选择前后分离、Git版本控制并为项目添加更多功能,这给我的成长还是带来了很多帮助。
最后,我仍然要感谢团队当中的每个人。在2024年8月,我开始使用主流技术重构这个项目。
2024年2月——再遇K老师
K老师是从高一开始就一直教我语文的一位年轻女老师,身材瘦小,毕业于陕西师范大学。
说起陪伴,在我整个高中三年,K老师是唯一一位见证了我的成长的老师,因此,我对她的感情尤为的深厚,在我至今的大学时光里,我仍然时常怀念她,因为她不光教会我文学知识,也一直在积极地引导我走向善。如果没有她,长期压抑在心中的悲伤和愤怒最终一定会让我走向偏执的黑路。
K老师高一教我的时候,也只是一位新老师,在一众老师当中,很容易看出来是个“新生”。所以作为一名学生,我也见证了她教学水平的进步,在高三一年,尽管语文成绩仍然一般,但仍然喜欢听老师普及知识,讲中国故事。
几乎每个长假,我都会来看K老师。K老师时间也总是比较宽裕,我总是可以约到她。她很温柔,因为文学底蕴和教学经验的累积,她想说的话真的有很多。我也是个喜欢讨论的人,所以在2月的时候,我与K老师一边漫步在学校,一边讨论着现代的语文教育,持续了有一个半小时。离别的时候,我有点舍不得她。
K老师面貌算不上美,面色也没有同龄年轻老师那样的白嫩,声音也算不上甜美,混杂着一股沙哑,大概是学生时期的条件艰苦导致的。不过,K老师真的是心善的,真正为学生考虑的,而且一直专注在教学事业,偶尔会出去玩、游泳。对于情感上的另一半,她似乎还没有考虑,因此她现在27+岁了,还没有伴侣。
我十分感谢她、爱戴她,尽管在高中时期,我与她也产生过矛盾。我不能说她多了解我,但是她总是有时间和我说话,假期的时候K老师也可以约到她一起出去玩,要知道,虽然我有很多朋友,但是真正到了假期,可以陪我的人却几乎没有。
K老师除教学以外一直没有太大的变化,在2月的交谈中,她仍然如最开始我认识的那样,纯洁在于心灵,纯粹在于教学,见到我的时候,还是笑脸相迎。我对K老师是怀着一份个人的情愫的,但是,考虑到我和她两个人的前途,以及多方面因素的斟酌,在目前和持久的将来,我都要把这样的情感掩藏,目前的样子已经是我想要的了。
在以后的日子里,我会经常思念她。
2024年3月——体会完整的项目工程
在上一次团队项目LinkingMall中,我已经谈到,其中的所应用的技术是相当落后,在代码规范上也欠佳,有相当多的地方需要去改进。然而,具体的改进措施是什么,涉及的技术具体有哪些,一般的业务逻辑又应该是什么样子的,我却不明白,也就不知道从何做起。
因此,我也不需要遮掩什么,带领我走完一遍较为完整的、后端方向的一般Web项目(SSM)流程的,就是某互联网培训机构的免费公开视频课。代码是跟着一行行敲的,文档也是看教程一点点写的,这时的我在主流技术方面就是什么也不会,因此就只能是抄——但即便是抄,我也学会了很多,虽然只是皮毛,但至少我疏通了整个一般项目的基本流程。
教程中后期,其实我已经熟练了CRUD,业务逻辑也彼此雷同,进度也就疯狂地往前推进了,一个月就写完了所有后端部分,前端部分(Vue)也只花了几天就熟悉了
这件事,在本篇文章中描写得似乎没那么重要,但其实在我的技术学习道路上,标志着我的代码功夫和编程思想开始工程化、一般化。
2024年4月至6月——算法竞赛初得正果
有关算法竞赛的感想,在我之前的一篇手记里已经有写了,这里便不重复说了。这件事的标志性意义就是,成果的取得激励着我继续学习算法。新大一这边结识了一位初中开始就接触算法的OIer,我还是比较开心的,打算拉上她和另外一个同志一同再进行一年的算法之旅。
由于之前我自身所处的圈子,包括几位学长在内的许多人都不很重视算法,一是性价比低,花大量时间练习可能仍然进步缓慢;二是没有应用类技术那样具备即刻的实用性,很难让一般人有成就感/获得感。自己学习算法的这两年,也并非没有中断的时候。但随着见识的多了,我的两位老师也不断强调算法作为一类基础知识的重要性,我已经能够更加深刻体会到”应用类技术背后依托的都是基础知识”这一看似简单的事实。
我的老师说,算法是硬实力之一,算法有助于考研。
在北京的一位大哥说,算法也是有助于面试的,而应用类的那些技术,只需要几个月就能快速上手。
平凡中的不凡,不幸中的庆幸,我真的要感谢最初的自己没有放弃学习算法,不然不会有这三个月取得的成就,更不会有我对基础知识的重视。如今的我仍然在算法的道路上,经常会有同志来问我,算法应该怎么学,可不可以带一带我——在一一回答的同时,回想起最初那个孤零零在图书馆用C写算法的男孩,真的会有一种奇妙的感觉。
2024年7月——出租生活的开始&回到计算机基础
之所以打算在暑期在学校外面租房子住,有两个原因:
其一,家中的环境总是不能让我全身心投入学习,心中的惰性让我的潜意识里有一百个理由偷懒。在家乡的城市里,虽然有图书馆这一类看似非常好的自习环境,但是离家近的一家书屋空间小,居民素质参差不齐,也少有专人去站岗管理,还有的时候会将本来就有限的空间拿来做活动——并不适合长时间专注的学习。离家较远的一家是省图书馆,无论是硬件设备、人员服务质量、书籍丰富和完备程度、管理制度以及学习氛围都是顶级的,但对于我来说缺点就是距离远(1个小时的车程)、中饭需要另外对付以及闭馆时间早。
其二,作为一个21岁的成年人,我想真切地体会下生活究竟是什么样子的,而不再有父母的庇护。
然而,我们是合租,房租水电会各自摊一些,各自也被安排了许多杂务,父母仍然会汇来生活费,出租屋里的事务六成也是学长在做,因此事实上,我的出租生活其实算不得真实,并没有像父母最初带我和姐姐在湖南租房生活那样的艰辛和复杂。我在出租屋内,每天的日常就是学习、打扫、买菜做饭、照顾猫猫以及一些杂务,这些都算不上担起一个家庭的责任。
在家乡的时候,我常常因为不会做饭感到羞耻和自责,于是在出租生活中,我开始努力改变这一点。出租屋的厨房器具相当齐全。起初是两位学长手把手教我的,到后来的一个月就只有我一个人独立上手。抛开一切理想主义和爽文逻辑,这两个月我的厨艺其实也只是一般家常菜水平,算不得特别好吃,但至少能够满足自己了——至少标志着,我又向着独立生活往前迈了一步。
而且我渐渐发现,做饭是一件很治愈的事情,这件事做完之后真的能够让我放松下来。当我做出了一道色香味俱全的菜肴后,还会额外获得一份成就感。
7月的这时候,我还较为频繁地在各网络平台上投递简历,争取着能够有一份实习,这期间简历也是有不断改进的(目前已经是第五版了)。但结果就是石沉大海。从以前我就在想,平日周边的人对你夸耀与肯定,其实根本不具备什么参考价值,因为当面临真正的竞争和残酷的筛选机制时,结果总是会不如愿,而且有关自己所有的问题都会暴露出来。
我把实习的想法告诉给了大哥,鉴于我仍然是大学二年级,他建议我不要着急,打好基本功,在交谈中,我的焦虑也得到了缓解。
2024年8月——Datawhale大模型应用开发训练营为队友打杂
显而易见的是,在如今人工智能技术飞速发展、造价成本越来越低廉的趋势下,AI最终也一定会像计算机一样得到普及。在学习计算机基础知识和少许开发技术的同时,我认为自己还理当学习一些比较前沿的技术知识,帮助自己更高效率地学习和工作,也能让我在即将到来的AI时代有一个比较好的过渡。
这个线上的训练营是我在一个微信群经人介绍来的。Datawhale这个组织我简单了解了下,是一个免费向公众提供AIGC理论与应用知识的开源组织,在github上有非常多的学习资料开源,而在官网还提供了免费的培训。对于想要学习AI的每一个,官网还设计了一条学习路线和对应的配套课程。可以说,在中国,这真的是推动AI技术向公众普及的一项伟大的壮举。
需要声明,我并没有接收来自Datawhale的任何广告推荐请求。
然而,在本届训练营当中,我是作为一个纯小白来的。很多相关技术方面的,我只能自主学习或者咨询队伍当中的一位技术大牛,只有当后端部分,可以参与些许的讨论,更多的是学习。在项目的中后期,我简单学习了数据过滤,这就是个打杂的活儿——主要使用了python的bs4等文本解析库,以及各大模型的API。然而尽管是打杂,我也没有做好,过滤出的数据仍然不干净(体现在格式不规范,数据噪音多),这就又给我留下了一个优化的任务。
整个项目流程,碰到了过往学过的知识,也遭遇了比较陌生的技术,以及完全没有了解过的概念,积累下来的知识点还是比较多的,我会在之后单独写一篇文章进行整理和总结。
不光是技术,我又进一步地提升团队协作的能力,在这里需要感激自己的队友:担任队长的司沫、承担主要技术工作和知识顾问的筱可,以及负责文书工作的马姐。他们都是十分具有耐心与毅力的,十分优秀的人,都值得我去学习,如果有可能的话,在以后的日子,我也希望与他们保持一定的交流。
关于团队协作的心得,在我之前的手记里也专门有写过,这里也不多赘述。
2024年8月末——两只小猫、归乡和尾声
学长在出租屋里养了两只小猫,一只橘猫,和一只白猫。说是小猫,其实只是年纪小,才一岁左右,但体型可不小,特别是白猫,其实是偏胖的。
我不喜欢猫,但也不讨厌猫,只是为了完成在出租屋被交代的任务,才去照顾它俩的。起初,我对两只猫并没有多余的情感,它们总是板着猫,一副不屑的表情——尽管我知道,那就是猫生来的面部构造。猫比起其他宠物,是颇具个性的,不会一直都粘着人,只是在想要被抚摸或者求食的时候会主动接近人类,其他时候,会在屋子里各处探一探,或者干脆睡觉。
两只猫有两件事都是让我很恼火。一是活泼的橘猫在笼子里十分不安生,二是两只猫玩耍的时候动静很大,时常会碰坏屋里的物品,打扰到我的学习。出于这两个动机,无论它们制造的麻烦事实上是大是小,我都教训过——我要承认,主要是我的心态不够好,心境也不稳定,因为猫本就是这样一种生物。
有三次是教训得过于凶了的,等自己冷静下来,发现自己还是做得过火了。这时候,我会给它们开罐头吃,白猫傻傻的,吃完之后休息一会儿,麻烦就和平常一样了,橘猫心里有自己的想法,会在一旁郁闷很久。日子久了,我渐渐克制自己诸多过激的情绪,两只猫也都比起之前,变乖了许多,比起它俩开始喜欢我这种想法,我更加认为它俩其实更加害怕我,因为这里有待它俩更温柔、也更加了解它们的人。
白猫可能比较喜欢我,因为它总是喜欢来到我褪下来请求抚摸。午睡的时候,看似在睡觉的它马上就立刻察觉到我在沙发上,小跑过来,蹦到沙发上,靠在我腿边,继续睡。最贪吃的就属白猫,当我要给它们添猫粮的时候,会极速地飞奔过来,吃的多,于是就比较胖。
橘猫个性鲜明一些,虽然有时会扒在椅子上,用爪子拍拍我让我摸一摸他,但不会像白猫那样撒娇,持续不了一会儿就会离开。多数时间,除了睡觉橘猫还会若有所思地望向窗外,长时间地持续很久。在屋内,引起骚乱的也主要是橘猫,所以我教训它会比较多一些。
慢慢地,出租生活就要接近尾声了,我愈发觉得这两只猫其实也挺可爱的,心里舍不得了——但事实是,我对它俩不好,至少比不得学长对它们好。也是出于歉疚吧,最后几天,我给它们的饭盆里,多添了几勺,也几乎不怎么想着学习,花了更多时间陪它们玩。
终于到了离别的那一天,两只小猫还是被学长带走了。我也收拾行李,下一天也离开了出租屋,结束自己近两个月的出租生活,回南昌面见几天父母。
归乡之后,应该是自己的性格变得更加自信和开放了,南昌话也说得比较好了,回来和父母亲戚都聊得很开心,关于以前的误会和遗憾,在餐桌上交谈中也一点点消散了。
我又去看了K老师,她仍然是那副朴素的模样,但在漫步聊天中,我能感受到她的语言能力又加强了——清楚的逻辑链条,说服力强的左右引证。她的心态也变得更加平和了,我又在她那里寻找到了心中许多问题的答案。
30日晚,我便又要踏上返校的高铁,告别了父母,也告别了过去的一年。我的过去有太多坑坑洼洼,不过现在看来,那都不过是人生常态,保持年轻保持热情的最好方式,就是一直向前看。