失业第二个月干了什么

2025-07-20

今天是 7月20日,距离 5月20日已经两个月。失业第一个月的时候,简单写了《失业一个月的回顾》复盘第一个月的情况,其实第一个月的学习节奏很紧张,事不少。现在失业第二个月了,记录一下第二个月干的事情,或者说回顾一下第二个月的学习成果。

(1)从计算机科学班顺利毕业

算是心里的石头落地,学也学完了,接下来好好复习、好好找工作。这个课程还是给我带来了不少信心的,否则我现在一定心态爆炸,我会有很多疑问:“区块链技术到底有啥好学的?”、“我已经接触过很多区块链技术和项目,你让我学啥?”、“面试不通过,你觉得我不会什么?”。这个课程,让我在心态上更加脚踏实地一点,挺不错。

对了,顺便提一下,在区块链的技术领域里,Uniswap 这种东西在技术上,对于我这种 “技术层级” 来说,不值得研究。不是说我不需要去学习,而是从自学的角度,搞明白这个东西没有什么难点,也无法给我带来技术上的成长。这话是 ChatGPT 说的,不只是我自己瞎琢磨,我之前就写过 为什么不要做 DeFi 开发 的文章,里面的道理不全对,但也不是完全没道理,我没给 ChatGPT 看我的这篇文章,但是 ChatGPT 的观点和我一样,而且比我分析的更全面更深入,算是间接验证了我的观点。

为什么刻意提 Uniswap 呢,因为我在 之前的文章 中列出了一些学习计划,现在回头去看,我确实是在按照那些计划在学习的,DeFi 项目是计划之一,所以我在考虑要怎么学,以及适当调整当时的计划。

(2)给解释器写了简单的 parser

目前支持变量定义、函数调用等语法,虽然不是纯函数式写法实现的,但仍然能工作,比如执行这样的语句:

// (x => y => x + y)(2)(3)
var s17 = "(call (fun x (call (fun y (+ x y)) 2)) 3)";

show( execExpr(s17) ); // 5

虽然语法非常简陋,功能也不全,但是不打算进一步完善这个 parser 了,这本就是课程内容之外产生的想法,简单尝试一下就可以。另外如果对 parser 的地位感兴趣,可以阅读王垠的这篇文章《对 Parser 的误解》。

(3)用其他语言实现解释器

我用 Java、Go、Python 语言分别写了一遍解释器。加上课程中学习的 JavaScript 和 Rust 版本,现在解释器已经有 5 个语言的版本了。对于解释器这样的程序,语言其实不是关键,语法差异没有那么大。

(4)学习 Solana 合约开发

包括 Solana 的账户模型、SPL 标准库、SDK 调用等。感觉这种用户层面的技术,没有太多值得深入的地方。如果要深入去理解 Solana 的架构和 eBPF 的技术原理,倒是有进一步的学习空间,接下来也许可以考虑下这个方向。

(5)学习比特币脚本开发

用 btcdeb 观察脚本执行步骤、使用命令行工具构建、发送 P2PKH、P2SH 交易等。教程文章里里没写多签和 HTLC 之类的内容,因为比特币脚本都是命令行操作,这种复杂的逻辑涉及到大堆数据,写出来不方便看,还得找到上下文的对应关系,比如解释解锁的是哪一笔 UTXO,这种过程用文字的形式不太好写。

(6)第二轮做完计算机课的练习题

上个月就已经第二轮做了 1~7 课的练习题,这个月只需要完成剩下第 10 课和 3 个隐藏关。

(7)学习比特币 Runes 协议

自己试着开发了一个比特币 Runes 协议的原型。这也许是博客里最后一篇教程类文章,以前是不太写这种实操教程的,因为太过基础,没有技术含量,更没有深度或者思考和观点,最近写了几篇,一方面是边学边写,自己也顺便折腾一下,另一方面是,这个教程多少有点价值的地方在于,步骤肯定是可以复现的,因为我自己都亲手执行过,在网上找的教程,或者 ChatGPT 生成的教程,不一定能跑通。还有一个小原因,就是计算机课程里的练习题,虽然内容基础,但是质量很高,我有点想模仿尝试一下写这种基础教程。

最近的几篇教程足以说明,这种基础操作,只要想学就可以学会。很多时候,不明明白白的写出来,别人就觉得你不会,但实际上这些东西真的不难。接下来我不继续折腾这些基础的东西了,得去做点别的事情。以前偶尔也怀疑,老是写一些宏观的观点,是不是没有技术含量,会不会显得动手实践的能力差?但是事实证明,动手实践才是学习成本低的事情,最有难度的还得是总结性的观点。

(8)不断面试

这一个月以来,从 6月20日到 7月20日之间,一共面试 12 家公司,一共参加 17 次面试。

这个频率不算很高,但也需要花不少时间,主要是得耗费心情在里面,一开始以积极的态度去面试,觉得这家也许有合适的机会,但是聊下来却不合适。这样的情况反复经历的多了,心情其实会不是很好,感觉浪费了期待在上面。职位不合适也能理解,但是如果频繁遇到不靠谱的面试官,会逐渐有点越来越受不了。毕竟面试这件事情,唯一的对手方就是面试官,而我最近老是在面试,有时候难免想对面试官发表点意见。

找工作这件事情找的都有点无奈了,到后来感觉面试面的都累了,不断反复自我介绍、反复讲解自己过去做的事情、反复描述我对某些技术问题的看法。这些面试官能问得出的问题就那么些,我都总结出规律了,所以很多面试我就感觉是在重复。偶尔有面试官提到了新鲜的问题,让我对某些技术有了新的感受,这些面试官我觉得挺难得,也会给他们好评。很多时候我面试是抱着学习的心态,了解下行业的变化、交流下项目的情况,并没有那么在乎职位是否合适、面试结果如何,所以如果在面试中学到了什么,也会挺感谢这次面试的机会。

那么我现在是否对工作的的事情感到焦虑呢?其实好转很多,失业第一个月的回顾文章里,明确写了当时的烦躁和焦虑(要是没写出来我现在自己都忘了),现在失业第二个月,情况反而变好了,因为我知道自己在不断努力,学习新技术、沉淀计算机基础技能,我没有理由 “失败”。何况我有很好的女朋友,没工作算什么呢,有一个善解人意又漂亮的女朋友,是很多人 “梦寐以求” 都没有的,我却长时间以来一直在忽略她的重要。为了寻找合适的工作机会,我也有过去上海、香港的计划(不考虑深圳,在币圈“深圳盘”很有名),但是仍然在考虑具体的方式和时机。

有时候我也会想,过去的种种职业选择是否错误?只能说塞翁失马,没人知道对错。过去的选择有得有失。我现在不到 30 岁的年龄,去上课学习知识,去对自己未来的职业前景充满信心,去不断自学提高技术能力和见识,这些绝对不是一件错误的事情。我为什么会对自己有比较高的期望呢,也许是因为长期关注区块链行业,这个行业充满了各种故事。我的出身并不好,学历也不好,似乎没有什么理由让我 “应该成功”。不过我在学校的成绩还不错,只比同类优秀就是了。也许从那个时候开始,我逐渐对自己有了更高的期待。后面在职场中经历各种事情,更是没能明白什么样的人是优秀的,因为我没遇到过。

我期望的生活是什么样的呢,我只不过是希望赚点生活费维持生活而已,这没多少钱,在互联网行业不算多,在币圈更不算多,我经年累月的学习和努力工作,甚至忽略了很多普通生活的元素,如果最后落得找不到工作的下场,也挺奇怪的。人生的意义是什么呢,那些有钱人,那些巨鲸,他们随便的零花钱都够我一辈子的开销,他们在为什么努力,想要的是什么,他们有没有好好学习技术,有没有积极提升自己,他们又在为什么而发愁,在担心什么事情呢?

(9)制定后续的学习计划

后续计划主体还是计算机课相关的,重复做练习题。现在已经第二轮做完了练习题,接下来可以进行第三轮的复习。

  1. 阅读 Groud-Up Computer Science 全书,加深对课程内容的理解。学习节奏应该放缓,慢慢看,慢慢理解,慢慢练。不是为了偷懒而降低学习节奏,而是避免错过什么内容,欲速则不达。

  2. 阅读过书籍后,开始第三轮做计算机课的练习题。学习节奏要放的很慢,一天最多做一道题,主要是留给每一道题充分思考的时间,确保理解透彻。也许按照这样的节奏,需要几个月能完成整个轮次的复习。

  3. 系统学习 continuation。不是报王垠的 continuation 专项班,而是自己学习和研究。我相信自己现在完全有能力,不仅学会和梳理清楚这些知识,还能整理出完整的练习题或者教程。

为什么我的学习计划,非要跟这个计算机课的练习题过不去呢?我之前在总结 区块链面试题 的时候有提到,经过这几年在区块链行业实际的工作,我反而越来越搞不清楚 “区块链技术” 是什么了,相比之下,拥有基础但扎实的计算机功底很重要,尤其是高度抽象的思维方式,能够脱离语法但理解编程语言的学习方式,值得反复琢磨和掌握。我曾经以为好好钻研区块链技术,就可以逐步提高自己的技术能力,水平上超越所谓的计算机基础班,就可以深入研究到某些区块链原理,深入再深入。然而事实上不是那样,区块链技术……我越来越不知道该学什么。

我之前大量关注区块链共识的原理。为什么关注的不是其他技术原理,比如加密学、分布式网络、储存系统等内容?因为只有共识是区块链特有的,其他的都是普通的工程上的技术,甚至包括智能合约的实现。而且智能合约还不是区块链必需,可以有也可以没有。至于 Layer 2 之类,也完全是工程上的尝试,哪有什么可以抽象的理论依据,挑战期、赎回期都是业务定义的逻辑。所以综合来看,区块链技术……到底是什么?

(分享个有意思的东西,我最近在研究 Georgios Konstantopoulos 这个人的技术能力和技术成果。Georgios 是 Paradigm 的 CTO,他的 个人主页 上展示了很多区块链相关的技术内容。那么问题来了,你觉得 Georgios 的个人主页和工作成就,有没有解答我对于 “不知道区块链技术是什么” 的疑问?)