プログラミング学習の最大の障壁とも言われているのが、ズバリ「モチベーション維持」の大変さ。
「最初はとてもやる気があって、いろいろ本を開いたり調べ物をしているのになかなか上達していかない…」という人は多いのではないでしょうか?
この記事では、そんなプログラミング学習が行き詰まってしまうような状況になった時に、どうやってモチベを上げていくか、その具体的な方法について解説していきたいとおもいます。
目次 (クリックでジャンプ)
なぜプログラミング学習は難しいのか?
なぜ、プログラミング学習はモチベーション維持が難しいのでしょうか?
主な理由は、次のようなものと言われています。
- 全体像が見えない
- 最初の頃は、基礎的なことが延々と続く
- エラーがうざい
僕は特に、全体像が見えないので、「これが何の役に立つの?」ということをめちゃめちゃ疑問に思っていました。
特に、本で勉強していた頃は、順番通りに進めているととても時間がかかってしまうので大変でした。
では、モチベーションを上げるにはどうすれば良いかというと、
- 全体像を見やすくして
- いきなりWebサービスなんかを作る
のが良いかというと…
そうではありません!
それは、なぜかというと「プログラミングの基礎」は絶対に必要だからです。基礎を飛ばしていきなりいろいろしだすことの方が、かえって時間がかかります。
だから、プログラミングのモチベーションを上げるには、やはり
「単純にやる気を出す」
ことしかありません。
では、実際に僕がやってきた、単純にテンションが上がって「ウォー!!」ってなる維持法を7つ紹介します!
1. ハッカー漫画、ハッカー本を読む
まずは簡単にモチベを上げる方法を紹介します。それは、ハッカーがかっこいいことしている漫画や本を読むことです。
本当に単純ですが、人間はこんなことでモチベーションが上がってしまうんだから不思議です。
本のおすすめは、『ハッカーと画家』というやつです。
ハッカー界隈では名前を知らない人はいないと言われるほどの “超” 有名(Lisp) ハッカー、ポール・グラハムが書いた本です。
彼は天才プログラマであると同時に、ベンチャーを立ち上げて大成功を収めた実業家でもあるので、いろいろ学ぶところは多いと思います。
「学校とか企業ってクソだよね」
「規則に縛られずに楽しいことしようぜ!」
みたいなことを言っているのですが、なんともしびれます。
漫画では、『王様のヴァイキング』というやつがいいと思います。
主人公は高校中退した天才ハッカーで、身の回りで起こる事件をプログラミング能力を駆使して仲間たちと解決していくお話です。
実際にプログラミングの知識がつくかといえば、決してそんなことはなく(むしろアリエナイことをやり出したりする) のですが、テンションはめっちゃ上がります。
こういうフィクション/ ノンフィクション の読み物はやる気を奮い立たせてくれる最高のものです。
積極的に使っていきましょう! (他にもいいのあったら是非教えてくださいm(_ _)m)
2. プログラミング映画やTed をみる
同じようなものですが、プログラミングを使って活躍する映画や、Ted などをみるのもいいと思います。
プログラミングやハッカーなどが物語の鍵になる映画・ドラマは、次のようなものが思いつきました。
- ソーシャルネットワーク (2010)
- ソードフィッシュ (2001)
- バトル・オブ・シリコンバレー (1999)
どれも映画としても面白いので、みてみる価値はあると思います。すぐにキーボードを叩きたくなること間違いなしです。
また、Ted では、リアルに現役で活躍しているプログラマの人や、ハッカーの講演、プレゼンをたくさん見つけることができます。
また、Tedを見ることには、次のような利点もあります。
- プログラミングに欠かせない英語の動画である
- Itの周辺知識も身につく
- プログラマーがどういう人かがわかる
このように、たくさんのメリットがあるのでオススメしたいです。
3. すぐに動くもの(ゲーム) を作る
次に大切なことは、動くものを作ることです。
動くものとは、ゲームなどの「遊べる系」ですね。大体はゲーム。
なぜかというと、
と言っている人の大半は、Java や Cなどの初学者に難しく、動かすにはなかなか苦労のいるものをやっている気がするからです。
別に、Java が悪いと言っているわけではありません。
でも、そうではなくて、動くものを作った方が、単純に楽しいです。
僕も最初はJava から勉強を始めたのですが、つまらなさすぎて泣きそうになってました。
でも、友達から「ゲームを作ろう!」と言われて思い切って言語を変えて、ゲーム作りをし始めたら、なんとプログラミングが楽しかったのです。
コード次第でゲームのキャラクターやシステムを動かすことができるので、見た目にもわかりやすく、ある程度完成も見えているので努力しやすかったんだと思います。
こういう本も出ていて、本当にわかりやすいのでぜひ試してみてください!
4. プログラミングについて語れる友達を作る
プログラミングができるようになって感じているのですが、「プログラミングができる人には、プログラミングができる友達がいる」のです。
これは、単純に「できる人同士が集まっている」のかと思っていたのですが、実はそうではなく、いろいろ聞きあえる人がいると成長度合いが大きいということがわかりました。
特に、初学者のうちはエラーや環境構築にとても時間がかかり、それだけで嫌になってしまうことがあります。
そうしたことがあった時に、メンターのような人がいるととても助かります。
また、いろいろ聞いているのに途中でほっぽり出すと悪いな…という気分にもなります。
なので、メンターを作ることはとても大事です。
では、「どこで作るか?」ということですが、知り合いの中で多いのは「Twitter」や「Quita」などを使って知り合いを作るパターンです。
お金をかけずにいろいろできるので、ぜひやってみてください!
(僕もサブ垢でプログラミングアカ持ってます)
5. 学習環境を整える
5つ目は、良いパソコンを買うこと、良い環境を整えることです。
パソコンをつけるだけでイライラしてしまったり、変なところでエラーを出してしまったりすることほどイラつくことはありません。
だから、
と思わないで、しっかりと準備しましょう。
では、具体的にどんなパソコンを買えばいいかというと、Mac book です。
いや、これは僕がMac 信者だから布教をしようしているだけではありません。
Mac は、Linux をベースにして作られているので、環境の構築がとてもやりやすいんですよね。(コマンドも似ているし)
ということで、Mac book を買いましょう。
Windows なんてなくなれ
6. プログラミングコンテストに出てみる
プログラミングがある程度できるようになったら、プログラミングコンテストに出てみるといいでしょう。
おすすめなのは、オンラインでやるやつです。家で、一人でも参加できるので、気軽に挑戦することができます。
ある程度と書きましたが、本当に初心者でも参加自体は可能です。でも、あまりに何もできない時から参加すると逆にモチベが下がってしまう可能性があります。
じゃあ、ある程度ってどのくらい?
ある程度とは、「Fizz Buzz が書ける」くらいです。
1から、ある程度の数 (100とか) までの数字のうち、その数が3の倍数の時は「Fizz」、5の倍数の時は「Buzz」、3と5の倍数であったら「FizzBuzz」を出力するようなプログラムを書け
という問題です。
と思う人もいるかもしれないのですが、いいんです。
おすすめは、AtCorder というやつ。全部日本語なので、問題が読めないこともないですし、最初にやるものとしてはぴったりです。
AtCorder とは、日本語で参加できるオンラインプログラミングコンテストの中で、最大の規模を誇るコンテストです。
問題の難易度がA,B,C,D などに分かれていて、初心者でも参加しやすくなっています。
そして、大体は解けません。でも、他の人の回答を見て
と思うだけで、モチベは爆上がりしていきます。
チャレンジあるのみです!
7. 目標を立て直す
最後は、目標を立て直すこと。
あなたは、プログラミングをして何をやりたいですか?
という人以外は、「プログラミングを使って何かをしたい」という目標を持った人が多いと思います。
- Webサービスを作れるようになりたい!
- SNSなどの交流サービスを作ってみたい!
- ホワイトハッカーになってみたい!
そうした思いを、プログラミングの知識を少しつけた今、もう一度見返してみてください。
そうすると、より具体的に何かしなければならないことが見えてくるはずです。そしたら、またモチベを持って取り組んていけるはずです。
はっきり言います。これは精神論です。
でも、それが大切なんです!
要は、気合い入れてまたキーボードを叩きたくなったら勝ちってことです。
もう一度思い出して、燃え上がりましょう!
最後に:まだ慌てるような時間じゃない
この記事を読んでくれている人は、プログラミングを始めて間もない方だと思います。
そういう人にぜひ伝えておきたいのが、「まだ慌てるような時間じゃない!」ということです。
プログラミングができるようになるには長い時間がかかります。あなたは、その第一歩を踏み出したばかりなのです。
誰しも、最初からできるような人はいません。コツコツやっていくしかないんです。
あなたは、きっと着実に前に進んでいます。