魔法のサイクル!

記事
IT・テクノロジー

魔法のサイクル!

プログラムだけではなく、何かを学習する時には、「学習のサイクル」というのがあるのをご存知ですか?新しい事を習って、それが使いこなせるようになるには、この「学習のサイクル」がとても大切です。この記事では「学習のサイクル」について紹介します


学習の順番

何か新しい事を学習する場合のやり方は大きく二つのやり方が基本です。

* 自分で本や動画などを見て学習する方法(独学)
* 学校に行ったり、コースを取ったりして誰かに教わる方法
です。このどちらの方法でも学習はできますが、効率を考えると最初は知っている人に教わる方が効率が良い事が多いかと思います。

ところで、どうして知っている人に教わる方が効率が良いかご存知ですか?

理由は簡単で知らない事を自分で学習するのは、試行錯誤する場合が多く、無駄な事に費やす時間が多くなるからです。

例えば、行き先までの道順を知っている場合は、何の不安もなく知っている道を進んでいけば目的地に辿り着くことができます。しかし、知らない場所に行って、地図だけを頼りに目的地に行く場合は話が変わってきます。地図を見ていても、道を間違えることもありますし、今自分が進んでいる道や方向で合っているのか不安になる場合も沢山あるからです。道を間違えれば、戻ることも必要になりますし、間違いていないか不安な場合には、間違っていないのかを確認したりする手間も出てくるのでどうしても時間がかかってしまうケースが多くなります。


知っている人は、自分が学習した経験があるので、その体験を元に自分がやってきたことを元に学習のやり方を導くことができます。一方で、独学の場合は、自分でやる事を見つけてきて学習する必要があります。今はインターネットがあるので、独学でも何をやれば良いのかはある程度検索で見つけることは可能ですが、学習する順番や、方向が合っているのかという不安には常に向き合う必要があります。

そういう意味で、知っている人に習う方が一般的には効率的で短時間で成果を得ることができます。

知識だけではできるようにならない!

独学の欠点はもう一つあります。

知識だけは、学習すれば増やす事はできますが、これだけでは出来る様になりません。 この連載でも時々取り上げていますが、「知っている」と「できる」は違うからです。

本を読んだり、インターネットの動画や解説を見ればある程度知識は得られます。 実際に、本や記事を読んだり、動画を見ていると、「なるほど」とわかった気になるものです。


ところが、プログラミングなどでは、覚えた事を実際に使おうとしても実際のプログラムは中々作れないものです。 実際に習った事を使えるようになるには使う練習が必要になるからです。

良い例が、テレビでプロスポーツ、例えばバスケットボールの試合を見ていると簡単にシュートが入るように見えます。フリースローなどはいとも簡単に入れているように見えるものです。しかし、実際に自分でフリースローラインに立ってやってみると、簡単には入らないものです。実際にフリースローを入れられるようになるには、「練習」が必要になります。

プログラミングでも、同じで学習した知識を実際に使う「練習」が必要になります。

これが、知っている人に習う、つまりプログラミングスクールなどの学校、あるいはメンターのような人がいれば、どんな練習をすれば良いのかも教えてくれるので、迷う事がありません。この練習も、習った事を中心に使ってみる「例題」のような練習から、もっと実践的な実際に利用できる役に立つ本格的なプログラムで使うような実践的な練習などいろいろあります。

例えば、先ほどの例で言えば最初は、誰も邪魔しない状態のフリースローなどのようなシンプルなシュート練習が必要ですが、フリースローがある程度入れられるようになると、今度は守備の人を入れて邪魔された状態での練習も必要になります。要はより実践的な形での練習という事です。バスケットボールの場合は、シュート以外でも、ドリブルやパス、ディフェンスなどの練習も必要になるのでやる事は他にも沢山あります。その一つ一つを出来るようになって、さらに、実践で使えるように練習するわけです。


つまり、習う(わかる)→  練習(やってみる)→ 実践(使える・出来る)→ 検証(正しくできている)→ 次のステップ という手順を踏む必要があります。次のステップではまた同じ事を繰り返す事になります。

サイクルを回した回数が「実力」

この一連の流れ、「習う、練習、実践、検証」そして、次のステップでも、「習う、練習、実践、検証」と続けていく事を「サイクル」と読んでいます。このサイクルを何回回したかで、実力が決まります。

最初は、習った事が少ないので、出来る事も限られていますが、習う事が増えて行くと、使える事も多くなって、だんだんいろいろな事が出来るようになっていきます。つまり、実力がついていくわけです。

知っている事を、練習して、使えるようになるという仕組みです。

ところで、このサイクルには「検証」というのが入っていますが、実はサイクルを回す上でとても大切なのが「検証」というステップです。これも、知っている人から習う場合にはこの検証も手伝ってもらえるので、効率よく進む理由です。

何故、検証が大切か?

この検証が大切な理由は二つあります

* 正しい方向に進んでいるか
* 失敗した場合には失敗の原因は何かを突き止める
一つは、学習の方向が間違った方向に進んでいないかをチェックする必要があるという事です。例えば、データベースを利用する予定がないのに、データベースの勉強を「今」する必要はないですよね?この場合、データベース以外で「今」必要な物は何かを考えて、次に勉強する方向を決める必要があります。練習や実践を含めて一通りやってみたら、結果と次の方向をチェックして、正しい方向かを見極め事がとても大切です。早く誤りを見つけることができれば周りみちを最小限にできるからです。

もう一つは、何かをやると失敗する(思った結果にならない)場合が必ずあるものです。 失敗する事自体は余り大きな問題ではありませんが、同じ失敗を繰り返すのは「無駄」になります。 同じ失敗を繰り返さないためには、「なぜ失敗したか(思った通りの結果にならなかったのか)」の原因を特定して対策(修正)する事が必要になります。こうすることで、失敗を「成功へのステップ」に変える事ができます。

まとめ
習う、練習、実践、検証のサイクルを一通りやると、一定の実力が身に付きます。つまり、習った何かが実際に使えるようになるという事です。学習のやり方には、一通り勉強してから実践に取り組むというやり方もありますが、実は、習ったことだけでできる物を実際に作ってみることで、できる事を増やしていくという学習方針をとる事ができます。

逆に言えば、最小限の知識で作れるものを想定して、学習をして、それを作るような計画を立てることで確実に実力が向上していくという学習が可能になるという事です。そう考えると、本の順番でプログラミングを勉強するよりは、「必要な事から学習する」という方法の方が効率よく、実力を養成できるという事になります。

さらに、このサイクルを何回も回すことができると、回した回数分だけ成長できるというのは明確です。

短期間でも、Web アプリが作れるようになる方法は存在します。

課題は、その方法と方向をどう見つけて行くかです。 そいいう意味で、知っている人に習う、メンターをつけるというのは一つの方法です。しかし、自分に合った良いスクール、メンターを見つけるのが大切で、知っている人から習えば効率よく学習できるわけではありません。

大切なのは、自分たやりたいプログラミングは何で、何がその為に重要なのかを自分自身でチェックして行くことにあります。

その上で、このサイクルを回すと飛躍的に実力を高めることが可能になります!
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す