一周学习计划:如何学完编程视频课程
编程视频课程的一周学习计划:每周5个学习日,每次45–90分钟,每天学1–2节新课并配有练习;每次学习开头简短复习之前的主题;一天用于巩固项目,一天休息。如果练习开始做不出来,就减少新课;如果复习的时间超过了新课,也要减量。
一周学习计划:整体框架
一个好的一周学习计划依靠三件事:每次少学一点新内容,每节课后马上练习,并按计划复习旧内容。新课只占一小部分时间,大部分时间用来亲手写代码,以及把快要忘记的内容重新拿回来。
下面的计划适合每周能投入5–8小时的人,可能是有工作或在上学的人。如果时间更多,就增加练习,而不是增加新课的数量。
| 星期 | 新内容 | 练习 | 复习 | 时间 |
|---|---|---|---|---|
| 周一 | 1–2节课 | 凭记忆写课上的代码 | 上周总结 | 60–90分钟 |
| 周二 | 1–2节课 | 自己的例子 | 周一的主题 | 60–90分钟 |
| 周三 | 1节课 | 本周的题目 | 3–7天前的主题 | 45–60分钟 |
| 周四 | 1–2节课 | 修改周一的代码 | 周二的主题 | 60–90分钟 |
| 周五 | — | 本周主题的小项目 | 所有“困难”的内容 | 60–90分钟 |
| 周六 | — | 自选 | 回顾本周,制定计划 | 30分钟 |
| 周日 | — | — | — | 休息 |
每天学多少节课
参考标准是每次学习1–2节新课。这看起来少,但每节课都需要练习和复习,合起来要一到一个半小时。如果一口气看五节课,你会有进步的感觉,却没有技能:被动观看制造理解的假象,没有主动加工,材料很快就会忘记。
一条实用的规则:在没有亲手写出上一节课的代码之前,不要开始新的一节。如果某节课很长或主题很难,就把它分成两天学。
如何分配一次学习的时间
- 5–10分钟:热身复习。 不看笔记,回想昨天的主题,凭记忆写出关键示例。
- 20–30分钟:新课。 开始前提出一个问题:我想弄清楚什么?观看时,每个语义单元之后暂停,并用自己的话复述。
- 20–40分钟:练习。 合上视频,自己写出讲过的代码,然后做一个你自己的例子。
- 5分钟:总结。 完成本节课的测试,在日志里写三行,并在日历中安排复习。
学习时段可以用番茄工作法:25分钟专注,5分钟休息或总结。
逐日安排
周一:本周开始
先用10分钟复习上周的总结:重读日志,解决一道之前觉得困难的题。然后学1–2节新课,每节之后都凭记忆写代码。周一定下节奏,所以不要安排太满:宁可以“还能再学一点”的感觉结束,也不要以疲惫收尾。
周二:新主题与自己的例子
热身是周一的主题,凭记忆完成。这是最重要的第一次复习,因为刚学完的材料忘得最快。然后学新课,练习时不是重复课上的代码,而是写自己的例子。如果这节课讲的是类,就为自己的领域创建一个类:书籍、订单、训练记录。
周三:轻松的一天
学一节课,多做练习。周三很适合复习上周的主题,它们正好过了3–7天。解决一道需要用到某个技巧、但题目里没有直接点明的题。周中有一个轻松的日子,可以降低职业倦怠的风险。
周四:修改
拿周一写的代码来改:改变条件,改变数据,或者增加错误处理。这是间隔复习的第二阶段:检验理解,而不是机械记忆。然后按平常的方式学1–2节新课。
周五:小项目
不学新课。写一个小程序,把本周的主题结合在一起。比如学完了文件、字典和函数这一周,就可以写一个脚本,读取一个文本文件并输出出现最多的词。项目会显示知识之间哪些地方对不上,这是一周里最有价值的信息。
def top_words(path, n=10):
counts = {}
with open(path, encoding="utf-8") as f:
for line in f:
for word in line.lower().split():
counts[word] = counts.get(word, 0) + 1
return sorted(counts.items(), key=lambda kv: kv[1], reverse=True)[:n]
周六:回顾与计划
30分钟。重读本周的日志,标出造成困难的主题,并安排它们的复习。制定下周的计划:学哪些课,做哪些题,什么时候做项目。如果想多学,就做题,而不是看新课。
周日:休息
完整的休息是计划的一部分,而不是软弱的表现。大脑需要时间消化材料,而你需要时间,让学习不变成一种负担。
什么时候复习
复习已经嵌入每次学习的热身环节中,几乎不需要单独的时间。整体逻辑是间隔的:主题会在一天、几天、一周和两三周之后被再次回顾。
| 主题的时间 | 复习形式 |
|---|---|
| 1天 | 凭记忆复现代码和要点 |
| 3天 | 修改代码,解决相似的题 |
| 一周 | 新题,或在小项目中使用 |
| 2–3周 | 快速检验:测试,用自己的话解释 |
把相关的主题放在一起复习:循环和列表,Git 中的分支和合并,SQL 中的 JOIN 和分组。这样概念之间会形成联系,材料就会作为一个系统被记住,而不是零散的事实。
什么时候练习
简短的回答是:每天,并且在每节课之后马上练习。只有理论而没有练习,形成不了技能:你可以背下所有交通规则,却依然不会开车。计划中的练习分三个层次:
- 每天:凭记忆写课上的代码,并做一个自己的例子。
- 每周2–3次:不看提示,解决前几天主题的题。
- 每周一次:一个综合了多个主题的小项目。
如果没有足够的时间练习,就减少新课,而不是减少练习。
如何判断该休息了
如果你同时注意到以下几种迹象,就应该减轻负担:
- 新课刚看完,你甚至连它的要点都说不出来。
- 以前能解的简单题,现在做不出来了。
- 热身复习花的时间比新课还多:说明新内容的学习速度超过了巩固的速度。
- 你发现自己每隔几分钟就想拿起手机。
- 连续好几天都得逼自己去学习。
应对方法:一周内先停掉新课,只保留复习和练习;或者把学习时间减半。这不是倒退,而是让已学内容稳固下来的时间。每个月一两次的轻松周,能帮你不中断地把课程学完。
如何根据自己的情况调整计划
- 时间少(每周3–4小时)。 三次学习:两次各学一节新课并练习,一次复习和小练习。
- 时间多(10小时以上)。 增加练习和项目,新课仍保持每天2节左右。
- 只在周末学。 至少在工作日安排每次15分钟的简短复习,否则到周六很多内容都会忘掉。
- 漏掉了一天。 不要把任务加倍,只需把计划顺延。连续漏两天,就是该减少计划的信号。
示例:Python 课程的一周,主题是函数
为了让计划不停留在抽象层面,下面看看它在具体内容上是什么样子。假设这一周课程有四节课:函数与参数、返回值、作用域、匿名函数(lambda)。
- 周一。 热身:用上周的循环写一道题。学“函数与参数”,然后凭记忆写一个计算列表平均值的函数。自己的例子:一个格式化姓名的函数。
- 周二。 热身:不看提示,再写一遍平均值函数。学“返回值”。练习:写一个同时返回列表最小值和最大值的函数。
- 周三。 学“作用域”。复习上周的题:处理字符串列表,但这次用函数来组织代码。
- 周四。 修改周一的代码:平均值函数要能正确处理空列表。学“匿名函数”,练习:用
key=lambda按字段对字典列表排序。 - 周五。 小项目:统计文件中的高频词,每一部分都是一个单独的函数。
- 周六。 回顾:日志中三次出现“作用域搞不清”,说明这个主题要安排到周二和下下周六的复习中。
注意:这一周只学了四节新课,但每一节都至少练习了两遍,并且用到了项目中。正是这样的一周,带来的是技能,而不是一串看过的视频列表。
制定计划时的常见错误
- 计划的是课,而不是行动。 “看十节课”很容易完成,却学不到什么。应该计划的是任务:写、解、组装。
- 没有留余地。 计划排得满满的,第一个忙碌的星期就会崩溃。计划的量应比你觉得能做到的少三分之一。
- 为了速度砍掉复习。 新主题建立在旧主题之上,没有复习,每一周都会比上一周更难。
- 放弃休息日。 没有休息,兴趣消失得比技能增长还快。
总结
编程视频课程的一周学习计划:每次学习1–2节新课,每节课后马上练习,每次开头用热身复习旧内容,周五做一个小项目,周六回顾,周日休息。当复习赶不上新内容,或者练习开始做不出来时,就是该休息的信号。这份计划背后的原理,在《如何高效学习视频课程》的课程中有详细讲解。
常见问题
新手每周学编程需要多少小时?
要稳定进步,每周5–8小时、分成4–5次学习就够了。规律比时长更重要:每天的短时段比一次长时间更有效。
可以每天学编程、不休息吗?
可以用短时段,但每周至少休息一天,能避免疲劳,保持兴趣。过度学习通常会以放弃课程告终。
一节课太难,一天学不完怎么办?
按语义单元把它分成几部分,每次学一部分,学完就练习。只有当你能自己写出上一部分的代码时,才开始下一部分。
课程里已经有题目了,还需要做项目吗?
最好做。题目练习的是单个主题,而小项目能展示这些主题如何协同工作,并暴露题目发现不了的漏洞。