思考 @ 2025-01

Thoughts on 2025-01. Including: How to set an ideal goal? Why am I able to focus when coding?

怎么设计一个理想的计划?

(2025-01-21)
上篇说到, 一个更好的计划 = (清晰的目标 + 可视化进度 + 可调整的灵活性) + (易启动的任务 + 及时的反馈 + 持续的意义感). 我试着进一步分析一下具体的要求是什么.

我喜欢什么反馈?

回忆过去的经历, 我觉得会让我喜欢的反馈有

  • 直接验证型: 程序通过测试; 做题的正确率很高; 证明出来一个我觉得有价值的命题; 学到的知识可以解决一个具体的问题;
  • 记录型反馈: 看到 GitHub 的提交历史满满当当的且结构精致; 把知识用一个我认为简单的框架总结出来;
  • 挑战型反馈: 编程中把自己的算法优化到时间/空间最优; 做出来一道大家都觉得很难的题;

什么对我来说是意义感?

我觉得做一个事情能让我有意义的情况有:

  • 长期战略意义: 学习这个东西能让我更好的理解未来可能会出现的东西(Category theory);
  • 短期实用意义: 学习这个东西能让我未来更容易找到工作(编程);
  • 能解决问题: 学习这个东西能解决一个具体的问题;
  • 内在驱动: 学习这个东西满足了我的好奇心;

任务容易到什么程度算容易启动?

我觉得容易启动的事情有:

  • 打开电脑用C++实现算法的一个功能;
  • 配置一个编程环境;
  • 试用一个新软件;

ChatGPT 总结我可以按以下维度来分类:

  1. 具体性上: 明确具体的任务、探索性的任务;
  2. 难度上: 低技术门槛、低心理负担;
  3. 启动条件: 外部条件简单、无额外决策需求;

怎么让我保持进度清晰?

让我感觉进度清晰的事情:

  • 安装软件的时候有个进度条;
  • 写程序的时候勾选我在一开始规划的子任务;
  • 实现的功能可以让我做更多的事情;

ChatGPT 总结如下:

  1. 可视化反馈: 线性进度 + 任务状态标记;
  2. 累积效应: 过去做过的事情在未来会用得上;

总结

一个更好的计划 = (清晰的目标 + 可视化进度 + 可调整的灵活性) + (易启动的任务 + 及时的反馈 + 持续的意义感).

计划层面:

清晰的目标 = 长期战略意义 + 短期实用意义 + 多个里程碑;

可视化进度 = 线性进度的可视化 + 任务状态的标记 + 累积成果的应用;

灵活性与调整 = 短期调整 + 定期优化;

任务层面:

易启动的任务 = 具体明确可执行 + 有一定探索性 + 启动条件简单 + 无环境依赖;

及时的反馈 = 直接验证型反馈 or 记录型反馈 or 挑战型反馈;

持续的意义感 = 长期战略意义 + 短期实用意义 + 解决具体问题 + 好奇心驱动;


为什么写程序的时候可以很专心?

(2025-01-21)
最近发现我写程序的时候无论吃药或者不吃药, 都可以达到忘我的状态. 但是写数学的时候好像就很少有过这样的情况. 我试着总结一下进入这种状态的原因, 看看怎么能把这个状况迁移到其他的学习中.

启动容易

  1. 启动任务门槛低: 编程的启动任务很具体, 并且对环境的要求不高: 写一个具体的功能. 无需在图书馆, 电脑有电就行. 但是写数学的启动任务较宽泛, 只是证明某个定理, 而且我心里觉得我需要在图书馆才能开始工作. (改进: 试着破除对于环境的依赖?)
  2. 执行与思考分离: 得益于提前规划, 我执行的时候基本无需重新思考宏观部分, 只需要完成具体细节即可. 但是写数学的时候, 我需要时刻注意自己到了哪一步. (改进: 拆分任务)

反馈及时且持续

我个人感觉这部分应该是最重要的.

  1. 及时且持续的反馈: 每写一部分代码我都会进行测试, 可以立刻知道结果. 这种及时反馈的特性强化了我的动力. 作为对比, 数学证明通常写一部分需要很长时间, 同时无法及时验证正确与否. (改进: 试着在任务中制造反馈)
  2. 低挫败感: 写代码中无论程序正常运行与否, 我都不会有太大挫败感. 但是写数学证明中, 如果太久没有思路, 或者一个概念没法很好的融入到我现有的结构中, 我会感到非常挫败.
  3. 接近目标: 写代码的目标是明确的, 也就是实现一个具体的程序. 但是学数学的目标相比之下不明确, 比如说“学完 Lie algebra”, 我也不知道我证明了 Engel 定理能让我有多更接近这个目标.

创造价值感

  1. 满足了展示价值: 将代码发布到 GitHub, 同时考虑到未来有一天可以放到网站上进行展示, 也满足了我的“被认可”的需求. 但是数学笔记很少可以展示. (改进: 继续坚持写数学 wiki)
  2. 与未来价值的链接: 写代码与未来去当程序员进大厂有强关联, 这种与未来的价值的联系让我也能坚持投入. 但是感觉学会数学的某个科目和未来也没什么关联, 只是满足了自己的某个好奇心.

总结

我认为这个问题的答案可以分成两部分, 第一是个人观念, 譬如对于环境的依赖、挫败感的认识, 这一部分需要我慢慢的来消除. 第二部分是我目前能改进的, 也就是制定更好的计划. 目前来看, 一个更好的计划 = (清晰的目标 + 可视化进度 + 可调整的灵活性) + (易启动的任务 + 及时的反馈 + 持续的意义感).