"坚持"这两个字,是自学编程最大的谎言。我以前每次立志"每天学两小时",撑不过一周就崩了——不是我不想坚持,是计划本身就反人性。后来我把目标砍到每天 30 分钟,配上一套不让意志力上场的方法,到今天已经连续 600 多天没断过。这篇日记把这套方法完整写出来,希望能帮你把"坚持"变成"习惯"。
一、为什么是 30 分钟,不是 2 小时
我试过每天 2 小时,结果是从第三天开始就和"今天太累了""明天补上"这种念头反复拉扯,最后彻底放弃。问题在于:2 小时这个目标太大,启动成本太高,大脑会本能地逃避。
30 分钟的好处是:它小到没有任何启动压力。再累的一天,挤 30 分钟也不会让我崩溃。而一旦开始,往往会学超——因为编程是有正反馈的,写出一个能跑的东西会想再写一点。30 分钟是"最低保证",不是"上限"。
这背后是"微习惯"的逻辑:把目标设得极小,小到不可能失败,靠"已经开始了"的惯性带动更多行动。意志力只够用来启动,所以要让启动变得毫无阻力。
坚持靠的不是"我要努力",而是"我不需要努力就能开始"。门槛越低,越能长久。
二、我的每日清单模板
我把每天的 30 分钟拆成固定的四段,每段都有明确动作,不让自己有"今天学什么"的决策负担:
- 前 3 分钟:回顾昨天。看一眼昨天写的代码和笔记,让大脑接上昨天的上下文。这一步极重要,能大幅减少"重新进入状态"的损耗。
- 中间 20 分钟:专注学一个点。一次只啃一个概念或一个小功能,不贪多。手机静音,关掉无关标签页,用番茄钟锁住这 20 分钟。
- 接下来 5 分钟:动手验证。把刚学的立刻敲一遍,哪怕只是复述一遍代码。不动手的知识,当晚就忘。
- 最后 2 分钟:写一句话日记。用一句话总结今天学到了什么、卡在哪。这句话就是明天的"回顾昨天"的入口。
这套清单的关键是"固定动作 + 固定顺序"。每天不需要思考"先做什么再做什么",执行成本极低,也就极容易坚持。
三、对抗拖延的三个小技巧
即便目标只有 30 分钟,拖延还是会来。我用了三个小技巧,把拖延的窗口压到最小:
- 固定时间固定地点。我把学习钉死在每天晚饭后、书桌前。时间地点一固定,到了那个点身体就会自动进入状态,不需要再做"要不要学"的决定。
- 前一天晚上准备好素材。把今天要学的教程链接、要做的项目任务写在便签上贴屏幕。第二天直接开始,不会在"找资料"上耗掉 10 分钟。
- 允许"最低版本"。状态差的时候,允许自己只完成"3 分钟回顾 + 2 分钟日记",哪怕没学到新东西也算打卡不断。断的是连续性,不是单日质量。
第三个技巧最关键。以前我一旦某天没完成,就会想"反正断了,干脆这周算了",然后停半个月。允许"最低版本"后,我再也没断过——因为最低版本太容易达成了,而一旦开始,往往就顺手学完了 30 分钟。
四、复盘习惯:每周一次的"放大镜"
每天 30 分钟的累积,必须靠复盘才能放大效果。我每周日花 15 分钟做一次周复盘,固定四问:
- 这周学到了什么?把七天的日记扫一遍,提炼出 2-3 个真正掌握的点。
- 哪里卡住了?记下没啃动的难点,安排到下周重点攻克,不让它烂尾。
- 有没有偏离主线?检查是不是被无关的新东西带跑了,如果是,下周拉回主线。
- 下周只做一件事?给下周定一个唯一的主目标,比如"搞懂异步",其他都是次要。一个清晰的主目标,比十个模糊的计划有用得多。
复盘让我看到累积的力量。单看一天,30 分钟学不到什么;但复盘时会发现,一周就是 3.5 小时,一个月就是 15 小时,加上连续性带来的深度理解,效果远比"周末突击 10 小时"好。突击学的东西一周就忘,每天沉淀的东西会变成长期记忆。
五、写在最后
600 多天里,我学到的最重要的东西不是某门技术,而是"我可以靠自己的节奏持续进步"这件事本身。这种确定性,比任何一次冲刺都更有力量。如果你也想坚持学编程,别再立 2 小时的 flag 了。从明天开始,每天 30 分钟,固定时间、固定地点、固定动作,允许最低版本,每周复盘一次。一个月后你会回来感谢自己。