开始之前先说一件刚发现有趣的事情。上一篇我以为没人在乎、在朋友圈发过一次之后就再没理过的文章,昨天还新增了2个阅读。
可能有经验的人觉得很正常,但这对我来说还是很出乎意料的:没想到一个纯粹写给自己看的破玩意儿在十天过去之后还有人来看……

顺便插一句,在上一篇文章发出去之后的两分钟后开始,我的心态就发生了一些改变,并且在这十天内有很多有趣的发现和想法(这也印证了我的一个观点,即做一件以前从没有做过的事情的时候,通常会有很重大的新发现)。
我琢磨着过段时间想法成熟了,可以单独写一篇文章,复盘我这十多天的感受。
不说废话了,三月记录走起。
/ / /
一、三月份我开启了啥新项目
可能跟有些朋友想象的不同,我没有做上篇文章中提到的种种音乐类的、运动类的事情。我在沉迷研究区块链和python。
(我甚至还记录了在不同的时间段我大概在干什么,感觉可以等100小时后做个图梳理一下)
简单说一下我为什么选择了这两个项目。
想学python的原因很简单。第一,我之前接触过,并且用它爬过旅行网站的评论,然后做了个词频统计(虽然我现在都忘了当初怎么做的)。我想借此机会重新学习一下。第二,也是更重要的一点,我一直没有搞清楚计算机是如何拥有“做事”的能力的,我想借python的机会尝试一探究竟(我因此还顺便看了点有关PN节、三极管之类的内容)。

想了解区块链的原因就有点复杂了。
过年的时候,我坐在小板凳上和家里的老人一起看电视。新闻在播报ChatGPT的事情。我突然有个想法:我身边的这个人,他会对自己走后的世界变成什么样感兴趣吗?会好奇未来的生活会是什么样子吗?
我没问,但我觉得我会。
紧接着我突然意识到,没有谁可以继续观测自己走后的世界是什么样的,但至少,我可以紧盯现在世界发展到什么地步,这样至少不会太亏。
这算是我想法的一个原点。
区块链我19年的时候读过一点资料,但没有仔细研究过它从本质上究竟是什么。我对这个问题一直是很好奇的。于是就趁现在这个机会,给自己100小时的时间,去好好研究一下它到底是啥。
(当然我后来方向走偏了,这是后话)
二、我学得怎么样了
这是我有点苦恼的地方。从项目一开始,我就很明确,自己要靠“做点东西”来达到学习的目的(这个想法是Scott Yang传递给我的,通过直接实践而非看书听讲座来学习)
然而我苦恼的是,我目前没有任何感兴趣的项目,是想要通过python来完成的。从文末的图也可以看到,我后来沉迷于区块链,把python搁置了。
我反思了一下,我觉得我需要再持续学习一段时间,了解python可以做哪些方向的东西。然后再想办法给自己找个有意思的课题。

而区块链就很有意思了。
一开始,我在Coursera上找了门课去听,然后一步步跟着步骤去学。读了些解释原理的资料,把比特币白皮书也看了一遍。前十个小时都是在理解原理方面的东西:公私钥,HASH,Block Header,等等。我甚至还读了本讲解信息安全的书,来理解区块链要通过设计手段达到信息安全的哪个目的。
在过程中,我时刻提醒自己:哪些东西是你要理解的,哪些是记住就行无需理解的,哪些是要不断实践形成肌肉记忆的(框架来自《超级学习者》,只不过术语被我改了)
然后我发现那个Coursera的课太差了(仅针对我这种小白,并且听印度口音很吃力的人)。我所吸收的主要都来自于网站文章或者Youtube。我感觉自学这种事情,找到好的资料真的是很重要的。看了很多资料都没搞懂公私钥,结果一个6分钟的视频帮助我瞬间理解了(油管上一个叫Public Key Cryptography - Computerphile的视频,感兴趣可以搜一下)。
话说回来。最初的几天,我很难理解为什么会形成链条,也很难理解为什么信息不会被篡改。我找到一些形象的图来辅助。


然而当时的我还是难以理解。一天晚上,我决定通过类比的方式来提高效率。我闭上眼睛,想象出一个立体空间,在那里每个人都会很快生一个长得一模一样的下一代,然后“啪”地把自己的手印摁在下一代身上(这样自己的指纹就留在下一代身上了,并且下一代体内有自己的基因)。
大概是这样

(不过我想象中的是啪在脑门上,毕竟在header里嘛)
很多代以后,大概就是这样

(当然,我现在已经不这么想了,尤其在看了肖臻的课以后这个模型 bug 太多,没法解释很多细节上的东西。但当时这个想法让我勉强理解了为什么中间的区块是无法被篡改的)
在看了一些基础理论以及区块链的应用之后,我又返回来看了肖臻的课(从理论到实际再到理论)。有了前期“凶残”的模拟,这一次看得就很轻松了(而且课讲得层层递进,不停地抛出新问题,比coursera上的那门课讲得好多了)。
于是我在想一个事情:所走的弯路究竟算不算是“弯路”。没有我自己尝试性地模拟和探索,后期在听课的时候理解地也肯定不会比现在的好(当然也许先看这门课会发展得更好,这东西目前没法作对照)。
另外一点就是,在初期学习一个东西,最好先通过多种方式快速把框架搭建起来。如果有些渠道的信息发现很难理解,那么快速放弃,寻找其他方面的信息,努力和自己已知的东西链接,先把架子搭起来。这可能是摆脱“过早引用”的一种方法。
如果无法和已知的东西链接,那就用类比的方式,降低认知负载,先把这部分内容囫囵吞枣下去,日后再找机会慢慢回顾。

另外还有一个有趣的发现,因为我勉强补习了十几个小时python,在看区块链课程的代码部分的时候,好几个地方我竟然意外地听懂了(遍历、对象等等)。虽然这事不奇怪,但这种联系是我在开始两个项目的时候没有预想到的。
还有个问题是有关于实践的部分。我得想点办法通过实践加速自己的理解。
一开始,我琢磨着针对区块链写一篇类似essay的文章,通过这种方式来强迫自己多看点东西。后来对应用产生了兴趣,打算通过实操来学习。
现在还没想好,反正得弄点东西出来。最次在100小时结束之后,要写点自己对它的理解。
python就更好说了,做个项目就行了。虽然这个玩意儿我一直没想好要做啥(或者你们有啥需求,我看凭借我的三脚猫功夫,能不能做一个出来……)
三、时间进度
区块链:38.5小时
Python:15小时

注:这个时间基本上是“净时间”,我把中间放松休息的时间砍掉了很多。这样计算下来的结果应该比较精确。
还有就是,为什么我选择两个项目一起进行——我提前大概能感觉到自己是个三分钟热度的人,因此两个项目一起来可以阶段性换换脑子
/ / /
文章的最后,想聊点别的。
我脑中有个“奇怪”的想法:我想做些实验,让自己努力去达到目标,然后失败。我给自己定的计划是100次失败(这目标太奇怪了,而且数量太多,不知道有生之年能不能达到)。
即:我想体会100次“用尽全力然后失败”的经历。如果其中有些实验成功了,那么这一次的经历就算是失败了(因为没有达到“失败”的目标)(好拗口)。
这想法太奇怪了,我得解释解释。
回顾过去,我仅能挑出很少有的重大失败的经历。倒不是说失败次数太少,而是绝大多数的失败,我都可以清晰地看到,我在其中并没有用尽全力。
因此,我绝大多数时候的态度都是:我没努力嘛,要是我努力了也肯定不差。
换句话说,我经常习惯性地以“我要是尽全力我也可以”的态度,来逃避“我可能真的不行”的事实。结果就是,我回忆中“尽了全部努力然后失败”的次数局指可数(我目前想到的只有一个……)。
这次数我觉得实在是太少了。我想多挑战几次,然后认真地体会失败带来的感觉。
而且我总觉得,失败的次数越多,可能越是一件好事(纯主观,我还没从逻辑上想清楚这是为什么)。
解释清楚之后,我很快就想到了第一个目标:
年底之前6个月之后,我希望这个公众号能有1000份订阅。
说出这个话我心里是很没有底气的,因为我觉得我99.9%的几率达不到(我自己的微信好友都到不了这个数)。这意味着,我写的东西必须要能对陌生人有所帮助,且必须持续性的有帮助,而且还要能在一定程度上传播出去。
但它也不是没有可能,只不过太难了。我估摸着这是个很好的会“用尽全力然后失败”的例子。

可能前面也看到了,我本来写的是年底,写到后来把它删了,改成6个月后(即9月底)。年底太久了,我怕我这种三分钟热度的人,会把这个目标给忘了……
再说,时间压缩的越短,我就越有压力,因此更有可能做出一些奇怪的举动来尝试性地为了实现目标去赌一把(比如每个月都发朋友圈,这对我这种曾经几年也不发一次的选手来说很令人恐慌)。根据前面提过的经验,实践没做过的事情的时候,感受也是最不同寻常的。
(还有一个隐约的担心,我怕下半年会比现在要忙,我担心自己没有什么闲情逸致去做实验)
然后我发现一个定义上的问题:什么叫做“用尽全力”?
这只是我想做的一个有趣的实验,我不可能把全部的精力用在上面。那什么叫做“用尽全力”呢?
我慢慢寻思出一个很好的定义,那就是:在我想到一些方式可以帮助我达成目标的时候,我不能因为胆怯而放手(害怕不可能实现、害怕被拒绝、害怕被嘲笑等等)。
如果9月底失败了,我就欢天喜地地写一篇文章,庆祝自己的失败+1,并分析分析这6个月的心路历程。
2023.03.31
