プログラミングを初めて勉強しようと思ったとき、誰もが迷うことが1つあります。それは一体何でしょうか?

そうです!どのプログラム言語を学ぶのか?ですね。例えば書店に行くと、C / Java / php / Ruby / Swift などなど、様々な言語の本が売っていると思います。

大学の授業でプログラミングを習うと、CやJavaからスタートする場合が多いですが、このページではみなさんがプログラミングを学ぶに当たり、最終的にどんなものを作りたいのかによってお勧めの言語を紹介したいと思います。

(ここで紹介しているのは、あくまでお勧めであり、国や企業によって使われている言語は違う点だけご了承ください。)

プログラミングの前提知識

これからWebサイトやスマホアプリといった、様々なサービスを元に紹介していきますが、その前に前提となる知識を勉強しましょう!

プログラム言語を使う上での役割は、次の2つに大きく分けることができます。

1.目に見える部分

2.データを扱う部分

1.目に見える部分(いわゆるデザイン部分)

「目に見える部分」というのは、その言葉の通りに私たちが直接目にする部分です。例えば、みなさんが目にしているJEEKのページや、アプリで表示されている画像などがあります。

ですが、あくまでこれは目に見える部分のみを扱っているため、実際に何を表示するのか?という部分は扱っておりません。あくまで目に見えるデザインだけに関わっていることを覚えておきましょう。

この部分を担っている言語の例としては、

  • HTML
  • CSS
  • JavaScript
  • Swift

などがあります。(正確にはHTMLやCSSはプログラム言語ではありませんが、簡単にするためにそのように扱っています。)

2.データを扱う部分(いわゆるシステム部分)

「データを扱う部分」では、目に見える部分に何を表示するのか?を管理しております。例えば、AというページではA'の内容を、BというページではB'の内容を表示する指令を出すといった具合です。

その他にもみなさんのメールアドレスやパスワードを管理したり、メールを送信したりといったように、直接目には見えないですが、システムとして動いている部分を担当しております。

この部分を担っている言語の例としては、

  • php
  • Ruby
  • python
  • C++

などがあります。

Webサイト

Webサイト制作は、プログラミングを初めて勉強する人に強くオススメしている目標になります!

理由はこのコラムを全部読むと詳しく分かりますが、言語の習得難易度が低いことと、成果が目に見えるため、すぐにプログラミングの楽しさが体感できることが挙げられます。

ではWebサイトを作るためには、一体どんな言語が使われているのでしょうか?

  • 目に見える部分(どの企業も同じ)HTMLCSSJavaScript

  • データを扱う部分(企業によって違う)

    • Ruby
    • php

「目に見える部分」に使われている言語は世界共通です。もちろん日本の企業では、どこでもこれらを用いております。

そのためWeb制作を学ぶ場合は、HTMLやCSSをはじめに勉強するのはこうした背景からですね。

「データを扱う部分」は企業によって異なります。最近の日本企業だとRubyが用いられる場合が多いです。というのも、Rubyは日本人のまつもとゆきひろ氏が作った言語で、直感的で分かりやすいことから採用されているようです。

JEEKが紹介しているプログラミングスクールも、Rubyを主に教えている教室が多いのはこのためです。

スマホアプリ

みなさんがプログラミングを学んで、まず作ってみたいと思うのはスマホアプリではないでしょうか?

構造はWebサイトととても似ておりますが、使う言語が一部異なります。

  • 目に見える部分

    • Swift(iOS)
    • Java(Android)
  • データを扱う部分(企業によって違う)

    • Ruby
    • php

「データを扱う部分」はWebサイトと全く同じですが、「目に見える部分」が異なっております。特にスマホアプリでは、どんなOSのアプリを作りたいかで言語が変わってくるのが特徴です。

Webサイトの場合と比べると、SwiftやJavaは習得難易度が高いため、プログラミング初心者の場合は、まずはWebサイトを一人で作ってみるのをお勧めしております。

Webサイトでもアプリでも、自分が作ったものを世界中の人に使ってもらえると考えると、とってもワクワクしますよね!

業務システム

ここでいう業務システムは、Webベースではなく、みなさんがATMなどでみるようなWebではないシステムについて言及いたします。(ちなみに、Webベースの業務システムは、Webサイトと同じ言語構成になります。)

  • 目に見える部分 & データを扱う部分
    • C++
    • C#
    • Java

今回は「目に見える部分」と「データを扱う部分」が一緒の言語になっていますね。(目に見える部分ではXMLといった、HTMLの親戚が使われている場合も多くございます。ですが、HTMLとCSSに比べると、デザイン部分が明確に分かれておりません。)

特にC++やJavaは、大学ではじめてプログラミングを勉強する場合に登場することが多い言語です。Webサイトやスマホアプリで登場した、Rubyやphpと比べると学習難易度が高いと言われているため、大学の授業でプログラミングの楽しさを味わえないまま、挫折してしまう人が多いのが現状のようですね…

VR

PSVRが発売されるなど、最近日本でも徐々に人気が出てきたVR。特にVRのゲームは、自分が本当にその世界にいるような感覚が味わえるため、こういうサービスを自分も作ってみたい!と思う方は多いのではないでしょうか。

VRの制作ではどんな言語が使われていることが多いのでしょうか?

  • 目に見える部分

  • エンジンによって異なる(Unityの場合は、C#かJavaScript)

  • データを扱う部分 - Webサイトやアプリと一緒

「目に見える部分」には「エンジンによって異なる」と書かれております。VRは0からプログラミング言語を使って作っているのではなく、Unityに代表されるような開発ツールを利用して作成いたします。(やったことがある人は分かると思いますが、3Dを0から作ろうとすると、とても大変です…汗)

特にVRは、目に見える広い範囲の物体を作らないといけないため、そうした開発ツールを用いて実装が行われております。また、Unityはスマホゲームアプリの「目に見える部分」にもよく用いられているため、とても応用範囲が広く、習得すれば就職活動にも強くなれると最近では言われております。

IoT

最後に今話題のIoTを実装するときを見ていきましょう。

  • 目に見える部分 & データを扱う部分
  • 作るものによって異なる

書いてある通りで、作るものによって全く異なってしまうため、この言語です!と断言することは非常に難しいです。例えば、Apple Watchの場合は、スマホアプリのiOSと全く同じだったり、Raspberry Pi(ラズベリーパイ)の場合は自分で自由に選べたりと、何を開発するのかで変化します。

逆に言うと、自分が習得した言語で開発できるものを考えていくという方法が良いのかもしれませんね。また、IoTはプログラミングだけではなく、ハード面の知識が必要となるので、新たにその勉強もする必要がございます。

ラズベリーパイには色々な拡張キットが売っているので、まずはそこからチャレンジしてみるのが良いかもしれません。

最後に

いかがでしょうか?みなさんが何を作ろうとしているのかによって、勉強すべきプログラミング言語は異なるのがご理解いただけたと思います。

筆者としては、まずはWebサイトを作ってみるのをお勧めいたします!

勉強を始めるとつまずくことも多く、大変だと思うかもしれません。ですが、部屋の中で自分のPC1台だけで作ったサービスが世界中で使われることを想像したら、とてもワクワクしませんか?

そんなエキサイティングな体験を是非みなさんにもしていただきたいなと思います!

JEEKでは、プログラミングを勉強したい方のために様々なプログラムを用意しているので、この記事を読んでプログラミングをやってみたい!と感じられた方は、気軽に参加してみてくださいね。



このエントリーをはてなブックマークに追加