かとのぼのマイコード・マイライフ

個人開発者かとのぼのプログラミングと雑談のブログです。たまに読書と銭湯も

各プログラミング言語の違いはカラダに例えて理解しよう【プログラミング知識ゼロの超初心者向け記事】

プログラミング学習を独学で始めようと考えた初心者が最初に疑問に感じるのがどのプログラミング言語を学習すればいいのか?ということです。

なぜそう思うかと言うと私がそうだったからです。 

「わからないこと」がわからない状態だと、何から勉強を始めればいいかわかりません。

少しでも知識があれば必要な情報の取捨選択が可能です。

その場合はグーグル検索を駆使して勉強を進められますが、知識ゼロの初心者は上手く検索ができません。 

そこで今回は、知識ゼロのプログラミング初心者のためにプログラミング言語を人間のカラダに例えて分類したいと思います。

プログラミング言語ってたくさん種類がありますよね?

実はそれぞれのプログラミング言語は役割が違っています。

各プログラミング言語の役割が理解できれば、自分がどのプログラミング言語を選択して勉強すればいいかわかるはずです。

人間の機能とプログラミング言語の共通点と役割を比較する 

早速、各プログラミング言語と人間のカラダの比較をしていきます。

最初に、私たち自身つまり「人間」について少し想像してください。

まずはカラダがないと始まりません。

これがプログラミング言語で言えば「HTML」です。

私たちは外出するときは服を着ます。プログラミング言語では外見を整えるために「CSS」を使います。

カラダと服だけでは動かない人形と一緒です。同様に、HTML、CSSだけではサイトに動きがありません。

つまり動く仕組みが必要です。例えば人間なら「走る」という動作をつけてみます。

プログラミング言語なら「JavaScript」でサイトに動きを付けることができます。

 最後に、このままでは動きがワンパターンなので、いろんな刺激や命令によって行動が変化できるように記憶しその記憶を利用して行動できるように「脳」をつけましょう。

脳と神経は繋がっていて与えられた情報や条件で複雑な動きが行います。

これがデータベースを操る「サーバーサイド言語」になります。「PHP」とか「Ruby」が有名ですね。

図にすると以下のようになります。

各プログラミング言語のイメージ

人間も細かく分類すると色んな機能が組み合わさっていることがわかりますが、プログラミング言語も同じです。

各プログラミング言語にはそれぞれ役割があり、それらの言語は組み合わさって初めてWebサービスとなるのです。

もう一度整理します。 

【人間のカラダ】

→ HTML

【服・装飾】

→ CSS

【あらかじめ設定した動作】

→ JavaScript

【脳(記憶)・神経】

→ SQL (サーバの言語)

→ PHP Ruby Pythonなど(サーバサイド言語)

 

ちなみに、こういった人間として必要な機能をあらかじめ用意して開発を簡単にしてくれるのが一般的にフレームワークと呼びます。「Ruby on Rails 」「CakePHP 」「Laravel」が有名ですね。

 具体的なプログラミング言語の選定とWebサービスを作る方法

以上を踏まえて、あなたがWebサービスを作る場合にどのプログラミング言語を使っていくか具体的に考えてみましょう。 

今回はツイッターを作ってみたい場合を想像しましょう。

まず最初に画面に作りますね。人間でいうカラダです。その画面は「HTML」で作ります。

「HTML」だけでは、文章や数字だけの簡素な状況なので装飾をしていきます。今のWebサイトはおしゃれですよね。その装飾をする時に使うのが「CSS」です。

しかし、HTML、CSSだけではただの静止画です。

Webサイトに訪問してくれたユーザーが名前を入力したら「ようこそ〇〇さん。」と表示させるようにしましょう。この時に使うのが「JavaScript」です。

次に、色んな人のツイートが保存できるようにデータを保存します。データベースに「MySQL」を使ってデータを保存できるようにします。

そのデータベースと画面のやりとりには、データベースと画面を繋ぐ「PHP」や「Ruby」などの言語を使います。

これでWebサービスの完成です。

以上のように、Webサービスには段階がありその段階ごとにいくつかプログラミング言語があるので、自分でどの言語にするかチョイスをし組み合わせます。

(余談ですが、この組み合わせは会社が作っているWebサービスごと異なるので、エンジニアは各サービスごとに色々な知識が必要になったりこだわりを持つのです。

これがネット上で日夜議論されており、知識のないプログラミング初心者の目に入ると混乱する原因となります。)

プログラミング初心者が最初にHTML CSS JavaScriptを勉強する理由 

プログラミング初心者が「HTML」「CSS」「JavaScript」を勉強するように勧めれるのは、人間でいえば「体と服と決められた動き」がまず基本だよね?という理由からです。 

ただしプログラミング初心者が作りたい真のWebサービスは、単純な反応を繰り返すようなサービスではないですよね。

もっとユーザーごとに複雑な動きをするWebサービスのはずです。そうなった時にサーバーが必要になり「MySQL」や「PHP」「Ruby」などのプログラミング言語が必要になるのです。

これで、自分が作りたいサービスを作るために学ぶべきプログラミング言語がザックリとわかったはずです。

加えて、最初から「PHP」や「Ruby」を勉強するのはちょっとハードルが高いこともわかったと思います。

「覚える言語が何種類もあって挫折しそう…」と不安に思う方は安心してください。プログラミングは基礎が固まれば他の言語にも応用が効きます。日本語が理解できれば、東北弁のような方言が覚えやすいのと似ています。

私は、プログラミング初心者が挫折する8割は、プログラミング学習に必要な大前提の知識(プログラミング的思考と概念)が抜けて学習を始めてしまうのと、熱意がある最初に正しい情報にたどり着けないことが原因だと思っています。

ぜひプログラミングを始める前にこの記事で各プログラミング言語の役割と違いのイメージを持っていただければ幸いです。

関連記事:

www.katonobo.com

www.katonobo.com

www.katonobo.com

www.katonobo.com

www.katonobo.com

www.katonobo.com

www.katonobo.com

www.katonobo.com

www.katonobo.com