「プログラミングを勉強し始めたが、よくわからない・・・」
「理数系じゃないからプログラミングはわからない」
このようなことで悩んでいる人は多い。
勉強を始めたばかりの頃、たしかにプログラミングはわかりにくい。そして、一度苦手意識がついてしまうと、そこから抜け出すのはなかなか大変だ。
このページでは、プログラミングがわからないと感じる理由を10個あげ、その対処法を紹介する。
ご存知の通り、「なんとなくわからない」が一番どうしようもない状態で、「何がわからないかわかった!」となったら案外物事はスムーズに行くものだ。
あなたが、プログラミングに苦手意識を持ってしまっているなら、参考にしてほしい。
プログラミングがわからない10個の理由とその対処法
プログラミングがわからない人にはそれぞれ理由があるが、大きく分けて次のように分類される。
わからない理由その1 そもそもやる前から苦手意識を持っている
仕方がないことだが、やる前から苦手意識をもってしまっている人も多い。
世間のプログラミングに対するイメージが「何か難しいことをやっている」状態になってしまっているのがその理由だろう。
対処法:プログラミングはコンピュータへの命令だと理解する
やる前から苦手意識を持ってしまっている人はこう考えればいい。プログラミングというのは、「人間でも根性を出せばできるものを、コンピュータにさせて楽をしているもの」だ、と。
プログラミングはただのコンピュータへの命令文だ。「こうして、こうして、次はこうする」というのを書いているにすぎない。例えば、1〜1000までの数字をたす時に、手計算では大変だ。工夫すれば早いが、普通に計算をしたらどれだけ時間がかかるかわからない。こういう単純作業をコンピュータにやらせるわけだ。
信号だって、洗濯機だって、全部プログラムで動いている。「何分経ったら赤から青に切り替える」「何分経ったら、洗いから脱水にする」などを命令文として書いている。
日本語として命令文を書けば、あとは機械でもわかるように翻訳するだけだ。日本語で指示ができれば、プログラミングだって必ずできる。
わからない理由その2 わたし、文系だから
「文系だからプログラミングとか苦手なんだよね」「理数系じゃないからプログラミングとかよくわからない」
というセリフはとてもよく聞く。たしかにそういうイメージがプログラミングにはある。例えば、コンピュータ工学科のようなものは明らかに理系に所属している。
「文系だから、わからない」というイメージになり、勉強しにくくなるのはとてもよくわかる。
対処法:プログラミングは翻訳だ
実はプログラミングが理数系というのは、誰かが作り上げた都市伝説のようなものである。
昔はコンピュータを使ってやることそのものが理系的だった。例えば、複雑な計算や天体の軌道の予測、各種のシミュレーションなどにプログラムを使っていた。
しかし現在、主としてプログラミングされているのは、日常業務だったり、便利ツールだったり、理数系とは関係ない部分が多い。そうなると理系や文系は関係がなくなる。
上でもお伝えしたが、プログラミングはコンピュータへの命令文だ。前は事務担当の方が手作業でやっていたことを、コンピュータにやらせるというだけだ。電卓の使い方に理系的な要素はほとんどないだろう。同様にコンピュータにやらせるというときも理系的な要素はそんなにない。
ここをクリックしたら、こういうプログラミングが走って、こういう風に動く、というのをコンピュータにもわかる言葉で説明しているだけだ。
コンピュータは日本語がまったくわからない、外国の人である。彼らにやってほしい作業を説明する時には翻訳が必要だろう。プログラミングとは翻訳作業だ。
わからない理由その3 何しに使うかわからない
プログラミングを勉強し始めたとき、、、
「これが変数です。代入ができて、こうすると表示されます」
「これがfor文です。こうすると1から10までが表示されます」
「これがif文です。20以上の数字を入力すると"成人です"と表示されましたね」
などと参考書に書いてあるはずだ。
実際に打ってみて動かして、確かにそう動くこともあなたは確認できるはずだ。しかし、これを何のために使うかわからない。たしかに1〜10まで並べられたところで何に使えるかわからない。
発想力豊かな人は色々と想像できるだろうが、そうでない人の方が多いだろう。ここから苦手意識がスタートする人も多い。
対処法:基礎勉強時点ではあきらめる
たしかに初期の頃はイメージがつかない。わかりやすいイメージを、と思うと、とても地味になってしまう。
「for文を使うことで、社員の一覧が表示することができるんだ!」「こうすれば素数を並べることができるんだ!」と説明されても、ふーんとしか思えないだろう。
だから、基礎勉強時点ではこんなものだと思ってしまう方がいい。
今は包丁の使い方を習っているのだと思うことだ。包丁の使い方を覚えたところで料理が作れるようになるわけではない。料理の一部のパーツが作れるようになるだけだ。
コンロの使い方、オーブンの使い方、調味料の使い方、蒸し器の使い方、食材の保存方法、などなどを覚えていき、組み合わせたときようやく色々な美味しい料理を作ることができる。
できることが限られていればカレーしか作れないのと同じで、武器が少ない段階でできることは少ない。
将来的にはTwitterやInstagramやLineのようなアプリも作れるようになるために、基礎を勉強しているのだと、自分を納得させよう。
わからない理由その4 遠すぎる
プログラミングを勉強したとき、次のような疑問を持つ人も多い。
「たしかにこの内容はわかった。こう書けばこう動くというのもわかった。でも、結局プログラミングで、Facebookとか、googleの検索とか、パズドラみたいなゲーム作れる気がしないんだけど・・・」
このような感じだ。
昔のプログラミングの世界は、勉強したら手が届きそうな感があった。画面デザインも適当だったし、例えばホームページなんかでも、自分でも作れそうと思うものが多かった。だからこそ、勉強をするモチベーションになった。
しかし、今はどうだろう? 完成されて、質が高いサービスやアプリがいくらでも存在する。また、それらを普通に普段から使っている。
だからこそ、はじめて勉強を始めたときでは、そういった憧れとも言えるものが作れるようになるイメージが湧かないのだ。
対処法:はじめは一部分でも作れるように頑張る
これは、たしかに実際遠いから仕方がない。
簡単なアプリケーションならともかく、人気のアプリやサービスはそれこそ何十人、何百人というエンジニアが、力を合わせて作っているものだ。少し勉強をしたくらいではなかなかできない。
あれはプロ野球選手たちが作っているとまずは思うことだ。野球を始めたばかりで、すぐに150キロの玉が投げれたり、打てたりするはずがない。まずは100キロくらいの玉をバッティングセンターで練習するくらいがいいのだ。それでもほとんど当たらないはずだ。遠さを自覚して、目の前のできそうなことに着手すればいい。
はじめはできそうな部分だけ作ってみることだ。例えば、「ログイン・ログアウト」は作れそうだと思えば、そこをやってみればいい。一部分だけでも作れるようになれば自信につながって、次の一部分にトライできる。
また、実際にはそれほど時間はかからない。プログラミングを勉強し始めて1、2年程度で、TwitterやFacebookのようなサービスを作れるようになる人はたくさんいる。もちろん細かいところは難しいが、似たようなサービスであれば作れるようになる。
また、プログラミングの技術と、デザインの綺麗さなどを混合しないことも大切だ。綺麗な画面が作れるというのはプログラミングとはあまり関係がない。そういう分野のプログラミングもあるが初期の頃は考える必要はないだろう。
わからない理由その5 英語がわからない
プログラミングは英語で書かれているし、英語のドキュメントも読まなければいけないことが多い。だから「英語がわからない私には向いていない」というのもわからない話ではない。
対処法:日本にいる限り単語がわかればOK
先日Google社にて教育担当の方と話したとき議題に挙がったのが、これだ。
Google社が提供しているハイレベルな学習動画がある。東南アジアのような国々からはアクセスが多いが、日本からはまだまだ少ない。
理由は簡単で、日本では日本語で勉強できる書籍がたくさんあるからだ。そのため、わざわざ英語のコンテンツを見る必要がない。
あなたが日本だけでプログラミングをしていくというのであれば、英語は単語さえわかればとりあえずOKだ。英語のドキュメントを読む必要が出てきたらGoogle翻訳に頼りながらどうにかしよう。
わからない理由その6 プログラミングを動かす環境の作り方がわからない
これは本当に多い。プログラミングを勉強し始めるぞ!という決心をした人を、もっとも挫折に導くのは「環境の作り方がわからない」だ。
そもそも「環境」という言葉自体がわからないのでお手上げである。
プログラミングがわからないどころか、プログラミングを打つための場所が作れないのだ! はじめの一歩目からつまづいている。
ここで挫折すると、プログラミングにはもう戻って来れないだろう。なぜなら、プログラミングの勉強を始める手前の段階で諦めてしまった苦手意識が頭にこびりつくからだ。
対処法:本を買う。それでもダメなら次の本を買う
開発環境の準備は難しい、というのをまず覚えておこう。あなたの責任ではない。これはもう誰でも難しいのだ。
プログラミングの本質を理解していないとできないようなことを、何もわからない始めからやっているわけでそりゃ難しい。
だから、わからないことを当然と思うのが第一歩目だ。そして、そのあと、書籍の購入をオススメする。大抵の入門書には環境構築の方法が書いてある。その通りにやってみることだ。それでもダメだったら、他の入門書を買いに行けばいい。そしてもう一回チャレンジだ。
Webでも検索できる時代だが、本の方がいいだろう。理由は簡単で、本は有料で売っているからだ。
有料で売るとなると人は厳密なチェックをする。内容を精査して、間に校閲も入る。しかしWebでは自分の忘備録的な内容になっていることも多いし、だれかのチェックも入っていない。常識的だと書いた人が思った部分は飛ばしているし、途中で雑になっていたりもする。
初心者にとって、それは挫折の原因になる。
そのため、本を買って、とにかくその順番通りにやっていこう。やっている内容を理解するのは半年後で構わない。
わからない理由7 オブジェクト指向がわからない
プログラミングを勉強するものにとっての挫折ポイントとなるのがオブジェクト指向だ。知らない人はそういうものがあるとだけ思ってくれればいい。
オブジェクト指向はたしかに始めわかりにくい。いろんな概念を持ち出せれて、頭がグラグラするのもとてもよくわかる。
オブジェクト(物)として捉えんだ! 例えば車だ! いろんな種類があって、カーナビとかつけられるだろう? それと一緒だ!
というような説明を受けたところで、わからないものはわからない。
対処法:60%程度の理解で構わない
対処法は簡単だ100%理解しようとしないことだ。はじめは便利さもわからなくていい。
いつか必ず、「オブジェクト指向で書いておけばよかった・・・」「オブジェクト指向でかいてあって、よかった」と思う時が必ず来る。だからはじめから完璧には理解しなくてもいい。
「独立したパーツみたいなものを作っておけば、あとから使い回しできて楽じゃん」くらいに思っておけばいいのだ。100%理解しようとして行き詰まるよりも、60%の理解で進んで、後から戻ってきた方が効率がいい。
わからない理由8 周りの人についていけない
スクールでの授業や新入社員の研修だと多いのだが、周りのついていけなくて困るというと人が沢山いる。自分は周りに比べて遅いから、自分は理解していないに脳が自動変換してしまうのだ。
しかし、実態はそうではない。プログラミングがを理解している云々ではなく、タイピングが遅いから遅れている場合が圧倒的に多い。
プログラミングはコンピュータに命令文を書いているとお伝えした。同じ命令文を書くのに2倍の時間がかかったらどうだろうか? 当然同じ時間で書ける命令文は半分になり、周りに比べて遅れが出てくる。
それは理解とは全く関係がない。ただ単純にアウトプットに時間がかかっているだけだ。
対処法:タイピングをひたすら練習する
だからこそ、タイピングを練習することはとても重要だ。タイピンが速くなるだけで、プログラミングの勉強で他の人に遅れることはなくなる。まずはタイピングの速度を上げることだ。
実際、アルゴリズムのような座学のときにまったく理解ができなかった人でも、プログラミングの勉強に入った瞬間に輝き出す方というのはいる。その理由の多くは、タイピングが得意だから、というそんな理由だったりする。
タイピングの速度を上げる方法は、もう練習しかない。
わからない理由その9 エラーが頻発してわけがわからなくなる
プログラミングにエラーはつきものだ。コンピュータが悪いわけではない。大抵の場合、人が悪い。命令文が間違っていたから、コンピュータは「その指示はよくわかりません」という返答をしてくれているだけだ。
2,3個のエラーが見つかって、それを直すだけであれば、それほど心理的な負担はないはずだ。
しかし、実際エラーの種類によっては、なかなか終わらないものもある。
そうなると初心者の方は、プログラミングが嫌になり、苦手意識を持つようになってしまう。「コンピュータに嫌われているんだよね」などというセリフが出てくる。
対処法:聞ける人を探す
まずプログラミングにエラーはつきものだ。どんなベテランエンジニアであってもエラーと戦って、勝たなければプログラムを作ることはできない。だからエラーなんてあって当然だという風に捉えよう。
エラーの大半は、エラー文面をよく読むか、そのエラー文面をGoogleに貼り付けて検索すれば解決する。
しかし、はじめてプログラミングに触った状態で、そうするのはなかなか大変だろう。
だからこそ、聞ける相手を持つことはとて大切だ。知り合いのプログラミングができる人に教えてもらうというのもいいし、スクールのようなものに通って講師がいる環境で勉強するのもいい。
はじめだけでいいから人に聞ける環境を作ると、プログラミングの学習は一気に進む。
プログラミングがわからない理由 その10 飽きる
何事も思い立ったその瞬間は、かなりアグレッシブに勉強できるものだ。しかし、その熱意は続かない。だんだん、だんだん、その熱意の火は弱まっていく。
それは仕方がない。人間というのはそういうものだ。そういう風にできている。だからこそ、必要なのは、とにかく次のいずれかの手段を使ってある程度の技術力まで行くことだ。
方法1 短期間で集中的に
短期間で集中的に勉強するのが一つ目だ。熱意があるうちに進んでしまうということである。とても効果的だし、モチベーション的にもいい。
一ヶ月くらい全力で突っ走る。
方法2 強制力を持たせる
短期間で時間が取れなければ、何かに強制されるようにしよう。
本を買うというのもお勧めで、人間はお金を払うとその分だけ、やる気が出る。反対に無料のものだとやる気を失うという不思議な性質を人間は持っている。
やる気がなくなったら、次の本を1冊買うという風にすると、少しずつ前進できるはずだ。
また、スクールや家庭教師のようなものに頼るのも効率がいい。将来的に仕事にするつもりがあるのであれば、こういった方法を取った方が費用対効果がいい。時間は有限だからだ。
方法は何でもいいが、とにかく自分にプログラミングの勉強を強制しよう。そして、ある程度のところまで行くと知識が染み込み、あなたの力となっているはずだ。次のことも勉強しやすくなる。だんだん、だんだん、楽になっていく。
ぜひそこまでスキルを伸ばしていってほしい。
まとめ
本日は、プログラミングがわからない理由をまとめてみた。
プログラミングがよくわからないというのは、初心者であれば必ず通る道だ。そこを超えることで、はじめてプログラミングの楽しさが見えて来る。
「どこがわからないかわからない」という状態よりも「ここがわからない」と思たらすでに成長だ。勉強をはじめたそのことそのものに誇りを持って、もう一歩先に踏み出してほしい。
すごい励みになるお話でした!
いつもご愛読いただきありがとうございます。
当ブログは名前通り、エンジニアの入り口に立とうとする方の一助になればと記事を作成しております。当記事以外にも、様々な分野向けの記事が揃っておりますので何か躓きそうになった際は参考にして頂ければ幸いです。
今後とも、ご愛読のほどよろしくお願いいたします。
10番、「飽きる」が大きな要素。