日々プログラミング学習に取り組んでいる人は、「効率的なプログラミングの学習方法ってなんだろう?」と考えたことがある人もいると思います。
結論から言うと特定の場合に限って、写経はとても効率的な学習方法になります。
今回は、学習方法の一つである写経について解説していきます。
ここでいう写経とは、プログラミングにおけるサンプルコードやチュートリアルを自身の指で打ち込んでいく作業のことを指します。
ただ、写経といっても目的と手段を間違えて捉えてしまうと、途端に時間を無駄にしてしまったり、学習速度の遅れやモチベーションの低下につながるので、注意が必要です。
それでは以下の章から詳しくお話していきたいと思います。
目次
プログラミング学習と言語学習の違い
これは今後プログラミングに携わっていく中で、理解しておかなければならない内容になります。
それは、プログラミング学習と言語学習には違いがあるということです。
プログラミングとは、コンピュータに指示を出すプログラムを作成することになります。いわば指示書を作り上げることを意味します。
一方で、言語学習においてはプログラミングする際の記述方法・概念を理解することになります。
まずはそれぞれに対する学習の違いを理解しておきましょう。
それぞれの学習の捉え方
先ほども前述しましたが、プログラミング学習と言語学習には違いがあります。
より分かりやすく例えるならば、、、
・プログラミング学習 = サッカーの戦術
・言語学習 = サッカーのルール
これぐらいの違いがあります。
言語学習においては、サッカーのルールを覚えることに似ています。
実際にサッカーをする場合、ボール蹴るスポーツだよなぁぐらいに思っている人もいるかもしれませんが、サッカーにもちゃんとルールが存在しています。
なので、どれだけサッカーのルールだけを覚えたところで、肝心のサッカーの試合で活かされることはルールを逸脱しないことぐらいです。
一方で、プログラミング学習においてはサッカーの戦術を考えることに似ています。
サッカーというスポーツをする中で、様々な戦術が存在します。
それらを練習していくことで、実務で活かされていくということになります。
そのため、写経という行為は、言語学習に利用することで効率的な学習として利用することができます。
では、写経を単純にしていても上手くなるでしょうか?
それは残念ながら写経をただこなすだけでは言語学習においても上達しません。
詳細な内容を以下の章で一つずつ解説していきます。
効果的な写経に取り組むためには
先ほどもサッカーというスポーツで例えましたが、サッカーに取り組んでいるほとも上手い人とそうでない人に分かれます。
これは才能ではなく、おそらく目的・目標設定を持って取り組めているかだと思います。
とにかくサッカーをしているだけでは上手くなりません。
練習の中で課題を見つけ出し、それを達成できるよう繰り返し努力することで上手くなっていきます。
写経においても同じことが言えると思います。
コードをただただ何も考えず、言われた通りにマネをして記述していても覚えることはおろか、何も得られません。
取り組んだという事実だけが残るだけで、知識や考え方などは何も得られません。
つまり、写経に取り組む中で何を考えながら実行するかが重要になります。
考えながら取り組むのが写経
これは筆者が学生の時に感じていたことですが、学生時代では学問を学ぶ際、先生が黒板に板書したものをノートに写しながら座学を行います。
クラスの中で、とても板書をキレイに写していて、それはもうアートのように感じるほどのノートを作成する人がいました。
しかし、残念ながらその学生はテストの点数が低かったです。
もちろん、キレイに写して点数も良い人が存在していたとは思いますが、この学生だとおそらく写すことが目的になっていたんだと思います。
写すことだけに集中していては、肝心の学習にはなりません。
プログラミングにおける言語学習でもそのような状況が起きてしまっている人は少なくありません。
何度もプロゲート(プログラミング言語の無料学習サービス)に取り組む人がいたりしますが、同じ問題ばかり解いていても何も得られません。
ましてや、暗記する勢いで何周したところでそんな場面が来たら、ググって終わりです。
学習した内容をどう活かすのかを意識した目的設定が非常に重要となってくるわけです。
写経から何を得るのか
それでは、具体的に写経を行なっていく上で、何が得られるのか解説していきたいと思います。
・基礎的な単語と文法
・特定のプログラミング言語特有の概念
・言語学習から分かるそれぞれの活用方法
・基本的なエラーへの対処方法
・情報収集力と問題解決力
主にこれら5つを効果的に学びながら習得できるようになると思います。
一つずつ解説していきます。
基礎的な単語と文法
とにかく始めの頃の学習において、コードから自分の言葉に直してコメントするのが難しいと思います。
このコードはどの動作を表しているのか、この記述は何をしているのか、これらを判断できるようになるためにも写経は非常に効果的です。
また、プログラミング言語の学習において基本的なデータ作成や繰り返し構文、条件分岐、クラスなどの記述方法も身についてくると思います。
当たり前のように、コードブロックの内容が把握できるようになると思います。
特定のプログラミング言語特有の概念
扱うプログラミング言語によって、言語特有の概念が存在することがあります。
これは、記述方法に大きく関わってくる内容になるので、写経を通して理解を深めておく必要があります。
様々な言語を扱えば分かることですが、セミコロンの使い方やインデントルール、同じループ処理でも言語によって記述が変化します。
それほど、言語学習における特有の概念を理解しておかなければ、学習が億劫になってしまいます。
コピペだけでプログラムを作成していると、ふとした時にコピペ先の情報や自身の記述内容が間違っていることにも気づかず、エラーが起きてしまい、それ以上何も対処できない人も存在します。
結局、言語学習に戻ってくることになってしまうのです。
であるならば、初めから写経に取り組み、面倒ではありますが1スペルずつ記述していくことが概念への理解にもつながり、スペルミスなどの発見も早くなっていきます。
言語学習から分かるそれぞれの活用方法
これは、写経によって言語に関する概念の理解が深まっているため、記述方法も応用できるようになってきます。
突然ですが、あなたは天才数学者のカール・フリードリヒ・ガウスという人をご存知ですか?
このガウスは、ドイツの数学者で歴史上最高の数学者の1人として有名です。
そんな彼が7歳の時の驚くような逸話が残っています。
ガウス少年は、とある日に学校の先生から算数の問題を出されます。
「1から100までの整数を全て足しなさい。」
ガウス少年はこの解答を秒で導き出したそうです。
単純に計算するのであれば、、、
1 + 2 + 3 + … + 98 + 99 + 100 = 5050
このように、地道に計算することになります。
しかし、ガウス少年の計算方法は違いました。
1から100までの整数を二つ用意する
1 + 100 = 101
2 + 99 = 101
3 + 98 = 101
・
・
・
98 + 3 = 101
99 + 2 = 101
100 + 1 = 101
このように二つの1から100までの整数のセットを二つ利用して、それぞれ始めと終わりから順番に計算すると、101という値を持つセットが100個できます。
そして、101 × 100 = 10100を導き、本来問題としては1から100までの整数は1セットだけを求めるため、÷2を行い、5050を導きます。
すみません、ただの天才の話をしてしまいましたが、この話から言いたかったことは解法は一つではないということです。
プログラミングにおいて多くのサンプルを写経していると気づきますが、同じ処理をしているプログラムでも開発者によって記述方法は様々です。
つまり、言語学習を通して多くのプログラマーのアルゴリズムの作り方を理解することができます。
このアルゴリズムの作り方が必ずプログラミングに活かされます。
写経にはこういったことを考えさせてくれる時間だと思ってもくもくと取り組んでいきましょう。
基本的なエラーへの対処方法
言語学習において、写経を取り入れるとおそらくほとんどの人が構文エラーなどに出くわすと思います。
いかにコード記述において、ヒューマンエラーが多いかが分かると思います。
ですが、あなたの記述でスペルミスや構文の記述方法が違ったりと焦ることはありません。
むしろ、こういったミスを一つずつ解決していくことでエラーへの対処方法が身についていきます。
また、エラーへの免疫力が間違いなく高まっていくので、ガンガン写経していきましょう。
エラーを起こさないためにコードの見直しや記述ミスを減らすための見やすい記述方法が同時にわかってきたりします。
たまに、同業種の人で非常に見づらいコード記述をする人がいたり、丁寧とは言い難いコメントなどが見受けられます。
言語学習における写経は、このような記述すら学べる効果的な学習方法だと言えます。
情報収集力と問題解決力
これは、エラーへの対処方法とつながってきますが、基本的にエラーがおきた時はエラー文が出力されます。
そのエラー文をコピーしてググることで、解決方法を見つけるわけですが、この作業を繰り返すことで情報収集力が身につきます。
また、繰り返していくことでどんどん情報に敏感となり、パッと見ただけで欲しい情報かいらない情報かを精査できるようになります。
このように、身についた情報収集力で取り組んでいる内容を解決できる内容を見つけ出し、実際に問題解決をすることで二つをセットで身につけていきます。
写経でミスすることは、取り組んでいればよくあります。
その際に、この前も同じようなエラーを起こしたなぁと思い出し、そのエラーへの対処がどのようなものか思い出しながら解決できるようになると、エラーの対処方法すら覚えていくことができます。
写経はコードを書く自信につながる
主に5つの写経における効果を解説しました。
最終的には、写経を続けていくことで間違いなく自信がつきます。
なぜなら、実際にプログラムとして動作するものを作った経験に他ならないからです。
適当に調べてコピペした時と調べた先の情報を写経して利用するとでは、理解の深さが違います。
この0から取り組み、記述し、動作までさせる一連の流れを多く経験できるのが写経であり、プログラミング学習につながる最大の自信になります。
ぜひ面倒と思わず、取り組んでいただければと思います。
まとめ
いかがでしたでしょうか?
写経の具体的な効果として、、、
・基礎的な単語と文法
・特定のプログラミング言語特有の概念
・言語学習から分かるそれぞれの活用方法
・基本的なエラーへの対処方法
・情報収集力と問題解決力
これらを一つずつ解説してきました。
また、言語学習における写経によって、次のステップであるプログラミング学習の自信につながるお話もしました。
あなたのこれからの学習に少しでもお役立つ情報になればと思います。
最後まで一読していただき、ありがとうございました!