プログラミング

プログラミングで挫折する原因と対処法。続けるために必要なコト

プログラミングを勉強したい人は増えています。

ただ、学びたいと思う一方で、「プログラミングをどうやって勉強したらいいかがわからない」と感じている人は多いと思うんです。

で、結局勉強の仕方が分からない → 上達しない → 挫折する

という負のループに入って辞めてしまう。

せっかくやる気になって頑張ろうとしたのに、これでは非常に勿体ないです。

そこで今回は、初心者にありがちなプログラミングに挫折する原因と対処法について書いてみようと思います。

なぜプログラミングで挫折してしまうのか

コードの意味が分からない

プログラミングの難しさ。

それは、「自分の書いたコードが、何のために存在しているか理解出来ない」からです。

作りたいものの完成形はイメージ出来ているものの、どうやって作ればいいか分からない。

とりあえず手本のコードを写してみたけれど、

このコードは何のために必要なの? どんな処理を実行しているんだろう?

といった疑問が浮かんでくるんですよね。

スポーツや勉強であれば、達成感は簡単に得られます。

  • いつもより球が入るようになった
  • 今回は点数が伸びた

というように、結果が目に入りやすいのです。

それに対して、プログラミングは物が出来るまでの過程が、どうしても見えづらい

書いたコードが間違っていれば、機械はウンともスンとも言いません。なので目標に向かって、進んでいるのか、後退しているのかすら分からないんですね。

その結果、「プログラミングなんてつまらない」と思ってしまうものなんです。

そもそも作りたいものがない

プログラミングを勉強したくても、「作りたいもの」がなければ、やる気を維持するのは難しいです。

“作りたいモノがある = 目標がある”ことと同じだからです。

例えば、英語の勉強。

私たちは学校で英語を学んできました。しかし10年近くもの間、勉強したにも関わらず、ほとんどの人は英語で会話することが出来ません。

これはなぜかというと、“英語を学習する目的”が希薄だからです。

海外へ留学に行けば、数年で日常会話は話せるようになります。

私の友人は、挨拶すら出来ない状態で留学しました。にも関わらず、1年後には会話に困らなくなったそうです。

これは、その土地で生活するためには、現地の言葉を学ぶ必要がある。

現地の人と会話がしたい。勉強しよう!

といった目標が出来るからなんです。

目標を持てば、上達は速いです。

ですので、プログラミングをするなら、「作りたいモノ=目標」はあった方がいいでしょう。

もちろん、初めは他人から与えられた課題で、モノ作りをしてもOKです。

ただ、理解が進んで来たら今一度、

  • 作りたいものはなんだろうか?
  • プログラミングでどんなことを実現したいのか?

を考えてみましょう。

目標がなければ、プログラミングをする意味を見失うかもしれません。

途中で挫折してしまうのは、目標を持っていないからなのです。

基礎を理解していない

少し難しい話になりますが、

コンピューターは「0、1」という2種類の数字を組み合わせることで、様々な処理を行っています。

マウスがクリックされると画面が変わります。そして、キーボードを叩くと文字が入力されます。

普段何気なく行われているこれらの操作は、コンピューターが”00001111″といった数字で命令を解釈し、実行しているからです。

本来であれば、まずはコンピュータの動く仕組みを学ぶ必要があるでしょう。

  • コンピューターはどうやって動いているのか
  • 命令を実行し、処理を行うとは何を意味するのだろう

といったことを、まず学びましょう。

しかしながら、コンピュータの仕組みを学ぶ前に、大半の方は、”言語(C言語、Javaなど)”からスタートしてしまいます。

なぜなら、“言語”を学ぶのは、とても簡単で分かりやすいからです。

初心者であっても、簡単にゲームやアプリが作れてしまいます。本来であれば、何百行も必要なコードが、言語を使えばたったの一行で済む。そんな事もありえるんですね。

ですので、大半の方はわざわざ面倒な基礎を飛ばして、言語を利用します。

その結果、根本的な仕組みを理解しないまま、”作れた気分”になってしまうのです。

ただ、これでは全体の動きが想像できなくなってしまいます。何かトラブルが発生した際に、対処できなくなってしまいます。

上手く動かないのに、その原因がよくわからない。Web上に落ちているコードを、適当に拾ってきて解決する。

分からない事は次第に積み重なり、ある閾値に達した時に「自分にはプログラミンが向いていなかったんだ」といって、諦める。

基礎から始めていれば挫折しなかったであろう人が、諦めてしまうのは、とても勿体ないと私は思うのです。

どうやって”つまらない”から脱却すればいいのか

簡単なモノを作ってみる

プログラミングを始める際、簡単なモノから少しずつ作ってみるといいでしょう。

モノを作っていく内に、自分の作りたいものや、プログラミングの可能性が見えてきます。

すると、「プログラミングが出来れば、自分のやってみたい事が実現出来るかもしれない。もしかしたら、こんな事もできるんじゃない?」という風に、意識が変わってきます。

プログラミングをする意味が分かれば、次第に目標は見えてくるものです。

私自身、当初は作りたいものがなく、”プログラミングって何のためにあるんだ?”と考えていました。

プログラミングの必要性が分からず、なぜこんなにも世間で注目を浴びているのかが理解できませんでした。

けれども勉強を続けていく内に、世の中にあるすべての機械が、プログラムによって動いていることを知りました。プログラミングの可能性を感じるようになったのです。

まずは、小さくてもいいので簡単なサービスやアプリを作ってみるのがいいんじゃないでしょうか。

半年以上は続けよう!

何事も始めた当初は”つまらない”と感じるものなんですよね。

初期の段階では、分からない事ばかりなので、”自分には無理だ”と思ってしまいがち。

ある程度の期間続けないと、本当の面白さに気づくのは難しいものなんです。

例えば、このブログだって始めた当初は分からない・出来ないことだらけでした。

文章は上手く書けないし、サイト運営の仕方も分かりませんでした。それにwordpressの使い方は理解出来ないし、サーバーって何?レベルでした。

ですので、最初は自分には

ブログを続けていく能力がない。誰も見に来てくれないしつまらない。辞めてしまおう

と思ったものです。

しかし、半年が過ぎた頃から、少しずつサイトを訪問してくれる人が増え始めました。一人また一人と、その数は増えていきました。

サイト運営を続ける過程で、文章力は向上しましたし、ITに関する知識も増えました。「出来ること」が増えてきたんですね。

すると、次第にブログを書くコトが楽しくなってきたのです。

ある程度分かるようになるまでは、”忍耐の時期”です。

楽しくなるまでには、時間がかかる。

プログラミングも同じですので、まずは半年続けてみましょう。答えを出すのは、その後でも遅くはありませんから。

基礎を学ぶ

最初に”言語”から入った方は、一度基礎に戻ってみるのをオススメします。

コンピューターの仕組みを勉強してみることです。

言語というのは、いうなればオートマチック車のようなモノです。

オートマ車は、アクセルを踏むだけで走り続ける事が出来ます。

けれども、本来は自分でギアチェンジをしなければなりませんし、失敗すればエンストしてしまうこともあるのです。

オートマ車では、本来必要なギアチェンジが、自動で行われているに過ぎないのです。

誰でも運転が出来るように、オートマ者が開発されました。

同様に、言語も誰もが使えるように、開発されたものなのです。

つまり、便利な道具は、標準化(=誰もが簡単に使える)を実現する手段のです。

目には見えない所で、私達が”やらないといけない事”を覆い隠して、実行してくれている。

ただ、これでは”車に乗る面白さ”は半減してしまいます。

確かに”楽”ではあるのですが、”面白く”はないのですね。

マニュアル車に乗りたいなら、クラッチの踏み具合やギアチェンジのタイミングを知っておく必要があります。そうでなければ、エンストしてしまいます。

車を上手く走らせるためには、車の仕組みを理解して操作する必要があるのです。

その分、面白さは増えます。なぜなら、どうやって車が動いているのかが、理解出来るようになるからです。

これと同様で、パソコンの仕組みを知っておくと、より”面白さ”を感じることが出来るでしょう。

なぜ、この命令が必要なのか、何のために存在しているかが分かる。

すると、プログラミングの全体像が見えてくるからです。

プログラミングが必要な時代はもうすぐ来る

プログラミングが”つまらない”と感じることはあるでしょう。

しかし、目の前には“プログラミングが必須スキルとなる時代”が、近づいているのです。

数年、数十年後には、「プログラミングを学んでおいてよかった」と思う日が訪れるはずです。

私自身、現在サービスやアプリを作っているワケではありませんが、ブログを運営していく上では、とても役に立っているのですね。

プログラミングのスキルがあれば、デザインを修正したり、希望のサイトへ近づけることが可能です。

プログラミングのスキルを持っていた方が、仕事の幅は広がりますし、選択肢も増えることと思います。

そうしたメリットがあるコトを心に留めておいて欲しいです。その上で、プログラミングを続けるか辞めるかを選択しましょう。

コンピュータの基礎

本書は、松下電器産業、現パナソニックの教科書としても利用されています。

新入社員向けに書かれているため、

コンピュータの基本的な構造から、「一体何が実現できるのか?」といった、基本的な問いに対する答えが、丁寧に説明されています。

この本が一冊あれば、パソコンの仕組みは網羅することが出来るでしょう。

そして、いざ言語を勉強する事になった際、その仕組みを鮮明に思い浮かべられるようになります。

ぜひ本書を利用して、基本を学んでいきましょう。