随着2019年最后一晚的落幕,21世纪的10年代也结束了,今年的我无论是在技术上还是别的方面,都成长了许多。以本文记录我的技术路程,迎接新的一年

0x00 算法

从一开始的算法来说吧,原本上大学前计划和胡神一起打 ACM,但最终我还是弃坑了。其实在这方面感觉自己还是一个比较势利的人,ACM 需要的付出时间和精力太多。而我又不愿放下其他方面,这样的状态不可能有一个好的训练效果,而 ACM 如果没能在区域赛拿到牌子,就是一件性价比极低的事情。既耗费了大量时间,也没有得到一个好的回报。

弃坑后有一段时间还是觉得挺对不起胡神的,对他来说,这些就是他的全部了吧。我真的很佩服他能一直坚持下去。现在看到他带新生搞的也还行,我脸皮又厚,也就无所谓了,在这里也祝愿他能追求到自己想要的。

也得益于大一开学前短暂的训练经历,吃着这些老本在 2019 年上半年的算法竞赛中还是取得了一些小成绩:

  • 蓝桥杯省赛一等奖第二名(2019-3-24)
  • 团体程序设计天梯赛全国高校一等奖,全国团队一等奖,广东团队特等奖(2019-3-30)
  • 蓝桥杯国赛一等奖第四名(2019-05-25)

0x01 技能大赛

作为中职免试生,我很清楚在当前国内职教环境下的竞赛红利。所以就算在我十分了解技能大赛的水平、含金量以及各种潜规则后,我还是选择了在深职继续参加技能大赛,计划是大一一步到位拿下国一,之后就不再碰了。

这次参加的赛项是人工智能,也借此学习了一些相关的机器学习知识与 TensorFlow 等框架。结果技能大赛果然没让我失望,比赛内容不过是搭建环境、数据标注、仅有的编程内容也就只是给点云排个序而已。

在财大气粗的深职搞技能大赛,也让我更加深刻地见识到强校(技能大赛)与弱校的差别,花钱买设备、培训后,比赛对于我们来说几乎是透明的,每一步都了如指掌。而之前在中职,学校没钱买设备、参加培训。我们了解到的比赛内容也就只有那份模糊不清的样题。

在深职有了学校的支持,我们当然也就轻而易举地拿下省一。不过可惜的是之后被告知国赛取消,确实是打乱了我的计划。还在犹豫要不要继续参加 AI 技能大赛,结果到了大二上学期末时,老师告知新增了个 Web 开发的赛项,我对 Web开发也比较熟悉,而且在查过资料后了解到别的省份之前就举办过了,这种情况下有国赛可能性是非常大的,便跳槽了过去。

前两天工程师来培训后,我们拿到了样题,看了眼也确实都是比较简单的技术,就等熟悉下具体细节了,对于这个赛项还是非常有信心的。

0x02 Web开发

在去年的总结中就谈到,中职由于竞赛的关系,一直接触的 Android 开发。但后来逐渐觉得 Android开发没啥前途,现在看来也确实是这样,去年五月 Kotlin 还来势汹汹,到现在 Native 开发已经被 Flutter 一个跨端框架逐渐占领市场,Android 开发在发展上技术迭代过快但深度又不足,移动互联网的红利期也早已过去。

对我来说 Web 开发更能提起我的兴趣(特别是后端)。于是也毅然转向了 Web 这块,点了大半年的技能树。还是掌握了不少东西的,也可以算全菜工程师了。

虽然大部分都是都是不算 hard 的框架和中间件,但通过阅读源码和学习设计模式,还是接触到了很多软件设计方面的思想,可以说是受益匪浅。

还学习了函数范式,其思想非常有意思,让我有种「噢~ 原来程序还可以这样写」的感觉(推荐看 Franklin Risby 的 mostly-adequate-guide)。

0x03 基础巩固 and 科班理论

之前在知乎看到一位 T 大同学的简历,里面有一句话:

实现了在自己写的 CPU 上运行自己写的操作系统,以及自己实现的编译器生成的程序

这句话确实深深震撼到了我,强校的本科生与我们的差距是如此之大。于是,我也给自己定了一个毕业前的小目标,不论深度,至少能做到这句话的一半:

在自己写的操作系统上运行自己实现的编译器生成的程序

于是在大二上学期,稍微补了下基础。之后就要朝着这个毕业目标去努力啦。

0x04 职业生涯发展与其他

无论是我们国家还是深职,都一直推行所谓的创新创业教育,我对这并不感冒,在我看来更多不过是应对日益增多的高校毕业生与逐渐凸显的老龄化问题带来的工作岗位减少与失业率上升的缓解政策而已。当然由于学校强推与老师忽悠,我也参加过互联网+、计算机设计大赛之类的双创赛,在挑战杯也挂了个名混了个奖项:

  • 第十五届 “挑战杯” 广东大学生课外学术科技作品竞赛二等奖(2019-05)

我确实是很热爱技术的人,没有什么能比写代码和研究技术更让我开心。但迫于现实压力,在课余时间我还是会做一些外包来赚赚零花钱。不过和之前的大学作业与过家家玩具比起来,现在都是参与到公司中做真正的商业项目。当然,外包还是外包,没什么技术含量,只不过数万行的代码屎山变成了数十万行而已。

虽然外包公司的项目没有什么技术含量,一直让我觉得是在浪费时间。但在这一过程中我也渐渐了解到「软件工程」的重要性,项目开发是需要管理的,只有技术是不行的。在自己的项目里我也开始使用一些项目管理解决方案来进行开发过程的管理,模仿大企业中的开发流程和规范。比起以前小作坊式开发,现在开发和维护效率有了很大提升,也显得更加“工程”了些。

以后还是希望能进一个以技术为导向或技术氛围浓厚的互联网、科技企业中工作,像BAT这类大厂肯定是最好的(不过人家看不看得上我就另说了)

0x05 总结

总有那么一瞬间感觉自己还在高三,拿起手机刚收到深职的面试通知。一眨眼原来已经大二了,在学校待的时间也只剩下最后一年,在这最后的一年里希望能把握好自己的机会,在技术深度上有所突破,插本也能考上心仪的学校吧