一个程序员的辩白

01 Jan 2021

2020年终总结

咳咳,2020年的年终总结的主题是,忆苦思甜。

几年前就有每年写一篇总结的想法,不过由于总总原因被推迟掉了。本质上还是因为太懒了,另外我觉得写博客是一件很费时间的事情。

不过这几天陆续在Twitter上看到一些推友发了他们的年终总结,我停下来重新思考这个问题,逝者如斯,我们大概很难在将来的某个节点清楚地知道自己此刻的心境和想法,因此记录便有了其深层次意义。

前序

在开始正文之前,我觉得有必要提一下我最近看到的 laike9m 发表于2019年的一篇博文 People Die, but Long Live GitHub,节选其中一段:

不知道有没有人注意到,Joe Armstrong 最近几个月都在忙着迁移博客到 TiddlyWiki。我很早就关注了他的 Twitter,然而之前并没多想。听闻大师在 4 月 20 号去世,我才反应过来,原来他之前的举动是在未雨绸缪。…

重要的是,你把信息存在哪?如果你希望存储一段信息,让 100 年后的人也能访问,要怎么做?…

所以,我们还有什么选择?想来想去,也只有 GitHub 了。

其实很早之前我就有维护博客系统,不过每次博客都很短命:

  • 没有找到一个比较稳定的方式存储博文,之前存在VPS上,但有时候忘记续费导致数据没了,得重新部署,觉得很麻烦就Delay了很多次。
  • 没有找到一个所见即所得(WYSIWYG)的撰写博文的方式。

不过目前的部署方案 Github Pages + Jekyll 令我很满意(切换到了GitHub Pages + Hugo),基本上解决了上面说到的问题,这样我也许就有动力去写更多文章了。Hooray 🥳

一点点小成就

回到主题,2020年客观原因上,发生了很多事情,影响并改变了每一个人的生活,对我而言,在疫情期间稍微让我欣慰的是,在家办公可以不用加班。这让我稍微有一些时间可以去学一些东西,写一点代码。

现在回想起来,那期间还是稍微有一点小成就的。那时候远程办公最大的障碍大概是家里连公司网络很麻烦,有一些本地应用并不支持设置代理,另外公司内部自有部署DNS,访问那些服务需要走公司的DNS才能正确解析。

另外我还想兼顾DNS隐私的问题,想来想去,最终似乎只有走DNS over HTTPS/TLS,配合上DNS分流才能达到我的目的,偶然情况看到 missdeer/gen_Corefile.sh,发现CoreDNS似乎可以完成我想要的目的。

不过最终发现CoreDNS官方的foward/proxy插件并不能很好地实现我需要的功能,另外,missdeer/gen_Corefile.sh 给出的解决方案我觉得不是太优雅。于是就有了自己写一个简单的CoreDNS插件的想法,顺带还可以运用一些刚学不久的Golang。

倒腾了一阵子,就有了现在的 leiless/dnsredir 项目了。为了将家庭网络配置上透明代理,我了解了DNS协议,写了一个DNS分流插件,学习了如何搭建 trojan-gfw,使用 ipset/iptables。将整个透明代理的脉络拎清。

花了一大段篇幅将这个,想说的是,这个项目虽然简单,但是对我的激励作用是比较大的(可能是我比较菜),那种逐渐清晰的感觉是很能鼓舞人心的。

这为我后面学习,写一些其他的项目打好了心理基础,以前总是是会担心要怎么开始。

工作方面

整个一年其实没有什么很实质的进步,可能是由于公司业务方向发生了明显的改变,和我自己的想做的方向相去甚远,手上有一些做了很久的工作至今没有看到要上线的迹象,也让我非常沮丧。

在这期间我也向我的leader多次表达过想要转岗到后端开发,不过是实际情况来看,目前我所在的组离不开我(其实就我一个人),转岗变成了一个不可能的事情。

另外我也注意到身边一些离职的同事都去了一些不错的公司,实则让我非常羡慕。

2020年可以说是我职业生涯中最艰难的一年,其中有一个项目可能是由于需求不明确,加上我能力/理论不足,导致我做的非常地混沌,一共做了接近半年,对我而言简直是死亡行军,那段时间自身压力很大,虽然这个项目接近尾声,但我复盘之后得到的教训是:

  • 对不熟悉的领域,应该尽快捡起预备知识。如果鲜有人问津,你甚至得读一些相关的论文。
  • 不要使用自己刚入门的语言/技术写生产代码,Choose boring technology
  • 及时反馈进度,报告自己遇到的问题,以快速迭代。
  • 每天手上不应该只做一件工作,有多份任务的情况下,可以适当切换,转换一下心情。

那段时间最能安抚我的可能就是下班之后可以做自己喜欢的事情了。不过这件事情也让我认识到了自己的局限性,还是需要深耕一下自己的基础,拓展知识面。

后面还穿插着做了一个数据结构优化以节约内存的工作,是用 Cuckoo hashing 来完成的,让我最自豪的是我的方案比一个资历较长的员工做的要好,最终其他平台都采纳了我的实现。也通过和我的leader PR QA的时候,学到了很多知识。

生活方面

一切岁月静好。

想来最疯狂的事情就是三月底和女友跑去三亚旅游了三天,其中一天还是小心翼翼地请假请出来的,完成了一趟自()驾()游。

P.S. 三亚是个非常适合生活的地方,难怪女友说很多人过年喜欢跑去三亚。

展望

希望全球疫情能在2021年得到控制,工作生活回到正轨。

自己能在技术深度和广度上得到进一步的提升,现阶段对我而言最重要的事情是转到后端,当然非常有可能是通过换一份工作来达成这个目标

再一个是希望自己可以找到除了编程之外的兴趣爱好,当然前提是这个兴趣爱好必须是深度有趣的(Deeply interesting)。

结语

愿所有我关心的人,关心我的人都平平安安,健健康康。🙏