みなさま、日々の学習お疲れ様です。いかがお過ごしでしょうか。ITBootCampから早くも三週間が経ちました。
学習を進める上で、かなり効果的な思考法があるのでお伝えします。結論から言うと、『脱・完璧主義』です。具体的にどういうことかということを、実際のプログラミング学習を例に説明します。
あなたは現在プログラミングを学習中です。そこで、どうしてもわからない問題があります。どのようにすれば解決できるでしょうか。解決方法はいろいろありますが、今回は4つに絞りました
1. 100%の理解を追い求めない
→まずは大雑把な説明ができる程度でOK
2. わからないところは、カリキュラムを見直したりネットの情報を探す
→カンニングOK、暗記しなくてOK、必要なときに調べればOK
3. 誰かに聞く
→相談OK
4. 1~3でもわからなければ潔く飛ばす
→後で戻ってくればOK
いかがでしょうか?
本題から逸れるので、各項目の細かい説明は割愛しますが、どれも学校の先生に怒られそうなことばかりじゃないでしょうか。それでいいのです。むしろ、そういった大胆ともいえるような考え方が必要不可欠です。
プログラミング学習は挫折率90%超です。その所以が、一朝一夕で身につかないハードルの高さにあります。つまり、習得するまでに、ある程度の時間がかかるということです。時間がかかるものに対して、「わからない」という終わりの見えない闘いをすることは、学習効率やモチベーションを落としてしまう大きな原因となります。なので、あらゆる手を駆使して「わからない」という状態から脱却することが、学習継続の大きなコツとも言えます。 もちろん、「わからないところを飛ばす」という選択も、学習継続のための立派な戦略です。
日本の教育は小学校から高校、人によっては大学までインプット(受動的)中心の学習をするような教育の仕組みとなっています。そのインプットしたことが定着しているかの確認にテストがあります。それにより、勉強の目的が「テストで100点を取ること」となりがちです。すると、みな100点という定められた完璧な結果を追い求めるようになります。だから日本には完璧主義者が多いと言われています。
プログラミングには「よりよい」はあっても、学校のテストのように「完璧、100点満点」は存在しません。なぜなら、プログラミングの目的は、身の回りの課題や問題を解決、改善することだからです。安全かつ継続的にプログラムを動かし、目的を達成することができれば、極端な話なんでもOKです。過程以上に結果が求められます。
そもそもプログラミングに関わらず、完璧など存在しません。皆さんお持ちのスマートフォン、定期的にOSのアップデートがありますよね? スマートフォンで使っているアプリもアップデートがありますよね?それらも完璧ではないからアップデートが必要なのです。完璧ではないけど、世の中に革新的な貢献をしていることは事実です。ここからも、「完璧」ということが幻想的だということが言えますね。
プログラミング学習など何か新しいことへの挑戦において、こういった「考え方」は、その人の技量、経験や知能指数なんかよりも遥かに大事なことだと思います。逆にそこさえできていれば、学習も駆け抜けていけるのではないかとも思うほどです。
これから徐々に学習難易度は上がっていきますが、そういうときこそこの思考法を思い出して実践してみてはいかがでしょうか!