- Published on
三年之期已到,我的前端反向入门之路
细细算来,大学毕业三年多,高中毕业那就是七年前的事儿了……转眼间就快要而立之年了,仿佛昨天还是个只会熟背“光阴似箭,日月如梭”的小屁孩呢,现在算是切身体会了。
随兴感慨之后就该言归正传了,在之前写下基于 Ant Design Pro 页面标签化展示的研究与实现的时候,也差不多刚好毕业三年的节点,就想找个时间好好回顾一下三年的发展,个人感觉一路走来还算有趣。因为各种原因拖到现在,前几天刚好看到掘金的年终总结征文,刚好,这就开始。
2018 —— 始于 UI 组件库 Material UI
当初就是喜欢玩电脑游戏才选的计算机专业,临近毕业了也是一脸茫然,随大流的跟着同学开始学起 Java 来,结果课程还没学完就在秋招面上了一个,心里想着有个工作就够了,大不了先就业再择业,于是乎就放飞自我了。
结果后知后觉入职的是外包公司……本着来都来了还能咋办的心态干了大半年,主要是在成都和重庆为银行做业务需求,虽然当时懂得不多,但能明显感觉技术太落后了。做着让人感觉毫无职业成就感。不过也不是一无所获,大概是在 3 月份校招培训的时候一个公司领导一番话好像突然点燃我心里的一团火,大意是每个人都在社会中有自己的定位,所谓坐标,一个人应该努力提升自己影响力,让更多人看到自己,实现自己的人生价值。现在看来有点心灵鸡汤的感觉,不过当时确实有激励到我,万一我拿着主角剧本呢(不是
本来大学期间不能说兢兢业业,也算是浑浑噩噩了。没想到毕业之后陌生人的一番话居然让我开始有了深耕技术领域的大胆想法。毕业了居然比在大学更努力了,想来也是有点搞笑。
关于前端,在校期间简单了解过,以为前端无非就是 HTML + CSS + JS 罢了,能有什么难的。临毕业的时候恰好有个前端的兼职机会,开始对前端有了兴趣。当时需要找个能快速开发应用的技术,完全没有开发过项目的我开始寻找一个好看的组件库,老板提到过一个 Material Design 的设计,自然而然开始找能做 Material Design 的技术,当时应该有好几个实现,最后挑中了 Material UI。后来才知道我居然被一个 UI 组件库决定了我的主要技术栈 —— React —— 也为后续发展埋下了伏笔。
2019 —— 长于脚手架 Ant Design Pro
新开始
开年,也算是有点工作经验了,明白了自己当初真的太蠢了,校招这么宝贵的机会就这么浪费了。还好工作不算忙,在 Java 工作之余还能学学前端混混日子。
一个人坐井观天自学了半年前端,以为自己很厉害了(现在来看,真的好好笑,真实的无知者无畏),打算裸辞带着挣的几千块到深圳发展看看,毕竟成都重庆关于前端的岗位都是两下子翻完了,此外刚好有个大学同学也在深圳,于是乎毅然前往。
刚到深圳,甚至是同时找 Python 和前端相关的工作,此前基于 Python 做过 QQ 机器人相关的小玩具。越找越不对劲,面试都是过场,基本都是石沉大海,杳无音信。直到后来一家小公司面试通过了,虽然面试内容很简单,但好歹算是过了一个了,过了几天也没什么别的消息,在老板反复询问的情况下,也就确定入职正式转型前端开发了。
发力期
本以为来深圳搞前端是来先进地区学习的,结果没想到入职之后,我好像技术水平也不算差 _(:з」∠)_ 到此我也只能算是 React 用得还算顺手,能对付常见业务需求,但对原生 JS 基础掌握很差。
一个偶然的机会,老板对现阶段的前端开发效率和用户体验不是很满意,让我看看有没有成熟的开源项目可用,由于当时产品都是使用的 antd,我便开始了寻找。在苦心搜寻之后,在 antd 官网的 Footer 中瞥到了 Ant Design Pro,出于好奇点了进去,一个新世界由此开启。
很快,这个脚手架就应用到了实际开发中,老板又提到一个想法,这个玩意儿能搞成多标签页吗?说是用户习惯什么的。于是乎,一个对 JS 理解肤浅,对前端工程化理解更是基本为 0 的人开始研究起了开篇文章提到的 Ant Design Pro 页面标签化的实现(没错,从 19 年年中我就开始折腾了)。
也正是这个时候开始,我开始建立起了自己的立足于 Umi 应用开发框架的前端知识体系,也逐渐理解了前端工程化。在自己废了九牛二虎之力独立搞定初代标签化实现后,我获得了前所未有的职业成就感,深感前端真好玩,扶我起来,我还能学。
此后 React Hooks 和 TypeScript 逐渐进入了我的视野,在 JS 还整不太明白的时候,想要自己写个工具打包发布试试的我赶时髦上了 TS 的车,后续就养成了没有 TS 不会写代码的习惯。
在此期间学习探索了前端的各种可能,努力拓宽了自己对于前端的认知,算是从“井底”跳了出来,不断被前端的花花世界所吸引,正是有了这种正反馈,心中的那团火也越来越旺了。当然这一切还是建立在 React + TS 的层面,即使是在小标题中所谓的“发力期”,真正掌握的 HTML + CSS + JS 基础还仅是在工作中吸收的那部分,甚为薄弱。当然,凭着在此期间自己的勤奋程度,我想对于解决实际工作和学习中的问题应该是绰绰有余的(别问,问就是自信 [doge]
同时在这一年,算是真正的参与到开源社区中,学习了别人的思路与经验,也分享了自己的成长,同时也想帮助他人,毕竟自己从开源社区得到的帮助还是不可小觑。
2020 —— 乱中取进
2020 年,注定不是平凡的一年,疫情影响了太多的人和事。这一年,我居然还换了两次工作……
本来在这家小公司干得还不错,都开始定制开发内部脚手架了,可惜后来因为一些奇葩制度,实在让人觉得不胜其烦,遂在 7 月匆忙提出离职。
或许时机不太对,又或者准备还不够充分,鬼使神差的又一次入职了某外包公司。在甲方那儿主要独立搞了个开发 Azure DevOps 扩展的框架,借鉴了 Umi 的很多思路,第一次倒腾出一个还算有技术力的工具,感觉很不错,还有些发展前景。可惜在干了两个月之后,因为其他原因准备跑路了,没能好好发展下去,大概也被荒废了。
当 10 月第二次入职某 DevOps 平台公司时,心想着也算是个不错的平台了,应该对自己的成长有很大帮助或者能充分发挥自己的能力。结果期望越大失望越大,详见下文。
虽然工作和生活都不怎么让人省心,但是这一年多少还是有些收获的,主要是巩固 React + TS 的能力,开发维护了几个小项目以及探索了一些前端新玩法,比如 taro,electron 和 three.js 等。
2021 —— 悲喜交加
之前基本都能一人掌控整个项目,所以养成了较强的代码洁癖,当在工作上看到用了 TS 写成 AnyScript 还各种警告以及随便一点需求都得从底层的 UI 组件开始做,天天纠结于那破 CSS 样式的时候就整个人都绷不住了:这都啥啊?无奈体量太大,只能尽量保证自己的质量了,天天都感觉顶着“达摩克利斯之剑”,整个人就很难受,这不是我想象的样子 😅
工作上既然如此了,只能业余更加严格要求自己了,还好在开源社区还能得到些许安慰。值得一提的大概就是在 20 年初发现的 Umi 3 的问题,在我很久没使用 Umi 后的 21 年初因为还没人彻底解决,只能自己硬着头皮上了,经过周末一天的鏖战,终于解决了这个问题。那一瞬间大概只有 19 年刚搞出来标签页功能的时候的那种兴奋能够企及了。
上半年因为各种上头,挖坑了好几个有趣的项目:
- @vitjs/vit —— 🚀 类 UmiJS 的 React 应用框架
- pinyin —— ✨ 在线拼音打字练习
- violet —— 🎨 bilibili 弹幕控制台(WIP)
- ...
可惜后来因为各种原因没了干劲后就搁置了,现在看来还是挺有意思的,有机会再接再厉 _(:з」∠)_
虽然在社区能体会到了各种快乐,但基本都是一个人,做点东西放着就放着,妥妥一个臭写代码的。后来听闻某大佬谈到了个人影响力的建设,突然明白了这个道理,也该主动做点什么了,无论是分享经验还是结交朋友,主动才会有故事。于是乎今年四月,我主动在社交平台上发了第一篇文章,后续也写了几篇,零星收到一些反馈也觉得自己做的事儿物有所值了。
说回工作,正如今年的 GitHub 活跃度来看,大概神隐了一个季度,这个季度人都忙傻了,业余是真的啥都不想干,报复性打游戏去了 2333 虽然工作上的问题都有所好转,但当最后整了个出乎意料的绩效的时候,那是真的蚌埠住了,也是时候把“达摩克利斯之剑”放下了,心累了,心中那团火也快灭了。
在 11 月提出离职之后整个人都舒服了,抛掉所有工作上的烦恼,突然有了一种小时候静静看着一块猪油在锅底慢慢融化的感觉,就很突然的一个意象给到。
也就是在这段时间,我开始研究起了各种前端基础,原型链、闭包、网络协议……又有了新的认识,大概到了这个时候,我的前端基础才算入了门,毕竟基础才是内功,外功再硬,没有内功怎么能走得更远呢?今年大概是开始重视内功建设的一年。
20XX —— 不止于此
当我燃起最初对于技术的热情之火时,就一直坚定的想走技术路线,三年多过去了,技术上算是有了一些应有的进步?也曾想过如果当初没有燃起那团火,自己是不是还待在重庆蹉跎岁月?生活就是这么有意思,谁也不知道明天会怎样,静待下一个三年的成长。