因为一些事情,这篇年中总结迟到了整整一个月。

在长假的结束后,我重新选择了一份“似曾相识”的工作,继续进行少数派的“修行”。在分享这段旅程和思考之前,依旧先来聊聊技术相关的部分。

技术

上半年折腾了不少东西,暂且不提在个人仓库的提交数据和相关技术细节,单是看公开的 GitHub 账号记录:相比较去年年末,今年上半年有了全面的“成长”。

2022年中,GitHub 数据

具体来说,有哪些变化呢?

  • 在继续恪守高质量规范提交的前提下,上半年的提交量超过了去年全年。
  • 上半年中,对各种开源组织和项目发起的 PR 数量是去年全年的两倍。
  • 上半年参与贡献的项目数量超过了去年的总量,截止这篇文章的落笔,目前参与过的开源组织活动有 12 个。

2022年中,GitHub 活跃状况

或许,是作为参与开源社区的回报,在上半年里,我得到了 1000 颗星星的鼓励,我的 GitHub 粉丝数量也超过了 1000 位。通过参考几种不同的在线工具,我目前的账号排名应该是国内排名 500 位左右、全球榜单 4000 位左右。

继续努力学习,继续创造价值,“help the public good” : D

当然,在持续 Coding 之下,我的本地补全模型的尺寸也膨胀到了 940MB。不过工具的自动补全能力却降低到了 22%,相比较之前最高能够到 30% 有不少的变化。这或许是模型膨胀后的必然结果,也或许是我在不断接触新的事务,导致模型还没来得及“完善”,所以自动补全能力低了下来。至于真实结果如何,或许年底总结的时候,会有结论。

在聊完一些容易被观测到的表面数字之后,我们接着聊聊上半年的技术感受,依旧是从折腾比较多的技术中挑选几样来看。

Golang:积跬步至千里

Golang 依旧是非常值得投入的技术栈,简单好用,下限极高,并且下限还在随着版本升级不断提升。在上半年里,我差不多写了十篇和它相关的内容。以及做了好几个和它有关的小项目:有工程效率相关的工具、安全相关的服务、有高性能的软件包、有有趣的实用小工具等等。

我将 StackOverflow 的近五年的公开数据进行了汇总,在最受欢迎的技术排名中(专业用户),能够看到 Golang 每年的相关话题都在不断增长。虽然每年的增幅都只有 1% 左右,但结合作为开发者所能感受到的语言升级、生态完善的速度,这个技术多业务领域开花、得到蓬勃发展是迟早的事情。

StackOverflow 近五年语言趋势(专业用户)

目前 Golang 社区的蓬勃发展颇有早些时候(2013~2016) Node.js 社区的味道。在 CNCF 项目中,我们随处可见的都是 Golang 这个技术栈,并且还在不断增加。作为“云原生”一等语言公民,随着云生态和网络基础设施的完善,变好的趋势应该是持续性的。

Python:强力胶里的排头兵

Python,或者说泛 Python 相关的算法生态:模型、数据、程序,在我离开研究院之后,更多的走进了我的视野,为此也被不止一个朋友打趣的说过。在上半年,我至少写了两篇和它有关的内容。虽然在很多情况下黑盒模型这点还是让我很不爽,但在相对低的使用成本和真香的效果面前,或许也就没那么重要了。

胶水语言中的佼佼者 Python

在接触到 Towhee 团队里的具体的开发者之后,我脑海里对于 Python 固有的印象(“又大又慢”的胶水型语言)开始出现改变,或许是可以变的轻快一些的。同时也对于使用工程化思路优化语言劣势有了一些不同与之前的思考。

如果下半年有机会,我将会试着更多的分享和使用一些“黑科技”,来演示如何从根本上解决“慢的问题”。当然,如果不是和算法相关,没必要死磕 Python,用上面提到的 Go 绝对要爽的多。

Node.js:另外一个多面手

虽然上半年没有怎么写它相关的文章内容,但是我用它快速开发了不下十个小工具,来解决“代码最后一公里”的问题。尤其是和 Golang 联合使用,一个解决性能、一个做一些 ETL 和胶水工作(即使作为辅助,性能也非常棒),真的是不得不说“动静搭配”,干活不累。

尤其在遇到需要解析网页数据的情况时,几行代码解决问题,需要容错、重试、并发,再加几行代码就是了。在代码保护场景上,搭配上 WASM,以及一些额外的手段,能够做到就算交付私有化部署代码,也能够充分保证源代码安全。

有一些变化的 Node.js

但是在长久以来,Node.js 的从业者人数都非常少且集中。在今年开年之后,Node 在全球范围的搜索趋势有了一些增长和变化,搜索引擎里的趋势峰值对于以往几乎翻了一番。不过,如果你尝试从全球角度来窥探使用者的分布,我们不难发现,在过去十二个月里,全球范围使用者前几的城市分别是:杭州、印度的城市、成都、费尔菲尔德、南京。这里包含了机会,也包含了一些从业者容易忽略的事情。

在以往认知中,多数技术栈的从业者分布应该是“北上广深杭等”,Node.js 的从业者“偏偏没有”符合一般规律,国内的用户分布通过搜索引擎趋势来看大抵排序是:杭、成、北、深、上、广。排序的差异,以及传统认知之外的新兴势力的出现,对于开发者和团队来说是好事,同样也蕴含着挑战。

利好的事情,太多人有提到过,这里就只简单的聊聊挑战部分:上半年和一些 Node 业务相关的同学聊过,工作上基本都会遇到“招人难”的问题,从某种角度来说,如果你的团队缺少品牌知名度、地区区位优势、薪酬竞争力,那么想从 Node 人才密度相对高的热门区域、以及某些被法规禁止但是依旧有人涌入的高薪行业“抢人”,显然还是比较有挑战的。在这种情况下,团队和开发者能否继续坚持技术栈、业务能够持续保持高速发展,开发者是否能够获得和其他技术栈匹配的经济回报,也都是有挑战的。

在 Golang 小节中的“趋势图”中也包含了 Node.js 受欢迎程度的数据。从去年开始,Node 突然占据了 StackOverflow 36.19% 的受欢迎的份额,仅次于密切生态“合作伙伴” TypeScript 的 36.42%,并高于 Java 的 34.51%,它们三个家伙,稳稳的成为了“JS、HTML、SQL、Python” 四大流行天王之后的第二梯队。

就潜力和趋势来看,Node.js 也依旧是值得投入的技术栈之一。

Vector Database

和前面几种技术不同的是,向量数据库并非一门语言,从更宏观的角度来看,或许是当前技术能力下,一种对于非结构化数据、多模态场景下的最佳技术解决方案(技术栈)。

是时候开始了解多维的世界了

举个例子,相比较以往在业务和工程中使用的结构化数据,非结构化数据包含太多的高维信息,比如当我们听到一段经典的旋律,想要使用“听歌识曲”功能在几秒内得到歌曲叫什么名字的时候。如果使用传统方式进行检索和比对,那么我们需要针对片段的每一字节和网站所有歌曲内容进行比对和分析,将面临难以想象的计算量,类似的场景还有不少,比如以图搜图、新药研发过程中的化合物结构的虚拟筛选上,都是需要在海量数据里玩“连连看”,而且要求连的飞快

然而,不论是作为在线业务,还是离线数据处理,这类场景所需要的计算资源(成本)都太高了。在真实世界里,如果我们想得到比较好的计算效果,还势必要 “hardcode” 不少东西、基于上一步的计算结果定制一些额外的规则,最终带来的是运行和维护两个方面的极高成本。

向量数据库则是一个取巧的方式,通过对数据进行 embedding,将原始数据转化为一堆向量数据(降维),然后通过数学的方式对向量进行检索和相似度计算。本身计算量就降低了不少,然后因为这类数据计算又能够拆分为并行计算,除了能够在 CPU 里跑,还能享受 GPU 里的并行计算加速,简直是“文体两开花”,实在单机跑不动了,还可以通过云原生的思路,横向扩展计算能力,做到在相同数据吞吐的情况下,硬件成本远低于传统的“解题思路”。而且,还因为不需要在业务程序里写死上面提到的额外逻辑,动动手指调用 SDK 从数据库里取数就行了,这样一套玩法下来,人工成本也能够降低非常多。

图片来自《赋能阿里多业务场景,达摩院自研向量检索引擎 Proxima 公开》

相比较国外,已经有不止一家开始玩云服务赚钱了,国内对于这项技术还处于比较早的状态,所以我开了一个新的知乎专栏,就叫做“向量数据库”,希望能够像几年前在国内分享 Traefik 一样,让更多的人知道和使用上这门“真香”的黑科技。

其他

和去年年末总结一样,基础工具、软件平台以及其他的内容,我还在慢慢往个人“技术雷达”中整理,暂时就不展开了。

写作

来聊聊技术文章方面的分享和写作。

不算这篇文章,上半年一共写了 27 篇内容。从《关于本站》中自动生成统计数据来看,目前的基础数据是这样的: 在今年新增了三十一万字,包含七万多汉字,文章中代码纯度约占75% 。

2022 年中,排除代码后的关键词分析

为了直观的了解网站内容状况,我将文章中的代码全部剔除,将这些文本数据进行了一些可视化呈现。粗略来看,内容还是蛮“干燥”的,这点依旧让我感觉非常愉悦。

知乎:半年多了一百二十万阅读量

今年上半年的知乎阅读量有了更多的增长,相比较去年全年,多了 120 万阅读量,关注者也增加了两千多位。作为一个只写相对干的硬核内容作者来说,真的非常欣慰。

2022 年中,知乎阅读量

因为我开通了好几个不同平台,进行内容发布,从各家平台数据接口中可以看到:知乎的阅读量计算,算得上是一股清流了,曝光(信息流里看到的)和阅读(真实点进去)是分开计算的,希望知乎能够坚持下去。

账号升级 Lv8

在 6 月份,我的账号变成了 v8 用户。对于一个比较“轴”:发专栏文章多过回答,90% 内容只聊技术或者技术实践的账号来说,真的是挺不容易的。因为专栏流量和站内回答相比,大概是1 比 3,甚至占比更低,所以在不少容易得分和升级的区域,专栏作者是比较吃亏的,可以参考我升级前的账号分值维度。

Lv8 之前的账号数据

上半年值得感恩的是,在没有准备的情况下,有幸几次“上榜”。

2022 上半年的创作者榜单

下半年再接再厉,继续分享有价值、有趣的“硬核内容”。

微博:隐秘好友的聚集地

相比较其他平台,微博更注重“高活跃度”,这个玩法对于我这种“周更、双周更”选手来说,得到的正向反馈肯定是不高的。不过,那又如何呢?

我一不带货、二不接推广,这类数据除了在内部发布之后,看一眼觉得自己没白写之外,高兴一下子之外,其实也没啥。对我而言,微博是一个有不少老朋友(前同事)还在玩的 APP,写了新的文章,顺手同步,接着关掉的 APP,至少目前如此。

微博当前一周数据概览

至于身边朋友常提到的微博数据水分,或许需要我能够看到详细数据再做评价。在微博平台上,想要得到类似知乎详细的数据统计功能,需要达到一万粉丝才能够开通。目前的我,只达到了这个要求的 64.3%,想去验证这个问题,尚且早了一些。

少数派:需要克制发布内容的白月光

微博当前一周数据概览

上半年在少数派,发布了一万多字的内容,整体阅读量相比较去年年末,增长了十万以上。

少数派的读者中虽然有不少程序员同行,但是更多的是数码、科技爱好者,而非从业者。所以在发布内容的选择上,我会倾向尽可能发布“结果”,而非过程。授人以渔是平台欢迎的内容,但是如果代码含量太高,就显得有点“低情商”了,平台对你友好,你应当“报之以李”,而不是只考虑一小部分用户喜好,为多数读者带来“再清晰也还是专业晦涩”的内容。

基于上面的考虑,我写的许多内容,都没有同步到少数派,或许在下半年,我会尽行一些内容调整,在少数派活跃一下 :)

CSDN:倍感惋惜但保持一丝期待的平台

CSDN 上半年数据概览

关于 CSDN,有一些一言难尽,尤其是身边有不少 CSDN “出来的人”。在其他的平台上受到欢迎和关注比较多的技术干货,在这个平台上会遇到“晚熟”的状况。

对于上面的平台而言,对于创作者的正向获得感有一些弱,我目前还在这里同步内容的原因,可能是出于两个角度的考量:我希望我的网站流量能够被这类网站拆分掉,降低我的服务运行成本;CSDN 每周发布内容登录的时候,能够看到 99+ 的新增关注(笑)。

CSDN 某次会议偶得

相对庆幸的是,整个社区生态下聚集着不少“好的人”,只要人不散,总归生态和氛围会慢慢变好。

博客统计数据

上半年偷个懒儿,不跑日志数据了先,留到年底再说。就先看看“统计工具”的数字吧。

Google Analytics 2022 Q1-Q2

概览数据对比去年全年,还是略有一些提升的,尤其是在会话时长、浏览内容数量和跳出率这块。此外,老用户也越来越多,值得高兴。

Google Analytics 2022 Q1-Q2 访客区域

网站访客的地区分布和去年全年相似,看来去年年底开玩笑说“老外端着翻译软件看中文文档” 应该是实锤了。

Google Analytics 2022 Q1-Q2 访问时段

访问时段的数据,依旧是一周七天、一天二十四小时基本都有人在浏览内容。

百度统计 2022 Q1-Q2

得益于广告拦截软件,百度统计的数据,也依旧是“日常”少于 Google 数据。(Chrome 部分广告过滤插件似乎会对 Google Analytics 网开一面)但是,今年上半年的数据,差不多已达到了去年的 80% 的全年数据,还是让我挺惊讶的。

百度统计 2022 Q1-Q2 访问区域

百度在访客来源这块的数据,目前已经点亮了全国各个省份,从排名来看:广东(深圳、广州、佛山、东莞)、北京、上海、浙江(杭州)、江苏(南京、苏州、无锡徐州)、四川(成都)、福建(厦门、福州)、山东(青岛、济南)、湖北(武汉)、台湾天津、河南(郑州)、湖南(长沙)、香港、陕西(西安)是排名前十五的区域,这里加粗的地区是对比去年有顺序变化的地方。

或许,在今年环境变化之后,工程师的就业分布也有了有一些变化。这些区域中或许会衍生出不少“远程工作”机会,以及不少面向开源商业化的新独角兽,拭目以待。

工作 / 事业

在以往总结中,我会列举一些清单式的观点。这一次总结,我想试试写成简单的故事。或许,对于有相似经历的同学会更有帮助和启迪。

慢下来,想清楚,谢谢你

“2021 岁末总结”中,我有提到过:我在 2021 年搞完第三届智源大会,选择离开研究院之后,我开启了职业生涯中的第二次 GAP,用来休假游戏、思考过去用忙碌选择性逃避的事情、思考角度不够全面而被忽略掉的事情。之所以会第二次这样“任性”选择 GAP 去思考,现在想来,除了有客观原因之外,主观上,我真的太需要休息了,疲惫感已经无法通过 Coding、和朋友聊天等方式来疏解。

上一次这样任性选择,还是在 2018 年的时候,同样感觉是“疲惫”,这一次的疲惫没有了“因为业务不认同”的原因,但是多了因为各种事情带来的“身心俱疲”,在工作上总有一种“倚天屠龙记”中“谢逊空有一身武功,但只能用七伤拳狂打空气”的感受。

除了疲惫之外,成长见顶也是一个比较棘手的问题:在发现职业成长到顶之后,单纯的“熬”对于还有选择机会的我,并不是一个好的选择。那段时间,身边还在之前公司的同学,纷纷股票套现,对于一个扔掉股票跑去研究院用爱发电的人来说,对于家庭和另一半的愧疚感,让我不再能够泰然的在研究院里,继续作为人工智能领域的一块基石。

当时院领导出于好意挽留,尝试帮助我立一个创业项目,恰巧那个时间点上,正和一个朋友相聊甚欢,甚至一度准备进入他的初创团队,一起做一些事情,去“蓝海”市场闯闯看。然而,在简单合作的过程中,发现有一些不太对劲。巧合的是,这件事和研究院内立项前后脚结束,于是我也就开始了正式的休假。

这段时期,我以顾问而非雇员的身份,偶尔帮助朋友做点事情,除了保持与外部接触之外,也能够有一些经济的缓解。这里最感激的人是媳妇,在我极其疲惫的时候,支持我动用家庭储备金来离职休假,支持我进行思考和准备,支持我进行一些试验和准备:让我尽可能想明白、试出来,我到底还差什么

需要致谢的人太多了,有朋友说我总是正能量满满,其实不是的,我也有消极的时候,但是身边正能量的人多,很快就把我的消极解构掉了。

环境、风向、选择,改变

虽然有了上一次的 GAP 经验之后,这次心态上能够从容到不会因为身边人着急而焦虑。但是,2021 下半年 ~ 2022 周围大环境的变化、带来的行业震荡,还是引起了一些焦虑。因为不仅是行业环境有了变化,融资环境也有了非常大的变化,即使家里还有余粮,但是不确定能否扛过变化周期,等待环境变好带来的焦虑,让我始终很难下定勇气:完全豁出去,把之前在研究院立项时提出的项目,当作唯一的事业来做。

并且,在我计划的项目所在的垂直领域中,取胜的关键因素,并不仅仅在性能和开发者体验几个点上,拥有更高技术壁垒的东西方面(例如结构化数据之外的业务数据),我的技术储备还远远不够。尤其是在一个老朋友和我聊到他们处理的业务数据包含了一大堆发票、包含复杂内容的 “Excel” 的时候,我感觉到了我预期玩法和真实场景的差距

所以,在固执的坚持完六个月的休假,暂时刨除掉“直接创业”这个选项之后,在 2022 开年,我开始了集中面试。过程中有朋友帮推荐、有通过社交软件沟通的机会、还有在招聘工具上主动投递的机会。在这个过程中,我经历了迄今为止,最多次的经历介绍,感谢在这个时间段里,不断呼唤我回去的曾经的“战友”。

在排除掉“需要从零到一搭产研团队的活儿”、排除掉“明显有问题的地儿”、甚至“期望我降低现金和总包”的一系列“机会”之后,在 2 月份,前后脚收到了两家公司的联系,都是我曾在研究院时,有听过或参与过投资评审会议的项目公司,非常巧的是:他们都在找技术布道师,这个我在 2018 年回到美团时担任过的岗位

其中一家公司的第二轮面试官是一位非常年轻、很聪明的同学,技术储备意外的多,依稀记得我们聊了非常非常多技术的细节,找到了入行前几年时去淘宝、美团和小伙伴聊技术的畅快感。但是,让我印象格外深刻的并不仅仅是技术,而是在我尚未开口询问之时,就主动和盘托出的公司历史问题和当前的状况,当时我只是知道之前单位对于这个项目的投资意向很好,并不知道这家公司曾经发生的一些事情。这位同学的坦诚搞的我竟有一些不知所措。

在随后的面试中,另外一位面试官也是如此,让我打消了多数疑虑。过程中留给我比较深刻印象有三句话:“help the public good”、“do what is right, not what is easy”、“give and then take”,除了最后一句之外,前两句分别是我的 GitHub 上其中一个 star list 的分类名,以及 15 年从杭州回北京后,朋友圈的一直以来的签名。打个比方,你把写着你想要追求的价值观的纸条放在了两个大房子的不同的屋子里,有一个陌生人突然分别找到了这两个房间,然后径直走向了屋子,准确的拿起了纸条。

于是,我觉得没有必要再继续准备面试,或者其他的规划了。

输入、输出

坦白说,自 2017 选择从阿里云去创业公司开始担任部分管理职能之后,在接下来的很长很长的一段时间里,因为不停的在做从零到一的事情,在工作中的输出远远大于输入。

同时,非常缺少同龄人的刺激和对照,身边的同事、“老板 / mentor” 普遍能够使用“老”+“姓氏”的组合来称呼。身边拥有大量年岁颇长、又不嫌弃你的前辈是好事,同时也是遗憾。你能够拥有大量能够指导你的前辈,好比是有人在直接为你“传内力”,但是缺乏同辈切磋、对比的环境中,很容易空有内力,而缺少招式。从而在职业历程的自我定位中,要么定的过高,夜郎自大,要么定的过低,妄自菲薄。在新环境里多了不少同龄人之后,感觉还是很棒的,尤其是可以“以人为鉴”的时候。

除了同龄人这类外部环境刺激、容易激起胜负欲,让你跑的更快之外,一个合适的角度,则更适合客观地观察创业过程中:一个组织的成长变化,过程中产品的取舍,不同时机下不同策略的选择。

既能够收获相对正确策略的经验,也能够看到不少可以改进的地方,作为过程的参与者,这些经验或许会在未来的某个时刻,转化为宝贵的财富。

生活

今年因为一些原因,我和媳妇囤了一些物资,包含毛孩子的口粮和猫砂,因为那段时间囤的比较多,为了消灭库存,喂两头家伙的量也就更大了,所以,它俩更肥了,每天原地起飞,跳到身上的那一瞬间真的是吃不住。该怎么让它俩减肥呢?

越来越膘肥体壮的猫

在经历了漫长的求学生涯之后,媳妇也算是得偿所愿,进入了国内她喜欢的学校继续深造,是一件十分令人开心的事情。

坦然面对一切的媳妇儿

从去年到现在,我大概经历了完整一年的 “Remote Work”,也算是一个奇妙的经历,绝大多数时候的效率远超线下办公。或许在未来,这个行业再继续发展下去,大家的工作模式会产生更多的变化,国内会出现更多的类似 HashiCorp 这种酷公司。

除此之外,一年里,我的行车里程数据也有了质的突破。当然还是很菜,期待完全自动驾驶时代的到来吧。

2021 ~ 2022 我的行车里程

游戏

今年开年之后,只通关了两个游戏:

  • 《真女神转生 V》
  • 《宝可梦传说 阿尔宙斯》

然而,直到现在都还没来得及写游玩攻略的记录。下半年的什么时候,抽空把游玩攻略补上,时间太久,恐怕会忘记游玩时的触动。

硬件

今年上半年,折腾了不少小硬件的 “SOTA 实践”,比如:

  • 针对于《Apple 老设备(系统)精简记录》
  • 用老设备折腾出通知设备、HomeLab 监控。
  • 稳定的将不被 jailbreak 支持的老设备,稳定的降级,获取权限来获取高性价比的有趣小设备。
  • 以及花费数个周末,慢慢重建和整理每一块磁盘的数据。

最让我期待的,莫过于拥有联合内存的 M1 芯片设备,上半年尝试发现 PyTorch 兼容性还存在一些问题,或许在下半年能够成为廉价的炼丹神器。

最后

2022 还剩下 21 周,就先写到这里。希望在年底复盘的时候,我依旧不曾虚度时光。

–EOF