一个程序员 && 作者 && 设计师的 2018 年终总结

1,593 阅读13分钟

有人经常问我,什么每年能做这么多东西。我的答案一直、总是、老是:不加班。

不加班,钱少,多了点 x 生活。人生总是要做很多的抉择,如我这一般穷的人做的抉择,便更加有限了。上一年里的收入帮家里还了钱,这一年下来赚得不多,攒下的钱也就十一二万,勉勉强强算是自己的所有金钱财富。尽管又借给朋友买房了,可大抵自己总算留下了几块钱。虽然远不如一个自媒体一个月的收入,远不如别人一套房的涨跌,远不如比尔·盖茨/贝佐斯弯个腰,但还是攒了钱,还算蛮开心的。

这样一看,有些人可能会说:“混得这么差,还写一篇这么长的文章,那得是有多骄傲”。若是你觉得不好,倒是也不必要往下看,时间于你和我都是相当的宝贵。于我而言,记录过去,记录过去的好的、坏的、困惑,对我的帮助都相当的大。于你,道理也相似,除非你已经过得相当的好。

每年固定的时间,它总会提醒我,哪些地方在变好。虽远远赶不上别人的水平,也没有必要和力气去追赶。而很多事情都在持续不断地变好,又或者是不幸地在变差——如不断增长地年龄。活着,需要活在自己的感觉里。

编程:Think Big

工作:MOVE BIG

ONE。 年初,我先是在一个 Android 项目里,努力 “奋斗” 了一个多月。虽说在我看来有点划水的味道,可真真实实地还是在写编写精力代码、完成需求。说是混,那到底还是对不住自己的学习;说是贡献吧,也没有什么优异的表现。除却更熟悉 Android、Java、Kotlin 之外,唯一做的可圈可点的事,裁剪了预定的 Android 与 JavaScript Bridge 的复杂设计,转成用 URL Scheme 唤醒的方式,降低了不必要的技术成本。

TWO。过完农历新年,我变身成为了一个 Tech Lead——事隔 2 年多之后,重新回到了这个坑位上。两年多的漫长日子里,我的提升都在技术上;在技术管理上,还是没有多少的长进——在项目最初的节点上,缺乏与关键利益者的沟通。可也说不上缺乏吧,沟通还是相当的多,可能是不得要点。好在这个问题,在后来的项目里,多多少少有了一些改进。它也充分说服了持证上岗的重要性。在快结束这个项目的时候,终于又被培训了(持证),培训的主题是:Team Lead。同样是 TL,差别还是蛮大的,虽然不一样,多多少少还能学到点东西。

再回到项目上来说,我终于算是完完完完整整整整地经历一个项目,Inception、Interation 0、交付、收尾。除此,还 GET 了微前端的技能——我在 2017 年里,心心念念想实践的架构,勉勉强强得到了充分的施展。此刻,按我司的 Tech Lead 的维度,我大抵可以算得上是一个 Tech SME(Subject Matter Expert)。

THREE。而在年底的项目里,我则是经历了售前、Inception、Iteration 0 的阶段。在 Google Play 上上架了七八个混合应用的我,成为了一个混合应用框架的创建者,而不再是使用者;与此同时,进一步地思考了大前端相关的内容,从头创建前端相关的组件库、脚手架等一系列的工具。按我司的 Tech Lead 的维度,大抵在这样的项目里,可以朝向 System Architecture 的方式发展。几次不同的经历,让我重新思考了角色的定义,不免在下一个项目里,我需要在开始时重新定位自己——需要以怎样的角色存在。

经历了一系列的原生应用、混合应用、半混合应用、RN 应用的开发之后,对于如何整合再有应用,有了更深的经验。与此同时,对于内部的政治还是深有体会,只是尚不能理解原因。与过去相比,我觉得做底层框架支持很有意思,但是长时间的投入之后,发现还是业务代码更有成就感一些——有稳定的上线计划。

几个不同梯度的项目,考虑问题时的方式,都各有所不同。过去,只关注于团队内部的能力成长,相关的架构实践。在第 2 个和第 3 个项目里,则关注于更高维度的架构事宜,致力于提升总体的开发效率。所需理解的非技术因素更多,并且面向的受众更广。不远的将来,也需要从更高、更宽的角度,来考虑整个系统。

业余编程:FOR LIFE

在这一年里,因为过去的几年里翻译、查阅了大量 IoT 相关的内容,相关的资源相当地 “匮乏”——要么重复,要么质量低。我停止了玩点什么的文章翻译计划以及相应的 Play 应用开发,但是它仍然有着一丝丝的访问量——每天有 100 次左右的点击量。在可见的未来几年,这个网站仍然相当有前途。只是在互联网巨头们,各自推广自己开发社区的这几年,大抵会慢慢下滑。

在这一年里,关于 Serverless 的投入倒是有些变少了,但仍还是使用了 Serverless 架构 + 微信小程序 + AI 写了一些(个)应用,如 CODE 应用。用户量还是上了 8k 左右,这样一看,倒也是一个不错的尝试。在下一年里,或许可以在这一方面有更多的探索,能面向普通的用户,而非程序员——想从程序员身上赚钱太难了。诸如小游戏的开发,这样一看倒也是难得可贵,到了这个年纪,还有探索计算机的好奇心。以致于那些上年纪的程序员,想的也都只能割割知识付费的韭菜。

上一年里,我制定了一个粗略的计划,用于替换日常工作的一些软件。如去年年底编写的 ADR (架构决策记录)工具,已经成为了我日常管理开源项目需求的一部分,而不仅仅是架构决策相关的内容。在这一年里,又有了两个新的小伙伴加入了:

Mifa Design。设计的初衷是面向我的开源项目的设计系统,最开始的形式是 UI 框架(CSS 架构)。就目前而言,它已经是我默认的 GitHub Pages 的主题,默认的 GitHub 电子书主题,默认的开源项目的 CSS 框架。我可以毫无顾忌地说,它达到了广泛的验证,hiahia~。

Phodit 编辑器。它满足了我日常的写作需求,如在我写本文时,还作为了新书(TBD)的编辑器。尽管过程中,充满了相当数量的 bug,如重命名文件的时候,不会替换当前窗口的文件——需求小的 bug,都懒得改。

在未来的一年里,仍然想的是继续创造自己的工具。诸如,随着舆论的不断收紧,对于隐私问题的担忧。关于隐私,我有了一些更多的想法:

  • 输入法,是一个相当危险的工具,它可能会随时出卖你。要么接入原生开源,要么使用云的方式。
  • 物理密码生成器,做了一些了解,诸如 Raspberry Pi Zero,只是需要保证便携性。
  • iOS 还是 Android?可惜 Ubuntu Touch 还是半死不活,支持不了主流的设备。

倒也不是担心自己说了什么,怕被追责——天生就不喜欢一种被监视感。要么屈服,要么天性自由,这是一个值得考虑的问题。国内的聊天工具,无时无刻不在被审视着,于我的感觉就好似 “达摩克利斯之剑”。倘若能做一个物理上的输入法,倒是会更加的方便。

写作:HIGH QUALITY -> 非技术写作

依旧地,我仍然在为 Packt 干着廉价的技术审阅工作,它们又出版了两本印有带上我名字的书《Mastering Angular Components - Second Edition》和《Angular 6 by Example - Third Edition》。即可以免费地看技术书籍,又可以练习英语,有时还有收入,倒算是不错的买卖。

原先打算在这一年写完的书,终究还是没有写完,两年了。倒是《自己动手设计物联网》繁体版——《物聯網原來這麼近:立即手動實作一個》,能为平淡的生活添加几多的色彩。从国内到到港澳台地区,倒也是个不错的进步。哪天要是在马来西亚、新加坡这样的国家里,看到自己的书,倒可以自诩说走向了国际化。未来,倘若有本书,要是能写作出版到西方国家,那便是个更大的突破,就这么放个心愿吧。

在 2017 年,我写了一系列的热点文章,在年底总结的时候,我开始意识到了这些文章的问题——它们不能帮助我成为一个更好的程序员。与此同时,依赖于热度的文章,在热度散去的时间,也就没有不存在的价值。于是,2018 年,我调整了写作的策略——尝试在阅读量与质量之间平衡,不再去追求更高的阅读量,转而是我眼中的 “高质量文章”。

高质量的文章,大抵也是有好有坏,一来,一篇文章要花费一天的时间编写,文章的长度往往太长了,不适合所有的人阅读。二来,高质量的文章,并不一定带来好的阅读量,但是对于自己来说,内心是满足的——写的是给自己看的文章,对自己的帮助更大。

我尝试以 《架构拾集》作为标题,作为其中的一个方向,用于记录我在使用架构方面的所见所闻,并将其作为我的知识库来储备。练习它们,然后记录其中的关键部分,相关的核心思想。要是说成长吧,那还有一点相关的不错,吐槽一些 “不好” 的架构实施。往往,我们一直讲的是某个架构中的好处,而一直刻意忽略其中的一些缺点。在使用的过程中,因为一些使用的不当,反而带来更多的问题。诸如《微 “害” 架构》和《前后端分离的资源浪费问题》,便是在讲述其中的一些问题。若是直接放大缺点,吐槽一番,那倒是相当的不错。

只是写多了技术文章之后,写一般的文章有了些许的不合适。技术文章,特性是简洁、干炼,少了些许废话,也就没有人情味。浓缩了精华,便也意味着需要一遍一遍的深思熟虑,删删减减,时间也就过去了——没有了愉快地写作感。渐渐变得没有自己的风格,千篇一律,也就失去了自己的个性。

每晚的睡前,都在阅读技术之外的文学类书籍,想寻找一些新的写作手法。这些日子下来,还没有太大的突破,或许是量变还不够,又或者是需要多练习,写写非技术文章。

设计:PRACTISE -> MORE PRACTISE

为了响应 2017 年留下的遗憾,在这一年里,我练习了很多设计相关的工作。

设计上最大的长进,莫过于结合编程相关的知识,设计(复制)出了 Mifa Design。推广在了开源项目上,公号的排版上,自己的博客上……。就目前而言,倒也只是普普通通的排版和样式,论不上丰富的个人风格,倒是应用得有点广泛。起初呢,打算作为 Design System 来使用的,但关于 Design System 相关的设计、技术,倒也没有落到实践上。这样一推论,倒也是颇为遗憾的,只用在了术上,却没有掌握道。

我开始手绘文章中的流程图,倒也是蛮有趣的,却又稍微显得有些麻烦。先将流程图绘制在 Wacom Folio 的设备上,再同步到云上,便可以在电脑上、平板上,进行编辑和上色。好用(贵)的 Wacom设备,可以直接在上面绘制、上色、导出,省去了转换过程稍许的麻烦。而设计的最先步骤,还是得先在纸上绘制相应的草稿。

心情好的时候,又或者是闲暇时间,便会画上点东西,作为封面。虽只能算上涂鸦,作为封面,却有了一点个性——不再是千篇一律。偶然间,也和 @花仲马 一起参加了公司的周末活动,尝试了画一张油画,尽管画出了水墨画的感觉。多多少少,还是有了点信心,未来在时机合适的时候,但是会发挥更大的价值。只是于自己而言,还是相当的缺乏练习。在未来的一年里,写累代码的时候,倒可以投入部分的精力,以放松一下神经。掌握了门道,多加练习,快速地画上一张画,倒也是蛮兴奋的。也许还可以结合一些 AI 图像相关的内容,完善相关的个人风格化图像。

除此,和 @花仲马 的马来西亚之游里,我还 GET 了一个摄影相关的技能:连拍——一千张图里,总有一张是合适的。摄影、漫画和电影,存在相仿的地方,对于镜头的把握,便也是一个值得掌握的技巧。日常多加了解,多加注意,便是也会 GET 到新功能。

总得尝试新的方式,突破渴望,才能知道自己会什么。

其它

这一年下来,看了几本关于人生的文学、人说书籍。也算领悟了一个基本的道理,想在某一个行业里干下去,靠的不是年轻时候的熬夜、学习,而是持续保持稳定的投入以及稳定的输出,也就是长期的职业生涯。做喜欢做的事情,寻找提高点,不断突破自己。如此一看,关于编程-设计-写作,都有了各自的场景、应用、规则和计划。时间一长,问题倒也是不大,都有各自发挥的空间。

可生活和工作,不止是这些个人兴趣,还得花些时间在其它的方方面面,如各种各样的软技能。

比如说,沟通,如何达到令人信服的沟通能力。

比如说,成为一个栽培者、Coach、导师。

比如说,影响力,面向更高 title 人级的技术和非技术影响力。

若是要考虑未来,便总会想着成为自由的职业者,而不是成为螺丝钉。

Hello, 2019

2019 大抵会是一个艰苦的开始。