原因1:プログラミングを学ぶ理由(目標)が曖昧
はっきり言って、『プログラミングを学んで特に何がしたいってわけじゃないけど、とりあえず将来的に役に立ちそうだから』…といったような曖昧な理由では、ちょっとしたことで挫折してしまう確率が高いです。
プログラミングに限らず、何かを長期的に学び続けて身につけるためには、具体的(明確)な理由・目標が不可欠です。
例えば、外国で働いて生活してみたいと考えている人であれば、必然的にその国の言葉を学ぶ理由も明確になりますよね。
『海外で暮らす』という明確な目標を達成するために、言語を学ぶモチベーションを長期的に保てる可能性が高いと言えるでしょう。
一方で、『外国に行くつもりもないし、外国の人とコミュニケーションを取りたいわけでもないけれど、なんとなく外国語を学んでおくと役に立ちそうだから』…といった曖昧な理由ではどうでしょうか?
おそらく、仕事が忙しくなったり、ゲームなどの娯楽にハマったりすると、学習に費やす時間が減っていき、気がつけば全く学習しなくなっていた…ということになるでしょう。
もちろん、プログラミングも同じことが言えます。
『自分が考えたオリジナルのゲームアプリを作ってみたい』とか、『自分でホームページを作成・更新できるようになって、スモールビジネスを始めてみたい』とか、そういった具体的な目標があれば、プログラミングを学べば学ぶほど確実に目標に近づけるので、ちょっとやそっとのことでは挫折しづらいでしょう。
反対に、目標が曖昧であれば、プログラミングを学ぶことよりも気軽にできて楽しいこと(YouTubeを観たりゲームをしたり)を優先しがちになるのが人間の性(さが)です。
『将来的に役に立ちそうだから』というのは、一見、しっかりした理由であるように思えますが、具体的か曖昧かで考えると、極めて曖昧だと言えます。
人は、曖昧ではっきりしない目標に向かって地道に努力を続けられるほど強くはないというのが、筆者の持論です。
プログラミングを学び始める前に、『プログラミングを学んで何がしたいか?どうなりたいか?』をしっかり考えて、目標をはっきりさせておくと、それだけで挫折率をグッと減らせるのは間違いないと思います。
POINT!
- ・目標が曖昧だとちょっとしたことで挫折してしまいやすい!
- ・『将来的に役に立ちそうだから』という理由は、極めて曖昧!
- ・プログラミングを学んで何がしたいか、どうなりたいかを明確にすることが大切!
原因2:目標が高すぎる(非現実的である)
具体的な目標があっても、それがあまりにも現実離れしたものである場合、逆に挫折の原因となることがあります。
例えば、『プログラミングを学んで、未経験からGoogleにITエンジニアとして入社する』…という目標だとどうでしょうか?
上の例はちょっと極端かもしれませんが、『ITエンジニア未経験だけど、プログラミングを学んでIT関係の大企業(年収600万円以上)に転職したい』みたいな目標も、年齢や状況によってはかなり達成難易度が高く、非現実的と言えるかもしれません。
目標としては具体的で分かりやすいのですが、このように極めて高い位置に設定された目標を達成するには、楽しく自分のペースでプログラミングを学ぶ…みたいな方法では難しいでしょう。
頑張れば達成できると思える程度であれば、多少無理をするのもアリかもしれませんが、頑張っても頑張っても目標に近づけないようであれば、もはやその目標は継続の邪魔になるだけです。
そのうち頑張り続けることに疲れてしまい、学習を続けられなくなるでしょう。
『言われなくても、そんな非現実的な目標なんて立てないよ!』…と思うかもしれませんが、SNSで色んな情報が入ってくる現代においては、無意識的に高すぎる目標を立ててしまうこともあります。
例えば、SNSでは経験豊富なITエンジニアが、ゲームやウェブ・スマホアプリを自作して『こんなの作りました!』と、投稿しているのをよく見かけます。
そして、それを見て『いいなぁ。まずはこれぐらいのものを作れるレベルを目指してみよう!』と、考えることは自然に思えますよね。
ですが、そのアプリは実は作るのがかなり難しい(初心者が作れるようになるには何年もかかる)ものかもしれません。
一見、シンプルで誰にでも作れそうなアプリに見えても、アプリの裏側で様々な情報のやり取りが行われている(=作るのが難しい)…というケースは、実際によくあります。
この場合、『ちょうど良い目標になるかも』という自分の感覚と実際の難易度に大きなズレが生じるため、努力して学習を続けても中々目標に近づけず、自信を失ったり、学習を楽しめなくなったりするかもしれません。
そうなると、『どうせ自分は頑張っても大したものは作れそうにないし、もうやーめた』…というふうに、挫折へと繋がってしまうでしょう。
筆者も、SNSに流れてくる『誰かの自作アプリ自慢』を眺めては、『自分はまだまだこのレベルには達せそうにないな…』という気持ちになり、モチベーションを落としてしまうことがあります。
なので、プログラミングを学ぶ理由や目標は具体的であるのと同時に、達成するのが難しすぎない程度に設定しておくことが大切です。
なお、適切な目標レベルは年齢や状況にもよるので一概には言えませんが、『IT企業にエンジニアとして転職するのが最終目標だけど、まずは趣味レベルでも自分でアプリを作れるようになる』というふうに、目標にステップや柔軟性を持たせておくと良いかもしれません。
それに加えて、無駄に誰かと比べてしまわないために、SNSで必要以上に繋がりを持ちすぎないようにするというのも有効だと思います。
『プログラミングの学習は一人だと挫折するので、仲間を作りましょう!』…という意見もあり、この意見には納得できる部分もあるのですが、筆者としては繋がりが返って邪魔になってしまうリスクの方が高いように思えます。
仲間を作るなら、有益な情報を発信しているアカウントだけに限定してフォローするなど、無駄に繋がりを広げ過ぎないように気をつけると良いと思います。
POINT!
- ・目標が具体的でも、それが達成困難だと挫折の原因になり得る!
- ・SNS経由で色々な情報が入ってくる現代においては、無意識的に高過ぎる目標を立ててしまうこともある!
- ・学習仲間を作ることも大事かもしれないが、繋がりを広げ過ぎるのも問題!
原因3:早く&確実に結果(お金)を得たいと考える
プログラミングを学ぼうとする目的は人それぞれかと思いますが、多くの場合は副業や転職…すなわち『お金(収入)』が主な目的になるかと思います。
プログラミングを学ぶ目的がお金であることは自然だと思いますし、それ自体が問題というわけではないのですが、お金を目的とする場合は注意が必要です。
まず、プログラミングを学んでWebアプリやスマホアプリをリリースできるレベルに達することができたとしても、多くの場合、初めて作ったアプリはほとんどダウンロードされず、収益も発生しないと考えた方が良いです。
また、1作目だけでなく2作目、3作目を作ってリリースしても、なかなか実を結ぶことはない(お金にならない)のが現実だと認識しておいた方が良いでしょう。
ITエンジニア(プログラマー)への転職を目標としているような場合も、企業が求めるレベルのスキルを身につけるには、最低でも1年ぐらいかけてじっくり学んだ方が良いと筆者は考えています。
ネットに『最短3ヶ月で身につく!』みたいな広告を出しているIT系のスクールもありますが、筆者的には論外です。
いずれにせよ、『求める結果が得られるには長い時間がかかる』ということを予め覚悟しておくことが、挫折を予防してくれます。
『こんなに頑張ってるのに全然稼げないし、なんだか転職も難しそう…。』という焦りが出てしまうと、余程プログラミング自体が好きでない限り、学ぶ努力を続けるのが難しくなってしまいます。
なので、自分にとって都合の良い結果なんてそんなに早く&楽には得られないという現実を受け止めて、長期戦を楽しむ感覚を持つことをおすすめします。
そもそも、年齢や適性、その他の環境などによっては、求める結果が永遠に得られない可能性だってあります。(残酷な現実かもしれませんが)
結果を求めることは大事ですが、一方で『求める結果が出せなかったとしても、プログラミングを学ぶことで得られる知識や経験は必ずどこかで活かせる』ぐらいの感覚も持っていた方が、挫折はしづらいと思います。
プログラミングスキルを活かせる仕事は、プログラマーだけではありません。
経理、総務、人事、営業…どんな会社のどの部署であっても、ほぼ100%、パソコンやタブレットを使って何らかのシステムを扱う業務が含まれます。
そしてプログラミングスキルがあれば、そういったシステムをスムーズに扱えたり、あるいは改善できたりするかもしれません。
今までは、PCスキル=WordとExcelが扱えればOK…という時代でしたが、これからは違います。
エンジニアでなくても、IT技術を活用した業務の効率化を提案・実行できる人材が求められるようになると、筆者は確信しています。
プログラミングを学んでも、自作のアプリは収益を産まないかもしれないし、プログラムコードを書く仕事には就けないかもしれない。
それでも、プログラミングを学ぶことは無駄にはならないという気持ちを持っていれば、そう簡単に学習を諦めることはなくなるはずです。
かく言う筆者も、個人で開発したスマホアプリが想像していた以上に収益を産まなくて、『こんなに努力してプログラミングを学んでも稼げないなら、違うことに取り組んだ方が良いのかな…?』と思った時期がありました。笑
ですが、上記のように、『直接的には収入UPに繋がらなかったとしても、学んだことが無駄になることはない』という考えに至ってからは、楽しく学習を続けられています。
POINT!
- ・プログラミングを学んでお金を得たいという目標自体に問題はない!
- ・でも、お金という結果を得られるまでには、長い時間がかかることを覚悟しておこう!
- ・たとえ求める結果が出せなかったとしても、プログラミングスキルが無駄になることはない!
おまけ:趣味にすることもできる
前章で、『どんな仕事でもプログラミングスキルは活かせる』みたいなことを述べましたが、そうは言っても、『ITエンジニアになりたくてプログラミングを学んだのに、結局全く違う仕事に就くことになった』…となれば、少々腑に落ちませんよね。
Web開発に携わりたくてJavaScriptやPHPを学んだけれど、結果的に経理とか他の職種で採用されたとなれば、残念ながら業務でプログラムコードを書く機会は失われるでしょう。
そしてコードを書かなければ、プログラムコードを書く時のルールやコツなど、時間をかけて学んだことを少しずつ忘れてしまうかもしれません。
…それってやっぱり無駄じゃない?活かせてなくない?
と、思ってしまうのも無理はないかもしれません。
確かに、どんな仕事でもプログラミングのスキルは活かせるというのは、やや綺麗事と言えるかもしれません。
ですが、プログラミングの良いところは、パソコンが一台あればどこでも一人でもできることです。
3Dグラフィックを駆使した高負荷なゲームを作りたいとかでなければ、マシンのスペックも並レベルで十分です。(低スペック過ぎると少々問題はありますが、少なくとも何十万円もするようなハイエンドなPCである必要はありません)
なので、結果的にプログラムコードを書かない仕事に就いたとしても、個人的にプログラミングを続けることは簡単にできます。
なので、学んだことが活かせないかもしれないのが怖い・嫌だと思う人は、こう考えてはいかがでしょうか?
『プログラミングは趣味にもできる』と。
プログラミングの学習をある程度続けられる人というのは、基本的にはプログラミングが好きで、興味を持つことができる人だと思います。
であれば、プログラミングは趣味としても立派に成り立つと言えます。
実際、筆者にとってのプログラミングは、趣味的な一面もあります。
大して面白くないゲームをプレイするよりも、プログラムコードを書いたり、技術ブログを読んだりしている方が数百倍楽しいです。
人生の中で、自分が熱中できる趣味を持てるなんて、素晴らしいことだと思いませんか?
ただ単に自分が楽しめるというだけでも価値がありますが、それに加えて、『もしかしたら自分のアプリが、世のため人のために役立つかもしれない』という可能性も十分に秘めているのです。
筆者はブログだけでなく、YouTubeでもプログラミングに関する情報を発信していますが、時に「参考になりました。ありがとうございます。」というような、とても嬉しいコメントをいただくこともあります。
自分で言うのもアレなんですが、これって人の役に立つことができていますよね。
筆者はYouTuberではないので、YouTubeへの動画投稿は完全に趣味なのですが、趣味でやってることで人の役に立てるなんて本当に嬉しく思います。
というわけで、プログラミングが好きで興味を持ち続けている限り、どう転んでもプログラミングの知識・経験が無駄になることはないという結論に達するので、安心して学習を続けていきましょう!
僕も、この旅をまだまだ続けていくつもりです。
POINT!
- ・プログラミングは趣味にもできる!
- ・趣味としてプログラミングを続けることで、自分が楽しいだけでなく、誰かの役に立てる可能性も十分にある!
- ・やっぱりどう転んでも、身につけたプログラミングスキルが無駄になることはない!