世の中には「プログラミング言語ってなに?」という方も大勢いるかと思います。
今回はそんな方たちに向けて、プログラミング言語とは何かを初心者にもわかりやすくご紹介していきます。
記事のもくじ
プログラミング言語の仕組みとは
プログラミング言語とは、簡単に説明すると「コンピューターと会話をする際に用いる言語」です。
まずは、具体的なイメージを考えてみましょう。
←・・・英語・・・→
アメリカ人と英語を使って話すように、コンピュータとは「プログラミング言語」を使って話します。
ここでは例として、「PHP」というプログラミング言語を使って会話してみます。
←・・・プログラミング言語(PHP)・・・→
プログラミングの仕組みを使ってどうコンピューターと会話するのか
実はCPUと呼ばれるコンピューターを動かす心臓部は、数字の0と1しか理解できません。
では、「どうやってコンピューターと会話をするのか?」と疑問に思った人もいるかもしれません。
一般的にPHPやJavaやRubyなどといった、多くのプログラミング言語は人間が理解しやすいように作られています。
しかし、コンピュータとの直接的なコミュニケーションでは、最終的に「0」「1」に変換してくれる通訳者がいるのです。
←・・・プログラミング言語(PHP)・・・→
←・・・PHPを「0」「1」に変換・・・→
ポイントは、
- プログラミング言語はコンピューターと会話するための言語
- 多くのプログラミング言語はコンピューターよりも人間にとって理解しやすいように作られている
ということを覚えておきましょう。
なぜプログラミングの仕組みを理解する前に学習に挫折するのか
「プログラミング学習者の9割は挫折してしまう」と言われていますが、なぜなのでしょうか?
その原因を解説していきます。
そもそものプログラミング学習量が少ないから
プログラミング学習が一般化しておらず、「そもそも学習量が少ない」ということが原因の一つです。
なぜなら、プログラミング言語の習得において重要なのは、学習時間を確保することだからです。
今20代の人でさえ、学校でプログラミングを習ったという人はほとんどいないでしょう。
近年、文部科学省がプログラミング教育を推進しはじめましたが、学校においてプログラミング教育が英語並みに重要視され、導入するまでにはあと数年は必要とされるでしょう。
一方、英語教育はどうでしょうか。
おそらく多くの中学生や高校生は英語での自己紹介や簡単な英文は読むことができるのではないでしょうか。
なぜなら、“英語が重要である”と認識されているからこそ、義務教育として長年学習してきたからです。
私たちは小学校から高校や大学まで当たり前のように英語の学習する機会というものがありました。
中学や高校によって学力レベルの差はありますが、英語教育を取り入れていない学校は存在しないでしょう。
ニュースでも取り上げられているように、日本だけでなく世界全体でエンジニアは不足しています。
高い需要や必要性を感じているにもかかわらず、プログラミング学習に挫折して諦めてしまった人も多くいることでしょう。
しかし、英語という言語の学習に挫折してしまう人もたくさんいるのですから、プログラミング言語で挫折してしまう人がさらに多数いることは、当たり前とも言えます。
モチベーションを維持できないから
今ではプログラミングの学習本やサイト、サービスなどの学習コンテンツはたくさんあります。
ただ、それでも挫折してしまう人がいるのは当然です。
学校で英語を学んでいた時は“先生や友達に質問できる”、“学校という勉強をしなくてはならない環境がある”からこそスキルが身についた人もたくさんいるでしょう。
もし、あなたが社会人なら勉強する時間は、夜か土日でしょうか?
なかなかモチベーションを保ちながらステップアップしていくのは難しいと感じる人が多いのも無理はありません。
日本の教育環境の文脈であなたが挫折するのは無理もないということをお話ししてきました。
しかし、グローバル環境は異なります。
中国では小学生からディープラーニングの素養を身につけさせる教育カリキュラムの作成を進めるというような話もありますし、インドでは多くのAI人材が存在し、国内競争が激しすぎるため、PhDを持つAIエンジニアが外国の企業に就職するということも多いです。
つまり、世界でエンジニアは不足しているとは言え、海外ではプログラミングやAIの知識は当たり前の教育であるとして、すでに多くのエンジニアを輩出している国がいることも事実です。
何のプログラミング言語を学べば良いの?
結論、『目的』によります。
よく起業したいという人や学生などに『今時、アプリ作るなら〇〇ですよね』と言われることがあります。
当然、サービスを作った経験がないのだから、流行りの言語がなんとなくよいのではないのか?という考えてしまうことは納得できますが、将来や事業の方向性などでサービス開発のプランは往々にして変わります。
まずはサービス開発を熟知している友達や先輩に相談するのがベストですが、プログラミングの質問サイトやお金を払えばメンターのようにアドバイスをしてくれるサービスもあるので、それらを活用しながら方向性を考えることをお勧めします。
プログラミング言語のランキングは気にしすぎるのはよくない
これまで説明してきたように、プログラミング言語の習得において重要なのは「目的」です。
学ぶべきプログラミング言語は「目的」に応じて変わります。
ちょうどわかりやすい例えが、Twitterにありました。
「プログラミング言語は何を学んだらいいですか?」 って質問に対して、
「『料理するにはどの包丁がいいですか?』と聞いてるのと同じやぞ、何を料理したいんだ」
という返しを思いついたので、そのうち使っていきたい
— ところてん (@tokoroten) January 21, 2019
よく、「流行りのプログラミング言語ランキング」や「年収ランキング」という記事がバズっているのを目にします。
もちろん、人気のプログラミング言語を学ぶことで、流行りというのをキャッチアップするのは大切ですが、ランキングだけを理由にプログラミング学習を始めようとするのは非常にもったいないです。
プログラミング言語とは?仕組みや学習のポイントを解説のまとめ
プログラミング言語はアメリカ人に英語でコミュニケーションをするのと同様に、コンピューターとコミュニケーションをとるための言語です。
そして、挫折する人が沢山いるのはある意味当然で、挫折を乗り越えるには
- 『学習量』
- 『学習環境』
- 『目的の明確化』
が重要であると述べました。
日本人は英語のスピーキングが苦手というのも、学校での学習量は多くないし、基本的に教科書もコミュニケーションも日本語で済む環境であるため、苦手になってしまうのは当然です。
それと同じように、プログラミングのセンスがないと諦めてしまうのは非常にもったいないです。
「プログラミング習得には、辛抱強く学習しなければならない」ということを認識しましょう。