プログラミング学習をしていると「モチベーションが下がる」「やる気がでない」といった状況に陥ることがあります。
このような課題は誰もが抱えています。しかし、無理してモチベーションを上げようとしても一時的な効果しか得ることができません。
実際、「頑張らないと」と無理にやる気を出そうとすると、むしろやる気を失ってしまいます。
なぜこのような状況に陥るのでしょうか。また、モチベーションを上げるためには何をすればいいのでしょうか。
この記事では、プログラミング学習を継続するために覚えておいてほしい「やる気に対する正しい考え方」について紹介していきます。
目次
「やる気」や「モチベーション」はコントロールできない
「やる気」や「モチベーション」は本人の意思で都合よく上げたり下げたりできるものでありません。
なぜなら、やる気はコントロールできないからです。
たとえばゲームが大好きな人がいるとします。
その人は誰かに「ゲームをしろ」と言われなくても、何時間でもゲームをすることができます。
このとき、やる気をコントロールしているわけではありません。「ゲームをやりたい」と心の底から思ってしまうのです。
しかし勉強となると話は別です。仮にその人に「真面目に勉強しなさい」と伝えるとします。
その場しのぎで「分かりました」とは言うかもしれませんが、時間が経てばすぐくにやる気がなくなります。
理由は単純で、楽しいと思えないからです。
ここまでは勉強の話でしたが、これはプログラミング学習も同じです。
「よし、プログラミング学習をやろう」と決意しても、30分もしないうちに参考書を読んだり調べたりするのが嫌になってしまいます。
つまり、勉強のように興味のないものに対して無理にやる気を出そうとしてもムダです。
結局、やる気やモチベーションをコントロールしようとして、やる気の浮き沈みを繰り返してしまうのです。
このように、ゲームのように興味があることなら、やる気やモチベーションをコントロールするまでもなくやり続けることができます。
それではどのようにすれば、やる気が自然に出てくるようになるのでしょうか。
プログラミング学習そのものが楽しくなることを目指す
ゲームが好きな人は、いつでもゲームのことばかり考えています。イヤでも考えてしまいます。
なぜなら、ゲームをクリアしていくことそのものが楽しいからです。
例えば、強い敵を倒して達成感を得たり、ゲームをクリアして充実感を味わったりするのです。
そして、この達成感や充実感を味わうために次のゲームを新しく始めるわけです。
この達成感や充実感を味わうことこそ、プログラミングを学ぶときに役立つ「モチベーションを維持する方法」です。
つまり、やる気が自然に出てくる状態になるためには、プログラミング学習をすれば達成感や充実感が味わえるようなループを作ることです。
そうすればやる気をコントロールしなくても、人は進んで勉強することができます。
しかし、誰もがゲームのようにプログラミング学習を楽しめるわけではありません。
なぜプログラミング学習では、達成感や充実感が味わえるようなループを味わえないのでしょうか。
また、途中でやる気がなくなってしまうのでしょうか。
プログラミング学習は途中でやる気がなくなる理由
多くの人がプログラミング学習は途中でやる気がなくなってしまうのは、いきなりレベルの高いことを学ぼうとしてしまうからです。
たとえばゲームの場合は、レベル1から始まり道なりに進んでいけば自然とクリアに向かうようになっています。
これは、ゲーム開発者がゲームを楽しんでもらえるように意図的に仕組んでいるのです。
どのようにゲームのストーリーを進めればいいのか分からなくなったり、敵のレベルが高すぎして止まってしまったりするようにはできていないのです。
ゲームでは、ユーザーが楽しめるように練られているわけです。
しかし、プログラミング学習はゲームとは違います。学習者一人一人でやりたいことも違えば、学習レベルも異なります。
そのため、プログラミング学習者自身が何をどのように学んでいくかを決める必要があります。
ゲームのように、一からストーリーを進めていけばいいわけではないのです。
その結果、プログラミング学習において、レベルの高すぎることから勉強をしてしまうのです。
レベルの高すぎることに挑戦するとやる気を失う
プログラミングを学ぶ人の多くは「仕事の効率化」、「転職」、「昇給・昇格」を目指して勉強をします。
そのため、初心者がいきなりウェブスクレイピングをしたいと考えたり、難しい統計処理のプログラムを書こうとしたりしてしまいます。
知らず知らずのうちに、レベルの高いことに挑戦してしまうのです。
その結果、自分の手に負えないプログラムを学ぶうちにやる気がおきなってしまうのです。
ゲームの例で説明すると、レベル1でRPGのラスボス(最後の敵)に挑むようなことをしているわけです。
実際に私もプログラミング学習をしているとき、つまらなくなってしまったことが何度もあります。
例えば、VB(Visual Basic)で配列や引数プロシージャの概念を学んだとき、プログラムソースを読んでも全く理解できませんでした。
その結果、数ヶ月勉強が止まってしまいました。
このように、プログラミングを学ぶ人の多くがやる気が起こらなくなる原因は難易度の高いことにチャレンジしてしまうことです。
では、どうすればいいのでしょうか。
成功体験を積めるように勉強すれば、自然とやる気が出る
この解決方法として、一つ一つ成功体験を積めるように勉強をしていくことがあります。
なぜなら成功体験があれば「もう少し頑張ってみよう」と思えてくるからです。
少し難しいことに出会っても、しぶとくチャレンジする忍耐がついてくるのです。
例えば、ゲーム好きな人がなぜあれだけゲームに夢中になれるか考えてみましょう。
それはゲームの経験値です。この数値はレベルアップの指標になっています。
そして、あるレベルになると強い技を覚えたり、強い仲間を引き連れたりできるようになります。
このように、「自分のレベルが上がっていること(達成感)」と「あのレベルになれば○○ができること(期待感)」を常に感じているのです。
この達成感と期待感があるから、寝ても覚めてもゲームばかりやることができるのです。
これと同じように、プログラミングの実力が上がったと達成感と期待感を得ることができれば、学習そのものが楽しくなっていきます。
ただ、その成功体験は人によって異なります。
よく聞くのは「思っていた通りの事がプログラムで出来るようになった」、「何十時間も効率化するプログラムを書けるようになった」などです。
実際に私がプログラミングで味わった達成感は、同僚から「すごい楽に仕事が進むようになった。社内表彰に推薦したいくらいです」と言われたことです。
ただ、そのプログラムは私がいまいちだと思っていたプログラムでした。
しかし、そのようなものでも喜んでもらえたことが素直に嬉しかったです。それがきっかけになって「もっと勉強したい」と思うようになりました。
モチベーションが下がるときは必ずくる
気を付けたいのは、モチベーションが下がるときは必ずくるということです。
なぜなら、プログラミング学習が結果に結びつくまでには多かれ少なかれ時間がかかるからです。
そして、学習に必要な時間が人にそれぞれで違うからです。これは、ゲームとプログラミング学習で大きく異なる点です。
例えば、ゲームではどれくらいやればレベルが上がるか分かります。
一方でプログラミング学習は、どれくらい勉強すれば自分の実力が上がったのか測る方法がありません。
もし、今やっている勉強を毎日1時間1ヶ月続ければ、「○○できるようになる」とわかっていたら多くの人は頑張れます。
しかし、実力には個人差があります。また決まった学習方法もありません。
そのため、あなたのプログラミング学習のレベルが上がるタイミングは分かりません。
そのため、プログラミング学習そのものが楽しいと感じるまでは「やる気がない」「モチベーションが下がる」と感じるときが必ずやってきます。
ただ大切なのはモチベーションが下がるものであると理解して対策をうつことです。
そこで、私が実践した方法を紹介します。
対処法1|好きな教材で勉強する
好きな教材で勉強することは大切です。好きなものは進んで勉強したくなるからです。
たとえば、私がプログラミング学習を始めたときウェブスクレイピングをやりたくてたまりませんでした。
そこでウェブスクレイピングについて調べたり勉強したりしました。
当然、カベにぶつかってやる気がなくなってしまうこともあります。
ただ、それも数ヶ月後に点と点が線につながるときが来ます。
このように、好きな教材であれば「もっと知りたい」と感じるようになります。進んで勉強できる教材なら、やる気やモチベーションは関係なく勉強が進みます。
これを積み重ねて成功体験を増やすといいでしょう。
ただ、この方法の弱点は基礎が出来ていない人にはあまりお勧めしません。
そのため、好きな教材で始めるにしても、まずは基礎や基本は学んでおいた方がいいです。
プログラムを正しく読めないのでは話にならないからです。例えば、基礎基本がない状態で英語をいくら読んでもムダです。
興味がある内容でも内容を理解できなければ、効果が期待できません。
対処法2|会社で実践する
学習が進まないときは、強制的に学習をすることも大切です。
勉強が進んでいないときに、会社でプログラムを使って仕事を効率化することを提案してみるのがその一つです。
なぜなら、周りに宣言をするからです。たとえば、「この仕事を毎月10時間分効率化します」と提案したとします。
その提案をしたら、イヤでもなんとかする方法を考えるようになります。
こうした心理状況を利用し、先に提案をするのです。そうすれば、もうやるしかない状況に追い込むことができます。
実際に私もエクセル仕事をプログラムで自動化したときは、先に「この仕事は効率化できますよ」と宣言しました。
そして、それから一週間で関数やマクロについて調べたのです。
結局、完璧なものは作れませんでしたが、相手に満足してもらえるレベルの効率化は達成することができました。
そして、この経験で味をしめて「もっと良いものを作りたいから勉強しよう」と変化していきました。
このように自分を追い込む環境に身をおくことで、自分を動かすようにしていました。
ただこの方法は、最初は勉強するための起爆剤として使えます。
つまり、提案しても「できなくてもいいか」と思ってしまうと、たとえ失敗しても「まあいいか」となってしまいがちです。
そのため、短期間の勝負と決めて試験を受ける気持ちでやることが大切です。
対処法3|継続的に勉強する環境に身を置く
プログラミング学習をしなくてはいけない環境に飛び込むのは、学習を継続するためにお勧めの方法です。
なぜなら、環境の力を利用できるからです。
例えば、あなたの周囲でプログラミングができる人がいれば学習相談をすることができます。
また、プログラミング勉強を頑張っている人とつながることができたら、ライバルとして切磋琢磨できます。
実際に私はプログラミングセミナーやスクールに行ったことがあります。
当初の目的は「プログラミングスキルを効率的に学習する方法を学ぶため」でした。
しかしスクールやセミナーでもっともよかったのは、本気で努力している人と切磋琢磨できる環境でした。
同じクラスに会社で成果を出している人が何人もいたので、「自分も頑張らないと」「負けていられない」といつも感じていました。
だからこそプログラミング学習を続けることができましたし、結果的に会社の仕事も効率化することができるまでになりました。
同じ目標をもった人とのつながりを利用できれば、学習を継続することができます。
もちろん、最初は「ついていくが大変」です。ただ、少しずつプログラミングが分かるようになってきます。
そうなれば、自分でウェブで調べたり本で読んだりした内容をどんどん活用できるようになります。
以前の自分ではできなかったことができるようになり、どんどん成功体験が増えていきます。
あなたがプログラミングを学習する動機を確認する
プログラミング学習ではまったくの素人から始める人は少なくありません。
それこそ、文系で始める人もいます。
そのため、「なぜ学習したいのか?」を理解することがもっとも大切なことの一つです。
自分自身の気持ちを理解することができれば、それを利用してプログラミング学習を進めることができるからです。
このとき、勉強の理由が「プログラミング学習そのものが楽しい」のであれば、問題ありません。
しかし、プログラミング学習では、プログラミングそのものが楽しいと思って始める人はごくわずかです。
そのため、学習初期には大きな負担がかかります。実際、多くの人が挫折していきます。
それは、上述の通り、難易度の高いことに挑戦して「自分には無理だ」という経験をしてしまうからです。
ただ、やる気やモチベーションが下がるのは当然のこととして、対策を立てるのが賢い勉強方法です。
たとえば「仕事を効率化したい」や「昇給・昇格したい」というのはプログラミング学習のきっかけにはなっても、継続的に学習する理由にはなりません。
実際に私は効率化のためにプログラミング学習を始めました。しかし、すぐにマンガやネットサーフィンに逃げていました。
そして、学習が進まない理由を「プログラミングのセンスがないから」と思いこんでいました。
このとき、大切なのはやる気やモチベーションを無理に上げたり下げたりしようとしないことです。
その代わりに、プログラミング学習そのものが楽しいと思えるようになるのを目指すことが大切です。
ただ最初はやる気の低下との戦いになります。そのときは、あなたに合った学び方を見つけることが大切です。
そのために、いくつか環境を変えたり学習方法を変えることが大切です。
私の場合、プログラミングを勉強する環境を変えることでうまくいくようになりました。
そして、実際に会社で実践し、人に喜んでもらう経験をしたことで少しずつプログラミングそのものが楽しくなっていきました。
このように楽しいと感じることができれば、人は進んで勉強できるようになります。まずはあなたが楽しいと感じる勉強方法を見つけることから始めることをお勧めします。