写経のすすめ - 技術書のコードを手で打ち込む学習効果
この記事は約 6 分で読めます。
「読んだ」と「書ける」の間にある深い溝
技術書のサンプルコードを読んで「なるほど、理解した」と思う。しかし、本を閉じてエディタを開くと、何も書けない。この経験は多くのエンジニアに共通しています。
「読んで理解した」と「自分で書ける」の間には、想像以上に深い溝があります。この溝を埋める最も効果的な方法が、コードを 1 行ずつ自分の手で打ち込む「写経」です。
写経が効く理由は、脳の処理モードが変わるからです。コードを読むときは「理解」のモードで処理しますが、コードを打ち込むときは「再構成」のモードで処理します。1 行ずつ打ち込む過程で、「なぜこの変数がここで必要なのか」「なぜこの順番で処理するのか」を無意識に考えることになります。
写経の 3 つのレベル
写経には段階があります。自分のレベルに合った段階から始め、徐々にレベルを上げていくのが効果的です。
レベル 1: そのまま写す
本のコードを 1 行ずつ、そのまま打ち込みます。最も基本的な写経です。
このレベルで得られるのは、構文の記憶とエラーメッセージの読み方です。タイプミスでエラーが出たとき、エラーメッセージを読んで原因を特定し、修正する。この一連の流れは、プログラミングの基礎体力そのものです。
GitHub からサンプルコードをダウンロードして動かすだけでは、この体力は身につきません。エラーに遭遇しないからです。
レベル 2: 変数名や題材を変えて写す
本のコードの構造はそのままに、変数名や題材を自分で考えたものに変えて打ち込みます。
例えば、本のサンプルが「書籍管理アプリ」なら、「映画管理アプリ」に変えて実装する。構造は同じでも、変数名やデータ構造を自分で考える必要があるため、コードの「意味」を理解していないと書けません。
レベル 1 では「打ち込めた = 理解した」と錯覚しがちですが、レベル 2 では本当に理解しているかが試されます。
レベル 3: 別の問題に同じパターンを適用する
本で学んだパターンや設計を、全く別の問題に適用します。これはもはや写経ではなく「応用」ですが、写経の最終目標はここにあります。
例えば、本で Observer パターンを学んだら、自分のプロジェクトで Observer パターンが使える場面を探して実装してみる。本の文脈から離れて、自分の文脈でパターンを使えるようになれば、そのパターンは完全に身についたと言えます。
写経に向いているプログラミング入門書を探すは、コード例が段階的に発展するものを選びましょう。
写経の効果を最大化する 3 つのルール
ルール 1: コピペは絶対にしない
写経の価値は「手で打ち込む」行為そのものにあります。コピペした瞬間、脳は「再構成」モードから「確認」モードに切り替わり、学習効果が激減します。
面倒に感じても、1 文字ずつ打ち込んでください。その面倒さこそが学習です。
ルール 2: エラーは自力で 10 分考える
写経中にエラーが出たら、すぐに答えを見ずに 10 分間自力で考えてください。エラーメッセージを読み、原因を推測し、修正を試みる。この過程がデバッグ力を鍛えます。
10 分考えても分からなければ、本のコードと自分のコードを 1 行ずつ比較します。差分を見つけたとき、「なぜこの違いがエラーを引き起こすのか」を理解することが重要です。
ルール 3: 写経後に「改造」する
写経が終わったら、コードを少し改造して動かしてみてください。引数を変える、条件を追加する、出力を変える。「変えたらどうなるか」を実験することで、コードの理解が「暗記」から「理解」に変わります。
独学プログラミングの学習法の本には、写経を含む効果的な学習サイクルが紹介されています。
関連記事
まとめ
写経は「読んだ」を「書ける」に変える学習法です。レベル 1 のそのまま写すところから始め、慣れたら変数名を変え (レベル 2)、最終的には別の問題に同じパターンを適用する (レベル 3) まで進む。コピペをせず、エラーは自力で考え、写経後に改造する。この 3 つのルールを守れば、写経の学習効果は最大化されます。