学习
学习可以分为两个核心过程:记忆与抽象。
传统观点认为,记忆依赖重复:
- 短时间内重复的内容越少、重复次数越多,记忆越牢固;
- 反之,若一次塞入大量内容,即使重复,也难以深入记忆。
因此,人们常通过精简信息来提升记忆效率。例如,将"long double 在不同平台上的长度不一致"简化为一句结论,以减少认知负担。
但最近我发现:适当增加"易于吸收"的背景知识,反而能增强记忆效果。
比如,了解以下背景:
1980年代初,Intel 推出了 x87 浮点协处理器(8087),采用 80 位(10 字节)扩展精度格式,显著提升了科学计算的精度。
Linux 和 GCC 选择充分利用这一硬件特性,将long double实现为 80 位;
而 Microsoft 在 Visual Studio 中则采取保守策略,兼容性优先。将long double等同于 64 位的double。
这段看似"额外"的信息,因其具有历史脉络、技术动机和对比逻辑,反而更容易被记住——甚至比孤立的结论记得更牢。
建立联系
这让我意识到:有效的记忆不仅依赖重复,更依赖"联系"。
这种联系有两种关键形式:
向外连接(教学视角)
将新知识与学习者已有的知识网络通过故事性、情境化的方式连接起来。例如,用"Intel 为何设计 80 位?"这个问题,把抽象的数据类型与真实的技术演进挂钩。
关键在于:找到那个能触发共鸣的"锚点"——它可能是历史事件、生活类比,或一个引人好奇的矛盾。
向内连接(自我解释视角)
在尝试向他人解释前,先自问:
- 我会问自己哪些问题?
- 是否用陌生术语解释了另一个陌生术语?
- 小学生能听懂吗?
- 能否换一种更直观的说法?
这个过程迫使你反复梳理逻辑、提炼本质,本质上是在重复中完成抽象,在抽象中强化记忆。
正反馈机制
但仅有联系还不够:学习必须有明确的正反馈机制
就像游戏通过音效、金币、等级等即时、直观的反馈激励玩家持续行动,学习也需要清晰的"进度信号"和"成功标志"。否则,极易陷入两种陷阱:
- 过度发散:例如初学 C 语言时,执着于深挖
printf的源码实现,而忽略了基础语法体系的完整性; - 方向迷失:没有阶段性目标,不知道"学到什么程度算掌握",导致焦虑或低效重复。
因此,好的学习规划必须包含可衡量的标记:
-
✅ 好的标记:
- "本段需全文背诵"(可自我检测)
- "能独立写出一个使用 long double 的示例程序"(行为可验证)
- "能向同学解释为什么 GCC 和 MSVC 对 long double 处理不同"(输出即检验)
-
❌ 模糊的标记:
- "重要知识点"(重要到什么程度?怎么验证?)
- "理解即可"("理解"是主观感受,容易自我欺骗)
这些明确的反馈节点,不仅提供成就感,还能划定学习边界——知道何时该深入,何时该暂停、转向下一模块。
高效学习
高效学习 = 联系 × 重复 × 反馈
真正的学习不是被动重复,也不是无边界的探索,而是在建立联系的过程中,通过有反馈的重复与抽象,逐步构建可验证、可迁移的知识网络。
技术
𝝅ython
现在的Python 就像是这几年的英雄联盟,你想新手入门到大师,需要了解上百个英雄和技能和游戏机制。
前期是非常痛苦的,但是一旦上手你就会想:好久没有新英雄了。多出几个吧。
Python 的基础已经很久没有新鲜玩意儿了,我希望多出几个。
重做对新人也很友好,新选手永远有机会,假设当某一个特性被重做了,那么我之前的所有的熟练度都消失了,新人和老人站在同一跑线上。
面向服务器管理环境
相当长一段时间,我被教如何给windows配置环境变量,也在这样教别人。
如果你只是一个初学者,或者你本身不是编程人员只在找"他山石"。那么这样做是没有问题的。
但如果要真正的从事生产开发的话,你的所有的环境管理一定是面向服务器的。服务器很少是windows环境,大部分是Linux环境,你所学习的内容无法帮助你解决工作的环境管理问题。
所以首先我要反思的就是我花了太多时间在windows的环境管理和设计上。所有的工作都应该基于Linux,面向服务器。
过早设计项目
但现在回过头来看,当年设计的项目其实都非常的愚蠢,就是你在学习了一些基本的代码知识之后,然后你用它去实现完成的项目往往包含着:
- 大量的重复;
- 没有做到一处修改,处处生效;
- 非常长的if else;
- 相同函数的复制粘贴。
随着年纪的增长,你对项目的结构会有相当大的变化。
这里也许有人有争议,心想如果你之前不做那些愚蠢的项目,你后面怎么能够量变引起质变呢?
当然有可能在代码的一次又一次重构过程中堆积的能力是一次又一次的提升。会对设计模式的理解更加的深刻。
所以这里是一个保留的争议项。
专注
许多有价值的项目都有着大量的成熟产品的替代,在发展过程当中也有可能有别人会来抢你的饭碗,应该坚持找一个方向持续不停的把它做下去。即便大厂和你相似,你也能够聚焦某一个细分领域,把它做得出彩。
项目不在于多,而在于精细、深入。
很多人在大学期间就开始尝试构建自己的影响力,比如说做自媒体或者是做技术科普或者做产品,那么我的方法是写博客,那这种影响力其实相对比较低的。他也和我自身的性格有关,我认为我只有在某一个领域走得非常深入,我才有资格向别人传授一些东西。
现在看来,其实你并不用做到像Python核心开发者那样才可以去教一些Python内容,你只要把某一个基础的东西讲的很清楚,你就可以去做自己的影响力内容,比如说很简单的列表。你可以用动画的方式把它呈现出来,你可能没有那么专业,但特别好懂。
低代码工作流平台
所有的数据通信都是通过网络来完成的,也就是一个再简单的图片拼接,这样用opencv几行代码就能完成的工作,你也需要配置一台服务器,然后给他写上各种参数,无疑是增加了一些成本的。
有一定成本的免费服务往往不可靠,在低代码平台当中想要编写一个健壮的工作流,需要额外增加许多节点。 而一旦有一个节点失效,他就会整个工作流崩溃。
低代码工作流不可靠,玩一下可以。别当真了。
风险
谁承担风险,谁做主要决策。避免不对称的风险,是我们的必修课。如果你承担大部分风险,但是仅获取少部分利润。
例如公司希望你调整自己的职业发展(你承担大部分风险),但是利润并没有额外分配给你,这就是风险不匹配。