【定期開催】 11/10(土) プログラマー転職相談会@大阪 詳しくは コチラ

あなたが作りたいのはWebサービス?スマホプリ?ゲーム?やりたいことから選ぶプログラミング言語の種類と選び方

炎寺ニア

カナダせんぱ〜い!今勉強しているPHPでスマホゲーム作りたいんだけどどうしたらいいの?

カナダ先輩(おいおい)

ちょ、ちょっとまて!PHPでは君が思っているようなゲームは作れないぞ?

炎寺ニア(あわわ)

え!?そうなの!?

カナダ先輩

車の免許があるからってジェット機は運転できないみたいに目的に応じてプログラミング言語は変わるんだ

炎寺ニア

え〜、じゃあスマホゲームを作るにはどのプログラミング言語を選べばいいのよ。

カネダ先輩(キラーン)

仕方がない。今回はやりたいことからプログラミング言語を選択する方法を紹介するぞ!

やりたいことに合わせたプログラミング言語の選択が必要

炎寺ニア

うーん、まずは簡単なプログラミング言語から勉強してみたいんだけど、どれを選んだらいいんだろう?

カナダ先輩

どうした、何をそんなに悩んでいる?

炎寺ニア

あ、カナダ先輩。まず手っ取り早くプログラミング言語を勉強してみようと思っているんだけど、いっぱいあってどれを選べばいいのか、わからないのよね。

カナダ先輩

なるほどな、ちなみに炎寺ニアはプログラミングでどういったことをしたいんだ?

炎寺ニア_燃えるぜ

私はお金が稼げる何かを作りたいわ!!

カネダ先輩(キラーン)

・・・現金なヤツめ

プログラミングを学ぶために必要な考え方

そもそもどういう考え方でプログラミングを学んでいけばいいのか?
まずはじめにあなたに質問です。

「プログラミングを使って、どんなことをしたいですか?」

この質問の答えは人によってぜんぜん違う内容になります。

例えば、

・プログラミングを覚えてもっとお金を稼ぎたい。
・企業のWebサイトやPRをするWebページを作りたい。
・ゲームを作る仕事をしたい。
・スマホゲーム・アプリを作ってみたい

その他にも、いろんな答えがあるでしょう。

炎寺ニア

あたしはもっとお金がほしいわね!

そんな様々な答えに対して、本や学校のように決まったことを覚えれば、あなたのやりたいことができるし、プログラミングを身につけられる!

・・・となればいいのですが、そうはなりません。

プログラミング言語の中には、あなたのやりたいことに対して向いている物と向いてない物があります。

その部分を知らずに、プログラミング言語の勉強を始めてしまうと目標に対して大きく遠回りをしてしまったり、やる気を無くしてしまったりしてしまいます。

例:アメリカで生活したいのに中国語を勉強するみたいなイメージ

そうならないために、次に書く事例を参考にあなたのやりたいことにあったプログラミング言語を選びましょう。

炎寺ニア

確かに!!
できれば自分のやりたいことに向いているプログラミング言語があるならぜひ知りたいわね。。。

カナダ先輩

次からやりたいこと別に、おすすめのプログラミング言語を紹介していくぞ。

Webサイト作成をするために必要なプログラミング言語

まずはWebサイトを作成するために必要なプログラミング言語を紹介していきます。

ちなみに、Webサイト(いわゆるホームページ)とはこのサイトのようにインターネット上で見ることのできるWebページをまとめた物のことをいいます。

そして、Webページとは、今見ている、このページのような1枚のページのことです。

炎寺ニア

じゃあ、この「炎寺ニアちゃんのプログラマー登竜門」はWebサイトになるというわけね。

カナダ先輩

そういうことだ。

・HTML(Hyper Text Markup Language:ハイパーテキストマークアップランゲージ  読み方:エイチティーエムエル)
・CSS(Cascading Style Sheets:カスケーディングスタイルシート 読み方:シーエスエス)
・JavaScript(読み方:ジャバスクリプト)

ページは「HTML」で作られている

HTMLはWebページの骨格を作成します。

見出しや本文、画像など基本的な情報や土台としてのページ自体を構成するものです。

見た目を作る「CSS」

CSSはHTMLで作成した骨格に色や線などの装飾に使用する言語です。

画像を角丸にしたり、背景をグラデーションにしたり、文字サイズやフォントを指定したりはCSSの役目になります。

動きを作る「JavaScript」

そしてJavaScriptはWebページにアニメーションなど動きをつけるための処理を作ります。

ボタンをマウスオーバーした際に色が変わるとか、画像がスライドショーをするなどなど動きやギミックといった要素を実現するのがJavaScriptです。業界的に「jQuery」というJavaScriptのライブラリが人気です。

Webページを作りたい!ならばこの「HTML・CSS・JavaScript」をまずは覚えましょう。

この3つの言語は比較的プログラミング言語の中でもわかりやすく、開発している人も多いので情報も豊富です。ブログで装飾に使えたり、ブラウザがあれば作ったものをすぐに見ることができます。

どんなプログラミング言語でも構わないので早く学んでみたい、手軽に始めたいという人にはとてもおすすめです。

これからWebサイトを作りたい、流行りのWordPressやアフィリエイトなどにチャレンジしたいという人に覚える必要があるでしょう。

スマホのアプリやゲームを作りたい人は、また別のプログラミング言語が必要なります。

ただ、JavaScriptに関しては近年、ブラウザゲームなどWebページだけではなく色々なところで使われるようになり人気があるので、覚えておいて損はありません。

炎寺ニア

Webサイト制作だったら、なんだか簡単そうね。

カナダ先輩

そうだな。
Webサイト制作で使うプログラミング言語は比較的わかりやすいのが特徴だ。
自分で作ったプログラミングをすぐに見れるのもやる気に繋げやすい。

スマホアプリを作るために必要なプログラミング言語

スマホアプリとはその名の通り、スマートフォン(以下スマホ)で動くアプリケーションです。

Webサービスとは違い、スマートフォン自身の機能を使うことができます。

例えば、GPSやPush通知を使ってユーザーに対して便利なアクションをしてくれます。

炎寺ニア

あ、これあたしが最初に作ろうとしていたやつね!

カナダ先輩

そうだな。スマホアプリを作るには次のようなプログラミング言語を覚える必要があるぞ。

iPhoneの場合
・Objective-C
・Swift

Androidの場合
・Java

どのプログラミング言語を覚えていくかは、どちらのスマートフォン端末でアプリを作りたいかによって違ってきます。

iPhoneアプリ開発に必要なプログラミング言語について

iPhoneアプリを作りたいのであればObjective-C(オブジェクティブシー)か、Swift(スイフト)と呼ばれるプログラミング言語を学ぶ必要があります。

Objective-CはiPhoneアプリ初期から使用されているプログラミング言語で、少しレベルが高い言語になります。

ポインタと呼ばれる概念などが出てくるのでC言語、C++言語を使ったことがある人にとっては割と入りやすいですが、これから新しくプログラミングを学ぶという方には難易度が高く、あまりオススメできません。

Swiftは2014年、Appleから発表された新しいプログラミング言語になります。今まで使われていたObjective-Cに比べるとわかりやすくシンプルになり、開発者にとって開発しやすい言語になりました。これからiPhoneのアプリを開発したいという人は、Swiftを覚えていくのが鉄板です。

iPhoneアプリ開発をするためにはXcodeというAppleが提供しているアプリ開発ツールを使用することになります。XcodeはWindowsのパソコンにはイントールができないので、iPhoneのアプリを開発しようとなると必然的にMacが必要になります。

炎寺ニア

iPhoneアプリを作るにはSwiftってやつがいいのね。

カナダ先輩

Objective-CとSwiftなら、後発のSwiftの方が覚えやすい。そして、iPhoneアプリを作る場合は必ずMacが必要というわけだ。

Androidアプリ開発に必要なプログラミング言語について

Androidアプリを開発する場合は、Javaと呼ばれるプログラミング言語を学ぶ必要があります。Javaは色々なところで使われるプログラミング言語ですが、今回はスマートフォンアプリを作成する部分に注目します。

Androidアプリの開発に関してはAndroid StudioといったGoogleが提供をしている開発ツールを使用します。iPhoneのXcodeとは違い、こちらはWindows・Macどちらのパソコンでも提供されています。

炎寺ニア

Androidアプリを作るには、Javaを覚えればいいのね。

カナダ先輩

そういうことだ。Javaはスマホ以外にも色々な所で使われているので応用が聞くし、覚えておいて損はないプログラミング言語だ。ちなみに先程のWebのところで出てきたJavaScriptと名前は似ているが、全く違う言語なので気をつけてくれ。

スマホアプリの作成で使うプログラミング言語は、未経験のあなたにとって少しハードルが高いかもしれません。しかし、解説する書籍も年々増え、ここで覚えた事は他のプログラミング言語にも役立つことが多いので、プログラミング言語の勉強という意味では一番将来性も大きく、勉強価値があるでしょう。

スマホゲーム開発に必要なプログラミング言語について

スマホゲームとはスマートフォンで遊べるアプリのゲームのことをいいます。
端末の進歩もあって、最近はどんどんと派手になり、PCゲームやコンシューマーゲームとほぼ変わらないクオリティになりました。

ちなみにPCゲームはパソコンで遊ぶゲームのことで、コンシューマーゲームとはPS4やXboxなどのゲーム機を使って遊ぶゲームのことを言います。

スマホゲームの全部が販売されているような壮大なゲームかというと、そうでもなくちょっとした空き時間に遊ぶようなミニゲーム的なゲームも数多く存在します。

スマホゲームを開発してみたい人は、まずはミニゲーム的なものを作るゲーム開発から入るのが良いでしょう。ちなみにスマホゲームだと近年は、サーバーを利用したゲーム(SNSゲーム、通称ソーシャルゲーム)が主になっています。

もしもゲームの中で遊ぶだけではなく、ランキングやアイテムの購入など他の人と連携するようなゲームを作りたいと思った場合、アプリ側のプログラミングだけではなくサーバー側のプログラミング(通称バックエンド)も必要になってくるので、敷居は非常高いくなります。

さらに、ゲーム開発自体、プログラミングだけではなくイラストや音楽など全体的に求められるハードルが年々高くなっている傾向にあります。

炎寺ニア

スマホゲームはたくさんの技術や知識が必要でハードルが高いのね。

カナダ先輩

そうだな。スマホゲームはたくさん覚える必要があるものが多いのが特徴だ。でもそのかわり給料も高い仕事が募集されてることは珍しくないぞ

炎寺ニア

なるほどー!たくさんあるってことだけど、実際どんなことを覚えなきゃいけないの?

カナダ先輩

まとめると次のような感じだ。

iPhoneアプリを作りたい

・Objective-C
・Swift
・C#(Unityというゲームエンジンで開発する場合)
・C++(Unreal Engineというゲームエンジンで開発する場合)

業界定番のゲームエンジン「Unity」を使うにはC#が必要

C#(シーシャープ)とはマイクロソフトが開発したプログラミング言語です。近年ゲーム開発現場では「Unity」というゲームエンジンを使って開発されますが、その開発にC#が必要となります。

より高度な「Unreal Engine」を使うにはC++が必要

C++(シープラスプラス、通称シープラプラ)とはC言語を拡張して開発されたプログラミング言語です。

Androidアプリを作りたい

・Java
・C#(Unity)
・C++(Unreal Engine 4)

データの保存などサーバーサイドを作りたい

データを保存したり、Webサイトと連携したりする場合には次のようなものが必要です。

・サーバーサイドのプログラミング言語(PHP・Perl・Python・Rubyなど)
・データベース(MySQL、Oracleなど)
・サーバー環境(Linux、WindowsServerなど)

PHP(ピーエイチピー)とは「Hypertext Preprocessor」の略で主にWebサービスやWebシステムの作成に特化したプログラミング言語のことです。Webサイト制作で人気のブログシステム「WordPress」もPHPで作られており、Webサービスやメールフォームなど作ることができます。

Perl(パール)とはもPHPと同様で、WebシステムやWebサービス作成に特化したプログラミング言語のことです。PHPが登場する以前はWebサービスなどはこの言語で開発されていました。

Python(パイソン)とはPHPやPerlと同じくWebサービスやWebシステムの作成に特化したプログラミング言語です。主に欧州で使われていることが多く、近年では人工知能やデータ解析といった分野で注目されている言語です。

MySQL(マイエスキューエル)は、誰でも使えるデータ管理システム、いわゆるデータベースと呼ばれるものです。PHPやPerlなどのWebプログラミング言語は計算処理などはできてもデータを保存することはできません。そのためデータベースにデータを保持し、必要な時に呼び出したりなど連携することができます。

Linux(リナックス)とは、MacやWindowsなどの同じくOS(オーエス)と呼ばれるパソコンを動かすためのソフトの一種です。実は皆さんが見ているWebサイトなどはこのLinuxというOSのサーバーで動いていることが大半です。

炎寺ニア(あわわ)

えぇーーー!!!!!!こ、こんなにあるのね・・・(涙 

 

スマホゲーム開発はやることがたくさんありますが、基本的な開発の流れはスマホのアプリを作るのと変わりません。

普通のスマホアプリを作成するのと違う点としてはゲーム特有の処理に特化し、Unity・Unreal Engineといったゲームエンジンを使っての開発が主流となることになります。

ゲームエンジンとは、ゲームを開発する上で必要となる、

・何かを表示する
・音を鳴らす
・コントローラーからの操作

など基本機能となるプログラムの処理を共通化して効率よくゲームを開発できるようにしてくれるツールの事をいいます。

PS4やSwitch、PCゲームなども同じゲームエンジンを使って開発されていますので、同じゲームを作る上ではつながりを持つことができると思います。

サーバーサイドは基本的にWebサービスなどの開発と変わりませんが、ゲームということで、処理の速さなどを求められます。

スマホゲームの作成で使うプログラミング言語は、未経験のあなたにとって通常のスマホアプリと同様、少しハードルが高いかもしれません。

また、普通にプログラミングを覚えるよりも、他にも覚えることがたくさんあるのがゲームを作成する上での特徴になります。

しかし、一度経験をすると、プログラミングの言語についても詳しく勉強できるだけでなく、一つのサービス・作品を作る上での色々な知識を身につけることができると思いますのでまずは一つ何かを作り完成させることを目指すと良いでしょう。

炎寺ニア

スマホゲームを開発できる人はスーパーマンなのね。

カナダ先輩

実際は基本的にチームで活動するから、それぞれの分野に特化している人が自分の部分を担当することがほとんどだがな。

まとめ

炎寺ニア(あわわ)

ふわぁー!めちゃくちゃ色々な言語が目的に応じてあるのね!覚えきれない~

カナダ先輩

そうだな。ここで紹介したのはほんの一例でまだまだ目的に応じたプログラミング言語が存在するんだ

炎寺ニア

ちなみに、プログラミング言語っていくつ存在しているの?

カナダ先輩

それは、・・・・たくさんだ!

炎寺ニア

へ〜(あ、ごまかしてきた。)
にしても、どうしてプログラミング言語って1つにまとまってないのよ!

カナダ先輩

そんなに覚えるのがめんどくさいなら、これさえ覚えておけば良いというものがあるが知りたいか?

炎寺ニア(うっふん)

も〜!そんな楽な方法があるならさっさと教えてよ!!

カナダ先輩

それはコイツだ!!(アセンブラの言語のコード)

炎寺ニア(あわわ)

ぎゃー!なんじゃこりゃー!?

カナダ先輩

すべてのプログラミング言語は最終的にこの形に翻訳されるんだ。

プログラマー転職無料相談会!定期開催中

定期的に無料プログラマー相談会を開催しています。
どうやって勉強すればいい?
どうやって転職したらいい?
何から始めたらいい?
といった質問に答える少人数制の相談会です。将来プログラマーに転職したい人向けにサービスを提供するためにテストマーケティングのために開催しています。プログラミングを学びたいけど何からすればよいかわからない方、ぜひご検討ください。