「写経」「模写」「車輪の再発明」- 手を動かす学習法の使い分け
この記事は約 5 分で読めます。
「手を動かせ」の先にある選択肢
プログラミングの学習で「手を動かせ」とよく言われます。しかし、手の動かし方にも種類があります。本のコードをそのまま打ち込む「写経」、既存のアプリケーションを見ながら再現する「模写」、既存のライブラリやツールを自力で作り直す「車輪の再発明」。
この 3 つは似ているようで、鍛えられるスキルがまったく違います。目的を間違えると、時間をかけた割に成長を実感できません。
3 つの学習法の比較
写経 - 文法と慣用句を体に染み込ませる
本やチュートリアルのコードを一字一句打ち込む方法です。
鍛えられるスキルは、言語の文法と慣用的な書き方です。Python の内包表記、JavaScript のアロー関数、Go のエラーハンドリングパターン。これらは「知っている」と「手が勝手に書ける」の間に大きな溝があり、写経はこの溝を埋めます。
写経が最も効果的なのは、新しい言語を学び始めた最初の 1〜2 ヶ月です。文法が手に馴染んだ後は、写経の学習効果は急速に低下します。
向いている人は、新しい言語やフレームワークに初めて触れる人。向いていないのは、その言語で既に半年以上コードを書いている人です。
模写 - 設計判断を追体験する
既存のアプリケーションやサービスを、見た目と機能を参考にしながら自力で再現する方法です。
鍛えられるスキルは、設計判断力です。「この機能を実現するには、データ構造をどう設計すればよいか」「この UI を作るには、コンポーネントをどう分割すればよいか」。模写では、完成形を知った上で設計を自分で考えるため、設計の試行錯誤を安全に経験できます。
写経との決定的な違いは、正解のコードを見ずに自分で考える点です。完成形の見た目や動作は参考にしますが、実装方法は自分で決めます。行き詰まったときだけ、参考にしたアプリケーションのソースコード (公開されている場合) を確認します。
向いている人は、文法は書けるが「何を作ればよいかわからない」人。向いていないのは、文法自体がまだ不安定な人です。
車輪の再発明 - 仕組みの本質を理解する
既存のライブラリ、フレームワーク、ツールを自力でゼロから作り直す方法です。簡易版の HTTP サーバー、ミニマルな React、自作のテストフレームワークなど。
鍛えられるスキルは、技術の本質的な理解です。React を使えるエンジニアは多いですが、仮想 DOM の差分検出アルゴリズムを説明できるエンジニアは少数です。車輪の再発明をすると、「使える」から「仕組みがわかる」にレベルが上がります。
コンピュータサイエンスの本を読みながら車輪の再発明をすると、理論と実装の両面から理解が深まります。
向いている人は、特定の技術を深く理解したい中級者以上。向いていないのは、まだ基本的なアプリケーションを作った経験がない人です。
学習段階別の推奨フロー
初学者 (0〜6 ヶ月)
写経 → 模写の順で進めます。最初の 1〜2 ヶ月は写経で文法を体に染み込ませ、その後は模写で小さなアプリケーションを作ります。この段階で車輪の再発明に手を出すと、基礎が固まる前に挫折します。
中級者 (6 ヶ月〜2 年)
模写を中心に、興味のある分野で車輪の再発明を始めます。模写で設計判断の経験を積みながら、「なぜこう動くのか」を知りたくなった技術について車輪の再発明で深掘りします。
上級者 (2 年以上)
車輪の再発明を中心に、新しい言語を学ぶときだけ写経に戻ります。上級者にとって最も学びが大きいのは、普段使っているツールの内部実装を理解することです。
よくある失敗パターン
最も多い失敗は、写経をいつまでも続けることです。写経は入門期に効果的ですが、文法が身についた後も続けると「打ち込み作業」になり、学習効果がなくなります。
次に多い失敗は、車輪の再発明を完璧にやろうとすることです。本物と同じ品質のライブラリを作る必要はありません。核心部分の仕組みが理解できれば、途中でやめて構いません。
関連記事
まとめ
写経は文法を体に染み込ませる。模写は設計判断を追体験する。車輪の再発明は仕組みの本質を理解する。3 つの学習法はそれぞれ鍛えるスキルが異なります。自分の現在のレベルと伸ばしたいスキルに合わせて、適切な方法を選んでください。
この記事は役に立ちましたか?
関連用語
関連記事
「写経」の退屈さに耐えられない人のための代替メニュー
技術書のコードを手で打ち込む「写経」が続かない人へ。写経と同等以上の学習効果を得られる、退屈しない 4 つの代替学習法を紹介します。
技術書の「写経」が続かない人のための段階的アプローチ
技術書のコードを写経しようとして挫折した経験はありませんか。写経が続かない原因を分析し、無理なく続けられる 4 段階のアプローチを紹介します。
本のコードを写すだけでも力がつく理由
本のコードをそのまま打ち込む「写経」は、初心者にとって最も効果的な練習法の 1 つです。なぜ写すだけで力がつくのか、その仕組みを解説します。
写経のすすめ - 技術書のコードを手で打ち込む学習効果
技術書のサンプルコードを手で打ち込む「写経」の 3 つのレベルと、写経に向いている本の特徴、効果を最大化するやり方を紹介します。
本を読んでもすぐにコードが書けなくて当たり前
本を 1 冊読み終えたのに、いざコードを書こうとすると手が動かない。これは普通のことです。読書とコーディングの間にあるギャップと、その埋め方を解説します。
写経を超える - 技術書のコードを自分のプロジェクトに応用する方法
技術書のサンプルコードを写経するだけでは実力は伸びません。書籍のコードを自分のプロジェクトに応用し、実務で使える力に変える 5 つのステップを解説します。