一週間の学習計画:プログラミングの動画講座を進める方法
プログラミング動画講座の一週間の学習計画です。週5日、一回45〜90分で、1日に新しい授業を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分かけて、先週の振り返りをします。日誌を読み返し、以前に難しかった問題を一問解いてください。それから新しい授業を一、二回。各授業の後は、記憶からコードを書きます。月曜はリズムを決める日なので、詰め込みすぎないようにしましょう。疲れて終えるより、「まだできそう」と感じて終えるほうがよいのです。
火曜:新しいテーマと自分の例
ウォームアップは、月曜のテーマを記憶から行います。これは一番大切な最初の復習で、学んだ直後の内容が最も速く忘れられるからです。その後、新しい授業に進みます。練習では、授業のコードを繰り返すのではなく、自分の例を作ります。授業がクラスの話だったなら、自分の分野のクラスを作りましょう。本、注文、トレーニング記録などです。
水曜:軽めの日
授業は一つ、練習を多めに。水曜は、ちょうど3〜7日前になった先週のテーマを復習するのに向いています。テーマを直接示されていなくても、その技法を使う必要がある課題を解いてください。週の真ん中に軽い日があると、燃え尽きのリスクが下がります。
木曜:修正
月曜に書いたコードを取り出して変えてみてください。条件、データ、エラー処理などを変更します。これは間隔復習の二段階目で、機械的な暗記ではなく理解を確かめます。その後、通常どおり新しい授業を一、二回進めます。
金曜:小さなプロジェクト
新しい授業はありません。今週のテーマを組み合わせた小さなプログラムを書きます。たとえば、ファイル、辞書、関数を学んだ週なら、テキストファイルを読み、最も多く出現する単語を表示するスクリプトです。プロジェクトは、知識同士がかみ合わない部分を映し出します。それは一週間で最も価値のある情報です。
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日後、数日後、1週間後、2〜3週間後に繰り返し振り返ります。
| テーマの経過 | 復習の形式 |
|---|---|
| 1日 | 記憶を頼りにコードと要点を再現する |
| 3日 | コードを変えて、似た問題を解く |
| 1週間 | 新しい問題、またはプロジェクトでの使用 |
| 2〜3週間 | 素早い確認:テスト、自分の言葉で説明 |
関連するテーマは一緒に復習してください。ループとリスト、Git のブランチとマージ、SQL の JOIN とグループ化。概念同士が結びつき、教材は個々の事実ではなく、一つのシステムとして記憶されます。
いつ練習するか
簡潔に言えば、毎日、そして授業の直後にすぐです。理論だけで練習がなければ、技能は身につきません。交通規則を全部覚えても、運転はできるようになりません。計画の中の練習は三つのレベルに分けられます。
- 毎日:授業のコードを記憶から書く。自分の例を一つ作る。
- 週に2〜3回:ヒントなしで、前の日のテーマの問題を解く。
- 週に一回:複数のテーマを組み合わせた小さなプロジェクト。
練習の時間が足りないなら、練習を減らすのではなく、新しい授業を減らしてください。
休むべきサインの見分け方
次のサインがいくつも同時に見られたら、負荷を下げるタイミングです。
- 新しい授業を見た直後でも、その要点を言えない。
- 以前は解けていた簡単な問題が、解けなくなった。
- ウォームアップの復習が新しい授業より長くかかる。新しい内容が、定着するより速く進んでいるということです。
- 数分ごとにスマートフォンに手が伸びてしまう。
- 何日も続けて、学習のために自分を奮い立たせている。
対処法:一週間は新しい授業をやめて、復習と練習だけにする。あるいは学習時間を半分に減らす。これは後退ではなく、学んだことが定着するための時間です。一、二か月に一回の軽い週があると、途中で止まらずに講座を終えられます。
自分に合わせて計画を調整する
- 時間が少ない(週3〜4時間)。 三回の学習。二回は新しい授業を一つずつと練習、一回は復習と小さな課題。
- 時間が多い(週10時間以上)。 練習とプロジェクトを増やし、新しい授業は1日2回程度に抑える。
- 週末だけ学ぶ。 最低限、平日に15分ずつの短い復習を二、三回。そうしないと、土曜には多くが忘れられてしまいます。
- 一日休んだ。 二倍の量で埋め合わせず、計画をずらしてください。二日連続で休んだら、計画を減らすサインです。
例:Python の一週間、テーマは関数
計画を抽象的なままにしないために、具体的な内容でどう見えるかを示します。この週の講座には四つの授業があるとしましょう。関数と引数、戻り値、スコープ、無名関数(ラムダ)です。
- 月曜。 ウォームアップ:先週のループの問題を一問。「関数と引数」の授業を見て、記憶を頼りにリストの平均値を計算する関数を書く。自分の例は、名前を整形する関数。
- 火曜。 ウォームアップ:ヒントなしで平均値の関数をもう一度書く。「戻り値」の授業。練習は、リストの最小値と最大値の両方を返す関数。
- 水曜。 「スコープ」の授業。先週の課題の復習:文字列のリストを処理するが、今回は関数で構成する。
- 木曜。 月曜のコードを修正:平均値の関数は空のリストを正しく扱えること。「無名関数」の授業を学び、練習は
key=lambdaを使って辞書のリストをフィールドで並べ替える。 - 金曜。 小さなプロジェクト:ファイル内の頻出単語を数える。各部分は個別の関数にする。
- 土曜。 振り返り:日誌に「スコープがよく分からない」と三回書いてあった。このテーマは火曜と次の土曜の復習に入れる。
注目してください。この週に新しい授業は四つだけですが、どれも少なくとも二回は練習され、プロジェクトでも使われています。このような週が生むのは、技能です。見た動画のリストではありません。
計画を立てるときのよくある間違い
- 授業を計画して、行動を計画しない。 「授業を十本見る」は簡単にこなせて、何も身につかないかもしれません。計画するのはタスクです。書く、解く、組み立てる。
- 余裕を残さない。 計画がぎっしりだと、最初に忙しい週で崩れます。できると思う量の三分の一減らしてください。
- 速度のために復習を削る。 新しいテーマは古いテーマの上に立っています。復習がなければ、一週ごとに前の週より難しくなります。
- 休日をなくす。 休みがなければ、技能が伸びるより先に興味が消えてしまいます。
まとめ
プログラミング講座の一週間の学習計画は、一回の学習で新しい授業を1〜2回、各授業の後にすぐ練習、毎回の初めにウォームアップとして復習、金曜に小さなプロジェクト、土曜に振り返り、日曜に休息です。復習が新しい内容に追いつかなくなったとき、あるいは練習がうまくいかなくなったときが、休むべきサインです。この計画の土台となる原理は、動画講座の効果的な学び方を扱う講座で詳しく解説しています。
よくある質問
初心者がプログラミングを学ぶのに、週に何時間必要ですか?
着実に進むには、週5〜8時間、4〜5回に分ければ十分です。量より規則性が大切で、毎日の短い学習は、一回の長い学習よりも効果があります。
休まずに毎日プログラミングを学んでもよいですか?
短い時間ならできます。ただし、少なくとも週に一日は休むと、疲労を避け、興味を保てます。過剰な学習は、たいてい講座を放棄することで終わります。
授業が難しすぎて一日で終わらないときは?
意味のまとまりごとに分けて、一回の学習で一つずつ進めてください。練習は各部分の後に行います。前の部分のコードを自分で書けるようになってから、次に進んでください。
講座に問題がついているなら、プロジェクトも必要ですか?
できれば行ってください。問題は個々のテーマを練習させますが、小さなプロジェクトは、それらがどう連携して働くかを示し、問題では見えない抜けを見つけてくれます。