「なるほど」が秘訣です!〜プログラミングの模写

記事
IT・テクノロジー

「なるほど」が秘訣です!〜プログラミングの模写

プログラミングの学習の方法に一つに模写があります。他人のコードをお手本にして学んで行く方法です。上手く利用すると非常に効果的な学習ができますが、それには「コツ」があるのをご存知ですか?この記事では模写をする際のコツについて紹介します。


何をお手本にするか?
模写をするには、当然「お手本」が必要になります。どのお手本を選ぶかでその効果に大きな違いが出ます。 従って、お手本の選び方が大きなポイントになります。

実は、お手本は学習者のレベルによって変わってきます。 初心者には初心者向けのお手本があって、上級者には上級者向けのお手本があります。

お手本さえうまく選ぶ事ができれば、「模写」は初心者から上級者まで利用できる素晴らしい学習方法です。

お手本を選ぶ際に、お手本のコード(実装方法)を見て「なるほど!」と思えるのが良いお手本です。

そこでタイトルには「なるほどが秘訣」と書いてみました。

「なるほど」ってどういう事?
では何故「なるほど」なのか、種明かしをしていきますね!

実は「なるほど」と思う時は、何をやっているのかわかるという意味です。 お手本のコードを見て何をやっているのか良くわからない場合は、「なるほど」とは思わない物です。 つまり、「なるほど」は、もう少し言葉を足すと、「なるほどそうやるのか!」とか「なるほどそういう手があったか!」という事です。

一方で、「なるほど」と思わない場合には、二つの選択肢があります。 一つは、取り敢えずお手本を丸写ししてプログラムを動かしてみるという方法です。もう一つは、お手本が何をやっているかを調べて、何をやっているかを掘り下げて学習するという方法があります。

読者の皆さんは、この二つの方法を見てどのように思いますか?

一般的な話をすると、最初のただ写すというのは、確かにプログラムは動作すると思いますが、何をやっているのかよくわかっていないので、あまり頭の中に残りません。(記憶に定着しません)従って、プログラムは大抵は動作するので、その場ではできた気になりますが、時間が経つと忘れてしまう場合が殆どです。

二つ目の方法は、自分で調べて「わかる」まで掘り下げるので、一定の学習効果はあります。ある程度の経験者(上級者)の場合は、この方法でも実力はついていきますが、問題は掘り下げた調査・学習が必要になるので時間がかかります。従って、初心者にはあまりお勧めしない方法です。逆にある程度上級者になると、この方法が実力を伸ばすための方法とも言えます。


では、「なるほど」と思う場合はどうでしょうか? これを具体的に説明すると、「今持っている知識を」「うまく利用する」ことで、ある機能を実現できる、課題を解決できるという場合になります。つまり、今まで学習してきた知識を整理して頭の中に「使える知識として定着させる」効果があります。

模写の効果的な利用方法
実は、上であげた「なるほど」と思わないケースは、「模写」ではなく、実は問題解決方法を見つける調査という方が正しい見方になります。それで見つけた方法を理解するためにさらに深掘りするというイメージなので実は模写というより調査なのです。

「模写」は、プログラミングの基本を少し基本を勉強したときに、学習したことを実際に利用する訓練に向いている学習方法です。では、「例題」と何が違うの?と思うかもしれません。例題は、半ば強引に学習したことを使うために作った物であまり実用的ではない場合が多くなっています。一方で「模写」の題材にされるものは、「学習したこと以外も含まれた実用的な課題」が利用されます。

理由は、簡単で、実際のプログラムで学習した事がどの様に使われたかを「体験」するのが目的だからです。

模写の大きな目的は、学習した知識を、実際に使える知識に変えて、「わかる」から「できる」に発展させることです。これには実際にやってみる「体験」が最も効果的だと言われています。

しかし、学習したものを使って「何かを作って」と言われても、特に初心者にはそう簡単に何を作れば良いのか思い浮かばないのが普通です。そこで、誰かが作ったものを真似して、作ってみて、「なるほど!こういう風に使えば良いのか」を体験するという方法をとるわけです。

プログラミングの模写のやり方
Web ページの記述方法を習得するのに模写が使われる場合も多いです。その場合、お手本を見ないで作ってみるというやり方をする場合が多いかと思いますが、プログラミングの場合は少し違います。

まず最初にソースコードを見てみてください。 Web ページの模写の様に、機能だけを見て自分で作ってみるのも一つのやり方ですが、プログラミングの場合にはこの方法は時間がかかります。そこで、最初にソースコードに目を通して、「なるほど」と思えるかをまず見てからやってみてください。「なるほど」と思えない場合は、少し難しすぎると判断して別の課題を見つけた方が効率的です。

「なるほど」と思えたら、細部はコピーするのではなく、自分でやってみてできるかどうかをみてください。できない場合は、できなかった時に答え合わせをして、自分のやり方は何が違っていたかを調べてみると効果的にスキルアップができます。「なるほど」と思ったけれども、実際に詳細を作ってみたらできないという場合は、学習して「わかったつもり」になっている場合が多くなります。実際に、できないことを実感することで、細かい大切なことを見落としていたことに気づくきっかけになります。

「できる」様になるには、そうした細かい所を含めた理解が必要で、これは実際に作ってみないとなかなか身につかない事です。従って、模写を繰り返すとそうした「実践力」が磨かれることになります。

まとめ
よく言われることに、「知っている」と「できる」は違うという事があります。

勉強して知識はあっても、実際にやってみると意外に難しいと思うことは良くあると思います。 料理なども、テレビの料理番組などを、見ていると簡単に作れそうな気になる事が多いと思います。しかし、実際に料理をしてみると、料理番組のようにはいかない事がよくあります。スポーツなども同じです、テレビで見ていると簡単に見えるプレーも実際に自分でプレーしてみると思うように行かないのが普通です。

プログラミングの世界も同じ事が言えて、プログラミングの学習を少しすると、簡単にプログラムが書けそうなイメージがありますが、実際にプログラムの開発を始めると思う様に動かないのはよくある事です。これは、「知っている(知識)」と「できる(実践力)」の間には大きなギャップがあるからです。このギャップを埋めるのに最適なのが「模写」というわけです。大切なのは、模写をする前にまずは答えのコードを見て、「なるほど」と思えるかをチェックして、自分が十分な知識を持っているかを確認した上でやってみる事です。

これを繰り返すことで、実際にプログラムを作れるエンジニアに成長していくことが可能になります!
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す