一个前端菜鸡的 2023 年终总结

哀吾生之须臾,羡长江之无穷。

工作之后愈发感觉到时间飞逝。一眨眼,一个月过去,再一眨眼,一年过去了;再想想,毕业到如今,五年也过去了。

有个朋友曾和我提起过,他每天会用尽可能精简的一句话记录他当天主要的经历;他说:工作之后日复一日,年复一年,常常不知道怎么的,日子就过去了;所以记录一下每天发生的事情,以免一年下来,连自己做过什么经历过什么都不知道。

听完他这番话,我深以为然;也许是生活节奏快,身体和精神都疲于奔命,常常觉得日子流逝没有留下痕迹,却真真切切地过去了。而我也打算参照他的做法,试着记录日子的痕迹,但这便是后话了。

虽然过去的 2023 没有认真记录每天的生活,但还是能回忆出来个大概的所作所为、所感所想;本着 "回首过去,展望未来" 的美好祝愿,遂写下该文,总结一下过去的一年的得失,也作为下一年的镜子,警示一下自己,作 "杀去年的自己,儆明年的自己" 之用。

学习

今年的第一个关键词是"学习"。

作为一个毕业五年多的人,由于年少无知,放浪形骸,毕业前三年沉溺与酒色玩乐之间;导致啥都不会,甚至不能算是一个合格的页面仔;当后面醒悟过来,发现同时期的人大都成为大佬,进大厂,出海,财富自由,或者拿着不错的薪酬躺平享受生活了,才懊悔不已。

既然事已至此,只能是笨鸟多飞了。

所以这两年尤其今年,主要的精力放在了学习上面,能追一尺是一尺,能进一寸是一寸。

技术

Mini-Vue

技术方面今年初主要在深入学习 vue,主要是跟随 @阿崔cxr 大佬的 mini-vue 去深入学习 vue 的原理,常见的函数实现,以及其内部设计的一些思想。

俗话说:知其然,知其所以然;由于自己工作中主要是 vue 技术栈,所以觉得还是很有必要去了解它的内部运行与构造,这样才能让这个工具更加称手嘛,通过 mini-vue 这个项目,我这个菜鸡也能浅读一把 vue 的源码,甚至促使我去重温了设计模式、算法的相关知识,所以这部分算是今年的学习主要部分,也是收获最丰的一部分。

TDD

最初接触单元测试是在之前水过的一些开源项目中,给别人项目 PR 时发现 CI 一片红,连代码都提交不了,发现原来是单测没有过;其后开始照葫芦画瓢给自己的新功能加点单元测试;当然,这个阶段依旧是知其然的阶段。

其后在前面提到的 Mini-Vue 项目过程中,更加地感受到了测试的神奇之处,接触到一个新的领域 :TDD (Test-Driven Development) 测试驱动开发。

再后来就跟着 @阿崔cxr 大佬深入去了解测试方面的知识了。

当然,目前还在学习和探索 TDD 的项目应用,毕竟现在的公司并不重视这一块;但是从把控项目代码质量的角度来看,一个好的、科学的代码测试方法是最能把项目圆桶效应中的短板拔高的,比写代码行为本身更甚。

目前,@阿崔cxr 大佬的 Mini-VueTDD 都有开设对应的课程,除了能学习源码和测试知识,还能结识到不少大佬以及一群不搞瑟瑟只 tm 享受学习的切图仔(甚至切图妹),学习群里学习气氛浓厚,接下来还有不少大动作,有兴趣的可以领我偷偷要来的 优惠券 ,一定物超所值。

具体课程了解可以查看一下 Vue 源码详情测试课主页详情

SolidJS

年初一个偶然的机会接触到 SolidJS ,本着试试就逝逝的想法,用来搭建了几个小项目;很快啊,便爱上了它的简洁和理念。

虽然它最大的特点是无虚拟 Dom;但是我的项目过于小,并没有体会到这方面带来的性能提升;但是,它用起来爽啊!既 Hook,又 Sinal,可以说是真正站在了前者的肩膀上了,拿来写点小项目杠杠香。

所以 React + Vue = SolidJS ?

既是,又不是。

是的部分,是它融合了 ReactVue 的一些目前被人所称赞的特性;不是又因为它在渲染、编译方面另辟蹊径,走出了自己的路子;而且据说 SolidJS 还启发了尤大对于 Vue 的未来的设计。无论是无虚拟 Dom,还是其提前编译的策略,都是前端框架的一些新的尝试和思想碰撞。

Typescript

叠个甲,Typescript or not 并不重要,视乎项目的情况、维护人员以及开发流程、开发成本等;而鉴于我目前的维护的屎山 项目,以及我参与的一些开源项目,我是感谢有 Typescript 的,全靠它来降低我维护项目的心智负担(虽然写类型体操时会带来额外的心智负担,但与没有它而带来的相比,不值一提)。

说来我的 Typescript 学习也是比较野路子:先是因为公司项目中用了 Typescript,然后我就随便过了一下它的文档,刚好前年偶然发现了 @Anthony Fu 大佬的 type-challenges 这个库,就刷起来了。这个库包含了各种 Typescript 的奇技淫巧,可以说是把有点残废的 Typescript 玩出了花来。刷的过程中不懂就看别人的答案,把中级题刷得差不多了,基本上项目中的使用、各种工具、函数的封装都没有遇到什么问题了。

上半年因为项目中遇到一个有趣的类型体操,就给 type-challenges 提了个新题目 PR,而下半年有个基于 type-challenges 的开源项目 typehero 在 12 月上线了,里面开展了相关打卡活动,还提供了一个很不错的 Playground 来做挑战,刚好我也打算对自己 Typescript 知识作个查漏补缺,就又刷了起来,结果又给我涨了不少姿势。

附上我的 typehero profile;目前还在以平均每天一题的速度在刷,估计把中级刷完后一周只能刷一两题了,困难难度和变态难度太难了。

Typehero 12 月打卡活动的最后三道题:用 Typescript 做数独、四子棋、走迷宫的逻辑判定😂。

英语

在这两年的笨鸟多飞的过程中,常常流连于各种开源项目的 issue 、stack-overflow、大佬 blog中,越来越感觉到英语的重要性:除了能够快速地找到一些问题的解决方法,还可以及时了解一些技术新动态,或者减少看二三四五手翻译资料、文档带来的错漏知识。

而我自己的英语水平可以说在高考完后就开始直线下降,在大二的时候靠着点高中底子勉强过了个四级,后面一直到现在,可以说是连初中生都不如了。

好在还有点语感在,当前最大的问题是词汇量,所以选择了背单词。从 22 年下半年开始,开了个 Linvist App 的会员开始每天背单词,以及买了一些语法书重温了一下语法。从 22 年 9 月一直到 23年 4月,每天大概背 30个单词,每天一小时左右(上下班的通勤时间),效果还是比较明显的,看英文的文本内容基本能看懂了,普通的 issue 能自己写英语描述清楚了。

Linvist 背词记录:

今年下半年开始停止背单词,感觉投入收益比开始降低,就测试了自己的蓝思值,找了本适合我当前水平的英文小说(我选的是老人与海)磕磕碰碰地看了起来,效果奇好。但是由于后面时间的问题,并没有再看其他的英文原著,计划在 2024 年开启一个读英文原著的打卡计划,有兴趣的可以加我 vx,添加好友请备注 "英文原著" ,后续我会计划一下打卡活动,拉个群互相督促,以及分享蓝思测验的方式,纯纯打卡群,没有任何消费项目,vx 号留意文末。

蓝思测验结果:

其他

键盘侠

今年是更加 "键盘侠" 的一年,去年因为讨厌写代码的过程中要移动手部操作鼠标初识 Vim,然后开始构建自己的 All in keyboard 工作流,使用 Alfred、Raycast、Moon、Karabiner-Element 等软件减少双手不在键盘的时间,键盘也从 Apple Magic Keyboard 换成了 HHKB 配列、60% 配列、再如今的 Alice 配列,现在算是暂时停止折腾了。

对于我来说,减少了双手离开键盘的次数让我做事的思绪更连贯了,而目前我的 80% 使用电脑的时间,都可以不用鼠标。当然,All in keyboard 只是一个我自己的使用哲学:在适合的时候使用鼠标和键盘。

而也由于当 "键盘侠",自己也捣鼓了不少小工具,如 Alfred 的 Workflow,以及参与了一些相关的开源项目如 Raycast、Karabiner-Elements,在学习 Vim 的过程产出的笔记 Just-Vim-It 还收获了些 Stars,可以说在折腾的道路上找到了一些个人乐趣。

当然,也导致我入了客制化键盘的坑...

第一把客制化,HHKB 配列的键盘,叫 HTKB:

目前主力 Alice 配列,公司一把,家里一把:

ing...

目前在学习的主要是 ReactJS NestJS 以及 TDD,因为 24 年已经开始有新的学习方向:Web3;也全靠几个好哥们带着了解、开分享会之类的,才能真正迈开步子了解和学习相关方面的知识。

项目

主要汇总今年学习以及 "Yak Shaving" 过程中的产出(关于 Yak Shaving 可以看看 @Anthony Fu 大佬的这篇博客: 关于 Yak Shaving ,挺有意思)。

个人项目

  • bilive :一个命令行弹幕姬;在新冠中招居家期间,由于尝试直播又没有找到适合的 MacOS 弹幕姬,便有了这个项目;说起来,命令行应用跨系统能力真的强。
  • vitesse-lite-solidSolidJS 项目模板。
  • solidida:基于 SolidJS 仿写滴答清单的应用,主要为了探索 TTD 和学习 SolidJS
  • Alfred workflows
  • little-dear :小可爱记账,一个基于 Next.js + Prisma + tRPC + t3-stack 的记账项目。
  • nauxscript.me:个人博客,基于 AstroJS
  • Just-Vim-ItVim 学习笔记。
  • naux-vue:一个简单的 Vue3 实现。
  • vue-demi-starter-templateVue-demi 起步模板。

正在进行中

  • solid-sokoban :基于 SolidJS 实现推箱子游戏,主要为了探索 TTD
  • chrome-dino-vue3 :基于 VueJS 实现谷歌恐龙游戏,主要为了探索 TTD
  • linux-niubi:Linux 学习笔记(刚挖的新坑。

中道崩殂

写了些但没写下去的项目,把它们钉在耻辱柱上面吧!来年一定!

  • demo-of-js-design-pattern: 一些实际项目功能中的设计模式思考,原意是通过强制使用某些设计模式,来解决一个真实项目中遇到的问题,以达到深入了解和思考设计模式的目的。
  • unuseless-ui 并非无用的 UI 组件库,原来想写一些奇奇怪怪的组件,但是没有找好方向,搁置了。
  • source-code-reading:源码阅读记录,尽快开展起来。
  • alfred-gpt-jarvis:在 Alfred 中使用 gpt获取指定英文单词的定义和例句等英文字典数据(其实正如其名,jarvis,一开始只是在尝试在 Aflred 中接入 GPT)。

生活

直播

23 年新年伊始时,社会迎来新的面貌;个人也在放开后立马中招,连烧五天,对于一个快 10 年没有发烧过的人来说,真是非常折磨和痛苦;而我对象作为白衣天使,在我中招后,为了能正常上班(那时候医院就诊高峰),立刻 "谨遵医嘱" 搬去酒店住了,剩我和两只猫在家自我隔离。

也因为居家隔离闲着无聊,尝试了直播写代码;直播期间写了 bilivealfred-wechat-stickers 虽然直播没有什么人看,但是还挺有意思;新的一年应该会继续尝试直播写代码以及结对编程。

运动

前两年由于自己的一些原因,身体出现比较大的问题,开始戒了烟酒,早睡早起;23 年初体检,体脂 23,内脏脂肪偏多,而随着状态慢慢恢复了些,确实是要开始进行一些运动了。

买了私教课,每周进行对应的综合训练;5月初开始骑车下班(也是这个时候点前后开始不背单词,因为骑车背不了),路上有一定的爬坡,一程下来大概 30 分钟,8 km左右。综合训练和骑车有氧的效果是立竿见影的,到7月的时候,体脂大概在19左右了,而且平时的精神好了不少,睡眠也好了。

但是同时也发现一个问题,由于骑行回家是在广州的一条比较繁忙主干道,尾气着实大,刚好还是夏天,灰尘各方面都比较严重,到 9 月开始尝试寻找其他的替代有氧训练(其实现在想起来还是骑车上下班最好,因为通勤时间是必然支出,如果骑行条件适合,既节省了通勤费用,又增加了每日的运动时间)。

10 月开始在家使用动感单车骑行,除了身体原因或者时间原因,基本每天都骑,大概是每天 13 KM,心率维持在 120 - 130 之间。今年下来精神、睡眠、体能、心肺都好了不少,去川渝玩四天每天 2、3w 步也能扛下来了😂。

志愿者活动

今年年中,了解到广州动物园的一项新的志愿者活动 ------------ 开荒队,在组建队伍,一时头脑发热就和对象报名了;主要的工作内容是挖地,开垦农田,种植物,建立小生态区等。

而我主要是奔着种水稻去的:我的爷辈是面朝黄土背朝天的农民,而我从小在农村长大,小学的时候还帮忙在春耕秋收,我一直很怀念赤脚在土地干农活的感觉。虽然因为种种原因,我们的水稻不太成功,但是在开垦的过程中,确实让我找到了离开电脑桌,回归大自然的奇妙感觉,而且干活时,抬头就能看到各种小动物在悠然自得生活,我好像也变成了他们的一员。

广州有兴趣的朋友也可以来一起参加,尤其是男生,非常缺男性劳动力😅(女性劳动力人数够了。

看房

这是今年上半年占据了我(和对象)最多精力的事情。由于家人的催促和我们自己的考量,从过完年开始,每周都在看房子,每周看四五套;我们看的房都是广州海珠的老破小,刚需上车。由于年初的时候楼市不明朗,刚好又刚放开,看房的人比较多;而放盘的业主觉得楼市好像要回暖了,导致部分楼价不降反升。

最戏剧的事情就发生在愚人节当天,我们在那前几天看中了一套房,就约了业主准备签字了,结果同一家中介的另外一个看房的也看中了,偷偷约了业主在我们的前一晚签,但是按照签约规则,业主是要先和我们谈,交易不成功了,他才可以和别人谈,相当于业主和别人绕开我们偷偷签约;我们在他们准备签名前就冲去中介的签约中心,反正最后场面闹得挺难看(主要是他们难看),最终我们我们选择放弃,让他们签了;其实按理说,如果没有这一出,无论卖给谁,那个房子低个 10w 卖是问题不大的;但是由于有多人相中,反而就少不了了。结合后半年广州的楼市,我甚至庆幸当时不是我买了那套房。不知道当时接手的那家人现在的心情又是如何呢?

这件事情之后,我们看房的步伐就慢了下来,而且由于其他时间比较多,看房也少了;后半年各种政策出来后,我们也更加佛系了。不过今年应该是要确定下来了,希望 24 年能买到心仪的小蜗居吧。

关于2024

2024 对于我来说,应该是举足轻重的一年。

一来是工作的年限到了一个重要时间点,虽然菜鸡,但也是工作五年的菜鸡了(技术甚至不如练习时长两年半的后生)。除了要学习技术,也要开始思考接下来的三年甚至五年的大方向。我自己本身是 WLB 主义者,而众所周知,在这里,要达到大佬眼中 WLB,很难(钱多事少离家近)。但是幸好我是宁愿钱少也要 balance 的那种人;在选择钱和生活之间,我肯定选择生活,毕竟我的生活宗旨是:生活不是只有赚钱,生活要像海里的鱼。

但是不是只有赚钱不是不赚钱,钱是大部分生活的基础;新的一年可能会探索一些新的机遇,如 Web3,以及搞点副业;毕竟躺着能进账的钱,才是赚的钱。如子华神所言:我每日翻工嗰份唔係粮,係补偿(我每天上班拿的不是工资,是补偿)。增加睡后收入,是我新一年的方向。

二来 24 年准备结婚了,两个人,两家人,三个家庭,都会有所新的规划。普通老百姓,不过是为了一日三餐,粗茶淡饭罢了。说白了经济上也要规划起来,该记账,该改改大手大脚花钱的毛病;父母老人多陪陪,朋友们多聚聚,让生活回归生活。

技术方面还是那样,在 "Yak Shaving" 过程中拓展知识的广度,平时专注在知识的深度。今年会着重在偏后端方面的学习,如 NestJS 、数据库、docker 等,以及前端的工程化、部署、CICD 等;

我的目标很简单:日有所长。这就是我的学习的哲学。每天只要比昨天学到了新的东西,对于我来说就足够了。甚至不一定是编程相关;学会了做一道新的菜,学到了一个新的画画技巧,学会了一首新的曲子,都是日有所长。我享受这种昨天比今天无知的感受。

新的一年还想重拾古琴这个爱好,修身养性,让浮躁的自己静下心来。

剩下的无非是饮食、运动等健康相关的永恒的目标,身体健康就是百万富翁。

洋洋洒洒万字,口水话不少,算是一份给过去一年的答卷,也是给新一年的考卷;

2024 年,能把这份考卷答好吗?

  • End -

我是 Nauxscript,

github:Nauxscript

Blog:nauxscript.com

X:nauxscript

VX:Nauxscript, 就这样。

相关推荐
安妮的心动录19 天前
2024 Sep & Oct Review
程序员·年终总结
leobertlan5 个月前
2024年年中思考,推倒樊笼重新出发
前端·程序员·年终总结
Liben8 个月前
我的2023年终总结
前端·年终总结
何遇er8 个月前
程序员的技术写作之路
低代码·年终总结·掘金日报
echeverra9 个月前
迟到的2023年终总结,一个普通程序员不平凡的一年(工作、副业、家庭)
年终总结
前行的乌龟9 个月前
2023 年终总结 ③:书评 2
android·程序员·年终总结
安妮的心动录9 个月前
2024 Jan&Feb Review 安妮的假期
后端·程序员·年终总结
echeverra9 个月前
迟到的2023年终总结,一个程序员不平凡的一年(工作、副业、家庭)
年终总结
Nauxscript9 个月前
月度总结:贰零贰肆壹、贰月 —— 春之际
程序员·开源·年终总结