こんにちは、世界の片隅で戦うプログラマーの私です。突然ですがみなさんプログラミングはお好きですか?
私も今プログラミングを学んでいますが、正直なところ、プログラミングが楽しくないです。
プログラミングてなんでこんなに楽しくないのでしょうか。
なんでゲームや漫画のように何時間でも続けられる状態にならないのでしょうか。
今回はそんな疑問をお持ちの方に、
プログラミングが楽しくないと思う理由と対処法をまとめておきましたので、
プログラミングに挫折しそうな方の参考になればと思います。
プログラミングが楽しくない理由
プログラミングが楽しくない理由を集めてみました。概ね以下の感じではないでしょうか。
・環境構築がだるすぎる
・根本的にわからないことが多すぎて写経になっている
・基本文法学びすぎてつまらなくなってくる
・カタカナ単語や知らないAPIとかが多すぎる
・値セットして表示して・・・だから何ってなる
あぁ〜あるあるですね。辛い。
プログラミング楽しくなさすぎワロタですね。詳細をみていきましょう。
環境構築がだるすぎるからプログラミング楽しくない
HTML、CSSだったらまだ良いですが、サーバサイドだと環境構築が辛いですよね。
本の手順通りにしてもエラーが出て、そのエラーをコピーして検索しても英語のサイトしか出てこない。
そして英語のサイトをやっとこさ翻訳して、その内容をやったらまた違ったエラーが出てくる。
初心者の心を完全に折り来ていますよね。
私も最近Reactの環境構築しましたが、教材のバージョンと最新バージョンで乖離がありすぎて無事心折れました・・・。
yarnであれをインストールしなければならない、これをインストールしなればならない、そして依存関係があるなどなど。
めんどくさすぎワロタですね。こういうの、全く楽しくないですよね。もはやコードじゃないしw
ただ、実務では「環境構築しといて」はあるあるなので、避けられない試練だというところもプログラミングの挫折率をグッとあげていると思います。
・まずは本や記事などの教材通りにしてみましょう。
・どうしても厳しい場合は、まず環境構築しなくていい教材(ProgateやPaizaなど)の活用も検討しましょう
・ブラウザで学習できる言語から初めてみるのもありです
・頼めるのであればMENTAなどのサイトを通じてメンターを確保するのも手でしょう
根本的にわからないことが多すぎて写経になっている
教材の中でさらっと開設されている内容がわからなかったり、
一度聞いたことが理解できなくて、最終的に教材のプログラミングコードを書き写している状態になることも少なくないですね。
自分がついていけない、と思った瞬間から「プログラミング楽しくない」の入り口がグッと開いて、漫画やゲームの誘惑が押し寄せます。
最初は写経に近い状態になるもの致し方ないのですが、その渦中は「もういっそプログラミングやめようかな」と思わずにはいられません。
・最初は写経でも致し方ないです。割り切りましょう。
・写経しつつも流れを掴みましょう。思考停止は時間の無駄です。
・「プログラミング 写経」と検索し、プログラミングが写経でもいい理由を信じて明日も頑張りましょう
・ある程度写経したらせめて「今やったことはどんなことか」の説明を自分でしてみましょう(ブログなどで初心者に解説するでもOKです)
基本文法学びすぎてプログラミング楽しくない
ドットインストールやProgateで基本的なことを学んでいる段階で「だから何」となってしまうパターンもあるあるではないでしょうか。
for文、配列、変数、関数、クラス、エラー処理・・・
プログラミングがどんなものかはなんとなくわかって来たけど、
初めて知ることが多すぎて、自分の中で整理がつかなかったり、こんなことを学んでなんになるのと思うことも沢山です。
・基本文法の学習中に作ったものをちょっといじったり、機能追加してみましょう
カタカナや知らないAPIが多すぎて楽しくない
オブジェクト、クラス、モデル、コンポーネント、プロパティ、など横文字の単語が多すぎて意味不明になりますよね。
また、最近はAPIを使うことが多く公式ドキュメントを見るのがしんどすぎて
「あぁ、プログラミングしんどいな、楽しくないな」って思う人も少なくないのではないでしょうか。
・めんどくさいのですが、あー単語がわからない、と思った瞬間にググるようにしましょう
・なんどもググると思いますが、「ググるのめんどくさいから覚えろよ自分」と追い込むようにしてみましょう
・カタカナ単語を使ってる俺カッケーでいいんです
値セットして表示して・・・だから何ってなる
苦しい思いをして環境構築をして、基礎文法を覚えて、値を渡して配列にしてセットして、エラー処理も入れて、リファクタリングもして
さー画面に出た!・・・・だから何?とふと我に帰ることもあるかと思います。
なんか大変な思いをした割には出来上がったものしょぼいなと感じることもプログラミングが楽しくないと思う要素の1つですね。
・これも、機能追加で主体的に何かを作るようにしてみると良いかと思います。
・いや、そこまでできるやつって何人いる?1割ぐらいじゃない?
プログラミングは楽しくないけどゲームは楽しい
ここまでプログラミングが楽しくないと思っている人にありがちな理由と対処法を述べて来ましたが、それでもやっぱりプログラミングはつまらないですよね。
でも、ゲームは楽しいですよね。なんでプログラミングは楽しくなくて、ゲームは楽しいのでしょうか。
「学ぶ意欲の心理学」によると、やる気の要素として
充実・訓練・実用・関係・自尊・報酬
があるとのことでした。
これに当てはめてゲームとプログラミングを考えてみましょう。
ゲームの場合
充実:ゲームのキャラ、グラフィック、世界観が楽しくて充実
訓練:レベル上げなどをしてキャラ(主人公=自分)が強くなるのが楽しい
実用:戦略や反射神経などを鍛えることができる
関係:友達と一緒に対戦できる
自尊:ゲームに勝つことにより、自分が優れていると感じることができる
報酬:ゲームをすることでレアアイテムがゲットできたりして楽しい
ゲームにはこの5つの要素がバッチリ入っているので、やる気が続くし、楽しいというわけですね。
ではこれをプログラミングに置き換えていきましょう。
充実:
プログラミングの論理が大事な世界観(個人や他者の感情論に支配されないところ)が良い
訓練:
プログラミングに時間を投じれば投じるほど作りたいものが作れるようになる
実用:
マッチングアプリや家計簿、Todoリストなど自分が作りたい実用的なものが作れる
関係:
友達やもくもく会、ツイッターなどで一緒にプログラミングできる仲間がみつかる
自尊:
スキルを磨き、稀有な存在になることでプログラマーとしての自尊心が高まる
報酬:
プログラマーになり、スキルを向上させることで給与が上がっていく
あれ、結構プログラミングは学習意欲の要素を満たすではありませんか。
ではなぜ、プログラミングが楽しくないと思ってしまうのかというと、
「プログラミングができるようになることで良くなる未来」に現実味を持つことができない
ということではないでしょうかね。
今は環境構築や意味不明なエラーしか見えていないかもしれませんが、
それを乗り越えた先に得られるものが超いい未来だと信じて、自分がそれ享受するに値する人間だ、と思うことができれば、
きっとプログラミングも楽しくなります。
プログラミングが楽しくない時の対処法
プログラミング全然たのしくない、でもどうしてもプログラマになってお金を稼ぎたい、プログラマとして勉強せざるをえない、という方も中にはいらっしゃるかと思います。
なのでプログラミングが楽しくないと思う方が取るべきアクションについてまとめました。
ちょっと心理的な要素が多いかと思いますが、悪しからず。
プログラミングが楽しくて仕方ない人を探しまくって話を聴きまくる
世の中には羨ましいことにプログラミングが楽しくて仕方なく、土日も寝る間も惜しんでプログラミングをやる人たちがいます。
そういう人たちをブログやTwitterやもくもく会や勉強会などで探し出して、
プログラミングがなぜ楽しいのかをひたすら聴きまくりましょう。
プログラミングが楽しいと思っている人たちのロジックをインプットしまくるのです。
できるプログラマーだったらどう思うかを想像する
もしあなたに尊敬するプログラマーがいるのであれば、その人が今のあなたの状況に置かれた時にどう思うかを想像してみましょう。
例えば私は今、プログラミング学習教材で
苦しみもがきつつも、ずーっとやってきて、今度はリファクタリングの部分に差し掛かり、「あーめんどくせ!」と思ってしばらく手が止まってしまいました。
ここで、私の知り合いでプログラミングが超絶好きなMさんを憑依させると
「どうやったら無駄のないソースがかけるか知りたくてたまらない」という思考になりました。
Mさんを憑依させて、続きをやらねばです・・。
プログラミングであなたが成し遂げたいことやありたい姿を超具体的にする
これ結構大事だと思うんですよね。
プログラミングはあくまでもツールなので、プログラミングをもってあなたが成し遂げたいことを明確にしましょう。
一年後に渋谷のWEB系企業に勤めて、主要メンバーになる、新しい技術が学べるモダンな環境で働いている、
二年後には、引き続き東京に住みつつ、フリーランスエンジニアになって月80万もらう、ゆくゆくは週3日勤務にする。
など、あなたが目指す姿を再度具体的にしましょう。
目指す姿が明確にできたら、その理由を書きましょう。
営業したくないから
人と関わらない仕事がしたいから
労働で消耗したくないから
お金を稼ぎたいから
お金のことで悩みたくないから
お金を稼いで親に送金したいから
労働する上で貯金しつつ、投資などを始めたいから
みたいな感じでOKです。
その次は自分がその一年後のありたい姿になったつもりで、セルフインタビューをしてみましょう。
その後、フリーランスとして独立し、月単価80万円を稼ぎました。今は、週3日勤務です。
他の人の誘惑を断ち切って、あらゆる干渉も避けつつ、鋼の心でコードを描き続けました。途中でしんどくて自分はプログラミングに向いてないし、プログラミングちっとも楽しくないと思ったのですが、どうしてもお金が欲しかったので、コードを書くしかありませんでした
目標を達成した時のイメージをスマホの待ち受けにしたり、時には人に相談したりしました。また、目標となる人と定期的にお話しさせていただき、実現のイメージを沸かせました。どうしても辛い時は休息を取るようにしていました。
と、まあこんな感じです。
自分がプログラミングを通してやりたいことを成し遂げた時の自分になりきって、話す。その感覚をつけることが大事です。
詳細は「神メンタル 「心が強い人」の人生は思い通り」という本を参考にしてください。
参考:【書評】神メンタルという書籍に感銘されまくったのでレビューする
SNSで進捗報告して、逃げられない環境にする
もしくはSNSでツイッターに報告するのも有効ですね。
ツイッターのタグで100daysOfCodeというタグをつけて100日チャレンジしている人や、
今日は10時間プログラミングを勉強しました、と教材のページ数や内容をツイートしている人などもたくさんいますよね。
その人たちをフォローしつつ、自分のモチベーションにしてみると良いかと思います。
プログラミングで困ったことを質問してみる
プログラミングが楽しくない人は独学のケースが多いかと思います。
そんな時はネット上で構いませんので積極的に人と絡むようにしてみましょう。
Teratailというサイトでは質問ができますし、プログラミングの質問に自分が答えることも可能です。
プログラミングを通じて人と話すことで、苦しんでいるのは自分だけではないと思うことができますし、
繋がりを見いだすことができるので、モチベーションを上げてくれることでしょう。
プログラミングで作ったものは、しょうもなくても世に出す
ドットインストールやProgateやRubyチュートリアルで作ったものであれ、なんであれ作ったものを世の中に見せてアピールしていきましょう。
1いいねでも承認されればこっちのもの、
使えるものはなんでも使った方がいいんですよ。やっぱり承認欲求を満たしたいのが人間なのでローカル環境のキャプチャでもなんでもいいので、
こういうことをしてるとバンバン発信していきましょう。
それすらやらない人が多いのですから。
プログラミングをやらなかったらどうなるかを考えて奮い立たせる
プログラミングが楽しくなくてもうやめたい、辛い、と思った時に、
ではプログラミングをやめてどうするかを考えてみましょう。
コンビニアルバイト?営業?販売?・・・そう考えたときに、「そっちの方が断然いいや!」と思えることがあるのであれば
プログラミングは一旦置いといて、新たな挑戦をしてみても良いかと思います。
プログラミングが楽しくないならやめても大丈夫
と、ここまでプログラミングが楽しくないと思う時の対処法や、プログラミング学習のモチベーションを上げるための方法などをつらつらと書いてきましたが
が!ですよ。
基本的にあなたが苦痛と思っているのであればプログラミングをやめちゃっていいのですよ
だってプログラミングがつまらなくて、楽しくないあなたが、つまらないなりにプログラミングを頑張ったところで、
寝るのも食うのも差し置いて土日もガリガリコード書いてる奴らに勝てるわけがないのですから・・・!
鳥は空で飛ぶように、魚は海で泳ぐのが適しているように、
あなたはあなたが得意なこと、別に嫌じゃないこと、長時間それをやっていてもそんなに苦痛じゃないことをやるべきなんですよ、
プログラミングは義務ではありません。プログラミングできなくてもいきていく術はたくさんあります。
プログラミングはやっぱり楽しくないという人もたくさん世の中にいることでしょう。
どうしてもプログラミングで稼ぎたい場合、本当にそれがプログラミング出なきゃダメなのかをよく考えましょう。
辛くてしんどくて今すぐにやめたいことで稼ぐ30万円とそんなに嫌ではなくて、別に長時間やってても苦痛でない作業で30万円もらえるのであったら、
後者の方が良いに決まっていますよね。
あなたはあなたが難なくできることをすべきです。
プログラミングを無理にやらなくてもいいんですよ。
まとめ
ということで今回はプログラミングが楽しくなくてしんどい思いをしている方に、対処法などをご紹介してきました。
願わくば、一億総プログラマーになって介護も家事も食事も全て自動化されて、電脳化も許可されて
人々が早く労働から解放されないかなと思っている私ですけどね。笑。
そうですよね。人類が労働から解放されれば、もはやプログラミングを勉強する必要もないのだと思いますし、
そもそも電脳化されれば、勉強する必要もないですね。
という訳で、妄想はここまでにしておきましょう。プログラミング教材に戻ります。いつか立派なプログラマーになる日のために・・・!
それでは