属于我的三年·第一年

欧雷
本文首发于欧雷流。由于我会时不时对文章进行补充、修正和润色,为了保证所看到的是最新版本,请阅读原文

从 2020 年起到 2022 年结束,是属于我的三年。正如之前写的文章里所说,「三年」对我来说意义非凡——

目前为止的人生中,初中是三年,高中是三年,因为上的是专科,所以大学也是三年——求学时期,除了小学之外都是每三年为一个阶段。这样的「巧合」使我不禁觉得「三年」对我来说似乎有着特殊的意义。

——欧雷《三年之痒

为什么说这三年是「属于我的」?因为「2020」和「2021」这两个数字中分别包含了我姓名的谐音,而「2022」则包含了我的生日;再结合今年自己的收获与接下来要做的事情,我认为这三年会严重影响我之后的人生走向,成为人生中的重要拐点。

虽然我不迷信,但我相信自己身上发生的事都是在遵循某种规律的情况下「被安排好的」——

买手机壳时,第一眼看到左边那个,给我一种「侘び寂び」的感觉,以为表面是凹凸不平的,于是下单。收到后没想到还送了个埼玉先生的。

原本下单买的那个并不像想象中那样,有些失望,并且没有埼玉先生的脸手感好,所以我还是决定用赠品了。

既然送了我埼玉先生的脸,并且还让我用它,我觉得这是想让我变得更强并且无敌。

相信一切都是最好的安排。

手机壳

——欧雷的想法

今年是我将前端工程师作为职业的第十年,在我这软件工程师职业生涯的前十年中,几乎一直处于野蛮生长状态——缺少领路人,成长基本靠自己和运气。

我给当前自己在职业上的评价就如高中、大学时的我一样——虽有资质,但不是优等生。将这十年的感受稍作总结的话——

每个人的经历也许会相似,但绝不会相同,无论成败都是自己的,「成功」是可以跟他人分享的,但「失败」只能自己含泪吞下;一个人的能力大小,与「时间」没有必然关系,比如「年龄」、「工作经验」,真正的影响因素是经历的「事情」以及相关的「思考」,其实就是「知识」与「智慧」;「老」是外界根据年龄对我的刻板印象,我觉得自己还很「年轻」。

——欧雷《一个 32 岁「老」码农的复盘:初出茅庐

想了解我这些年的工作经历,可以看《一个 32 岁「老」码农的复盘》系列文章。

今年收获

有效思考

我一直是个喜欢思考的人,但遗憾的是,今年才开始去意识什么是「有效思考」和「无效思考」。

「有效思考」是能够强化并完善自己知识/能力体系的思考,会让自己更有智慧,做出更正确的决定;「无效思考」则是对自己几乎不起到什么积极作用,毫无根据且经不起推敲的思考,也就是「胡思乱想」,这种思考纯属浪费时间。

既然能够意识到哪些思考是有效的,那就应该尽量去避免无效思考。相比以往,今年的有效思考变得更多了,重塑了我的三观——

世界是由什么组成?世界的本质是什么?也许你会说是粒子,是物质,但我认为是信息。

在这里,「信息」是个相对抽象、泛化的概念,有不同的形态,如:物质、能量、图形、文字、声音、颜色等等。

信息有「普通信息」和「元信息」。普通信息分为两类:某种形态;从一种形态变为另一种形态的过程。元信息具体是什么样的,应该只有神才知道,大概是类似于「逻各斯(logos)」那种东西。

就像「能量守恒定律」一样,信息总量也是守恒的——信息既不会凭空产生,也不会凭空消失,可以从一种形态转换为另外一种形态。

——欧雷《人生元编程

这种观点叫做「唯信息论」,就像「唯物论」和「唯心论」一样。为了给自己的观点提供理论依据,买了一本名为《信息论:本质·多样性·统一》的书——

这本书的内容不是单纯的香农的信息论,从介绍来看是比较泛化的「信息论」,也是出于此原因我才买了它,相信能为我的「唯信息论」提供一定的理论基础。

封底提到「信息怎样关联于知识和数据」,这应该是与「DIKW 金字塔」相关。「DIKW 金字塔」就是「Data」、「Information」、「Knowledge」和「Wisdom」的金字塔模型。

《信息论:本质·多样性·统一》

——欧雷的想法

在上面提到的那篇文章中,还说了我认为的一个人的三个底层能力——

按照认知事物的递进关系,简单说说我认为很基本、很重要的几个元能力:关于「是什么」的建模能力;关于「如何懂」的学习能力;关于「如何用」的管理能力。

——欧雷《人生元编程

说到建模,9 月份去北京时在大兴机场的书店中看到一本让我很有兴趣的书——

喜欢这类讲思维方式的书,其中还出现了我写的《客观的现实世界》中提过的「DIKW 金字塔」。

《模型思维》

——欧雷的想法

当有效思考逐渐变多时,抽象就渐渐变成了日常习惯——

我们应该养成一种思维方式:遇到任何事情,试着对其抽象,尽量泛化成一般理论。这个「一般理论」就是相对底层且在一定层次较为通用的「模型」,而「任何事情」就是这个「模型」的一个「实体」。如果总是在「实体」这个表层里打转,永远不会有什么成长,更别说突破自己的局限了。

就像「前端应用的状态管理和人类的组织管理有没有关系」这个问题,思维停留在表层的人肯定不会觉得它们之间有什么关联,然而本质是一样的,只是针对不同的场景、领域所用的方法、手段和工具等有所差别。

——欧雷的想法

这些天抽象出了几个我目前认为是作为一个人的「元模型」的模型——

事件模型,拥有时间、地点、相关人物、发生的事情这四个属性。其中,发生的事情的内容是可以不断提炼的,从一段描述中抽象出无数个模型,用来渐进式强化与完善自己的知识/能力体系。一个事件就是自己的一次经历,多个连续的事件就构成了时间线,是自己的一段人生经历。

决策模型,拥有理想、目标、知识/能力、现状、事件等属性。一次决策就是一个人生选择,影响接下来的人生走向。

上述示例只是有个轮廓,还没有想得很具体,过后想得较清楚了会写文章详细阐述。

确立方向

从业十年,陆陆续续积攒了很多想做的事情,列出几个想得稍微明白点并且已经做了一部分的,与职业有关无关的都有:

虽然想做的很多,但没有一个是下定决心一条路走到黑的。可以说,这些年一直在迷茫,一直在探索,一直在彷徨。还好,经过这几个月赋闲在家的思索,确立了今后的方向——于私,主攻个人服务,兼做家庭服务,有机会可以搞下社区服务;于公,则倾向于企业服务,政府服务次之。

最近被人问到:「你觉得五年后自己处于什么样的状态?」我说:「五年后有人在用我做的东西。」

之前有跟别人说到:「五年内我要做出一个媲美 Spring 的前端框架。」然而当我回答那人的问题时,心里所想的其实是「以个人为中心的服务」,也就是上面提到的「个人服务」。

我想要做的个人服务,与当前普遍意义的「to C」有所不同——

首先,它是秉承去中心化理念的,即个人的数据不是集中式地掌握在某个人或厂商手中,而是被自己掌控或分散到各处——这正与 Web 的初心相契合。

如果仅仅是自己使用而不需要与他人或其他厂商发生交互的话,这类服务绝大部分是工具型的,无论是基于 Web 还是 OS 的,基本都是本地客户端。

由于去中心化所必然会带来的分布式特性,若要与他人或其他厂商发生交互,就需要一个 hub 来聚合与分发数据,或者每个节点都接入相同的某个标准来进行通信——「hub」相当于交通枢纽、集散地;「某个标准」就是讲不同方言的人之间沟通所需的普通话。

当以上述形式发展时,理想状态下,各行各业间的协作方式会有所调整并改善,几乎不会出现巨头垄断的现象——人民当家做主,拒做资本韭菜!

近期在给个人网站重构,目标就是将单纯的博客改造成「个人版豆瓣」,我的网站就是理想中的个人服务的试验田。眼前正在做的是——

失眠,躺尸七个小时,想了一些事情,其中包括跟自己个人网站相关的——

要加几个功能:「想法」或者说「自言自语」,也是现在很常见的功能了,就是像推特、饭否、微博这种,有了什么想法就立即写出来,不用像写文章似的长篇大论,也不用太考虑措辞等;多语言支持,先(也基本只能)搞英语和日语版,将我现有文章翻译成对应语言,英语要我老婆帮忙,日语我自己来;网友身份识别系统,可以认为是一种账号系统,但是只用于我的个人网站相关服务的网友身份识别,利用(多种)第三方的登录服务,没有密码;评论系统,最主要的原因是现在用的 Disqus 被墙了,对和网友的交流产生很大影响,我要基于上面说的网友身份识别系统和 Git 做一个评论系统。还有其他的畅想,但先弄这几个。

这几个东西的共同点是:基于 Git 的文件存储,而不是 SQL 这种数据库;基于去中心化的 open web 思想,是以个人为中心的,提供免费的工具,可以部署到自己的服务器。

——欧雷的想法

更多我对个人服务的看法,请看《闲聊个人服务》系列文章,日后还会对我的实践经验做系统化总结。

之所以我在接下来的五年中想做的事情从「媲美 Spring 的前端框架」变成了个人服务,是因为我的眼界变得更高了。我觉得,那个前端框架会作为我在探索理想中的个人服务时的副产品出现,并且也许会同时顺带着做了其他想做的事情。

决定转型

每个坚持做程序员的人,都会面临一个抉择——是一直做技术?还是转型做管理?

由于国内大多数公司是业务驱动型而不是技术驱动型,他们在招工作年限长的程序员时,除了大厂,实际是想招一个做管理的,于是我在找工作时就不得不先想好自己能不能做管理。

这个「能不能」有两方面,一是能力,二是意愿。

在管理方面,我还是有一定能力的,虽然不够出色,但无论我当没当 leader,都有做团队管理方面的工作,况且我还当过小团队的 leader。

至于意愿,如果是以前的话,心里是有些抗拒的,因为人是产生混沌的根本原因,管理的本质就是处理好人的问题,需要将大把时间花在其他人身上,而我只想尽可能多地把时间用在自己身上。

但现在不同了,除了探索世界的真理,提升自己的专业能力,我还想更加深入地了解人,做管理是再适合不过的了。因此,接下来我会以「人件工程师」的身份开展工作,这也是为了成为更好的软件工程师。

其实,无论走技术路线还是管理路线,只要是软件工程师,就应该技术、管理两手抓,两手都要硬。做技术还是做管理的选择,只是工作时的侧重点不同而已,不代表另一方面要放松。

来年期望

Work-life balance

「work-life balance」的缩写「WLB」今年在网络上常常会看到,这是因为越来越多的公司明里暗里实行「996」甚至更夸张的工作制度,尤其是被称为「奋斗逼之都」的杭州。

修福报

这也算是去年火热的「996.ICU 事件」的后续,GitHub 上同样有一个列出公司名单的仓库,不过这个名单是遵循八小时工作制的——955.WLB

「工作与生活平衡」就是「work-life balance」的直译,也是大部分职场人所追求的,尤其是已经结了婚的甚至有孩子了的人。追求工作与生活平衡,就得分清什么是工作,什么是生活,以及两者之间的平衡点。

回想过去几年,觉得自己一直在忙。每周除了在公司里工作,下班回到家或休息日在家我还是会去做工作相关的事情,都没怎么好好陪过老婆,也没怎么闲下来去体会并享受其他的事情——精神上那根弦一直紧绷着。

我不想要这样了!不想等人到晚年回想自己踏入社会之后的人生体验时,用一个「忙」字来总结!我的一生应该过得丰富多彩才对,而不是那么单调枯燥!

既然这样,我就需要对「工作」和「生活」下定义,并制定一个「平衡点」。

我判断一件事是应该归为「工作」还是该划分到「生活」,会采取两种标准——

一种是固定的,像公司的工作、自己想做的与有可能成为收入来源的事情必然是「工作」;吃喝拉撒睡等维持生存及保障健康的事情一定是「生活」。

另一种是灵活的,让我感到束缚的,像做 to-do list 中的任务一样的事情,就是「工作」;令我觉得舒服的,能够让我的大脑和心情放松下来的事情,就是「生活」。

就拿看书这件事来说,如果规定自己每天、每周看多少页,每年看完多少本或哪几本,这就是「工作」;若是随心情或根据需要去决定看什么书,看多少内容,那就是「生活」。

至于如何去平衡,无法细化,需要根据几个原则动态调整——

工作日,也就是非节假日的周一到周五,绝大部分时间是「工作」。以「下班」为分割点,一般情况下不去处理公司相关的工作;下班后不看工作用聊天软件,有重要事或急事电话联系。回家后到睡觉前这段时间,可以做 side project,学习或总结知识,陪老婆等。

休息日,也就是非节假日的周六和周日,一天绝大部分时间是「工作」,另一天绝大部分时间是「生活」;默认是周六用来「工作」,周日用来「生活」。休息日进行的「工作」不是公司相关的工作,而是去做 side project 或写文章等事情。

节假日,也就是有法定假期的那几天,绝大部分时间是「生活」,好好陪老婆。

总之,「工作」讲究「快」——时间就是金钱,效率就是生命——高效;「生活」讲究「慢」——用心体会周遭的人、事、物——享受。

完成网站重构

上次网站重构完成是在 2015 年 9 月,距今已经 5 年多了。那次重构的主要改动是:从 WordPress 迁移到基于 Ruby 的静态网站生成器 Jekyll;界面风格大改版,整体看起来更加简洁,文章阅读体验更好。

这次重构是从 11 月下旬开始的,上文已经提到,目标就是将单纯的博客改造成「个人版豆瓣」。

之所以要重构成这样,是因为我想将与自己相关的数据尽可能以我的个人网站为中心进行收拢,而不是继续散落在各个平台,这也是「以个人为中心的服务」的重要意义——一个人在网上的身份应该是个独立自主的「个人」,而不是存活于其他平台所提供的服务中的「用户」。

「个人版豆瓣」应该是什么样子的?

在改造前,我的网站基本只有文章,改造后还应该至少有以下功能模块:

  • 「想法」模块,是像推特、饭否、微博等的功能;
  • 「人物」模块,我的熟人,主要是会在文章或想法中提及的人;
  • 「我的」模块,罗列我想做、在做及做过的事情,如动漫游、书影音等,在做的会记录进度,做过的会打分、评价;
  • 「时刻」模块,我的各项活动所构成的时间线;
  • 「书签」模块,按主题、按类别收录一些有用的外部链接;
  • 「收藏夹」模块,按主题、按类别收录一些站内的内容。

常规的静态网站生成器的数据源是与项目一体的,在重构时我把数据源按模块拆分成多个 Git 仓库分离出去了,然后将它们作为 Git 子模块加到主项目中,再用命令行工具把分离出去的真正的数据源处理成网站生成所用的数据。

这样做的好处是,拆分出去的数据源变得更为独立了,其所用的描述、记录方式不受静态网站生成器的限制,使用起来更加灵活,便于扩展。正因如此,「时刻」模块做起来容易得多了,也为计划做的其他功能打下了基础。

网站首页的「时刻」

上面列出的那些模块基本已经能够看到雏形,就差将分散到其他平台的数据转移过来了,然而这正是耗时耗力的体力活,尤其是在当前这种直接编辑文件的方式下。为了稍微提高点编辑效率,我要做个基于 Git 的 CMS;为了能够随时发想法和方便分享内容,需要做个移动客户端。

当上述事情全部做完,就算重构完成。重构之后,我在其他平台的账号会暂时继续保留,但不太会去积极维护了,留存其上的数据就当作是备份好了。

总结

过往的种种经历及各种「机缘巧合」,在今年促使我确立了发展方向并决定了转型,这离不开我的几个个人特点:追求自我;追求自由;对人(类)感兴趣。

想要做大事,还是需要理想、情怀和使命感的,一心为钱早晚翻车。


欢迎关注微信公众号【Coding as Hobby】(微信中搜「coding-as-hobby」)以及时阅读最新的技术文章~ ;-)

阅读 546

Coding as Hobby
写技术文章就要脸皮够厚;1.不管别人写没写过,比不比自己写得好,2. 不在乎别人会不会打自己脸或者自己...

「反混沌」计划(https://ntks.ourai.ws)发起人,致力于前端标准化、工业化,使前端开发更加有序且可快速装配,为新型开发方式及协作模式做支撑。

1.5k 声望
146 粉丝
0 条评论

「反混沌」计划(https://ntks.ourai.ws)发起人,致力于前端标准化、工业化,使前端开发更加有序且可快速装配,为新型开发方式及协作模式做支撑。

1.5k 声望
146 粉丝
宣传栏