Warning: Trying to access array offset on value of type bool in /home/willcom7/will-kishin.com/public_html/wp-content/plugins/wp-word-count/public/class-wpwc-public.php on line 123
Warning: Undefined array key 7 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 106
Warning: Undefined array key 8 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 109
Warning: Undefined array key 9 in /home/willcom7/will-kishin.com/public_html/wp-content/themes/jstork_custom/functions.php on line 112
プログラミングスクールに通っています。
今日はこれからプログラミングを勉強しようという方に、専門知識なしでも各言語の特徴が把握できるようにご紹介します。
ご紹介する言語
こちらの記事では以下の言語を目的別にご紹介しています。
(目的ごとに重複あり)
- Boo
- C#
- C++
- CSS
- html
- Java
- JavaScript
- Kotlin
- Objective-C
- Perl
- php
- Python
- Scala
- Swift
- Unity(言語ではなく統合開発環境)
プログラミングを学ぶ目的の整理が必要
プログラミングとは何かが分かってきたところで、なぜ学ぶのかを明確に意識していただきたいと思います。
学習目的の整理が必要理由①キツイから
というのも、簡単に言うと「プログラミングを勉強するのはキツい、辛い、面倒、嫌になる…」そんなことばっかりだからです。
強い意志を持って、何のためにプログラミングを勉強するかがはっきりしなければ、結局時間とお金のムダになるでしょう。
(そんな人をたくさん知っています)
学習目的の整理が必要理由①選択する言語が異なるから
また、意識の話ではなく、実際にプログラミングを学ぶこととなった際に避けられない「言語の選択」にも大きく影響してきます。
こちらはプログラマが実際に仕事で使っている言語ランキングです。
※paizaというエンジニア求人サイトに登録しているエンジニアで実務経験が3年以上ある人、かつ3年以上の使用経験がある言語のランキング。ただしGo言語は歴史が浅いので1年以上の実務経験がある人
出展:paiza開発日誌
これを見るとJavaが最も多く、PHP、Cと続きますが、だからといってJavaを勉強すればいいというわけではありません。
目的別に学ぶべき言語は異なります。
言語をある程度絞り込んでから、「それをどこでどのように学ぶか」を考えるフェーズに移ることをおすすめします。
それでは、プログラミング学習目的別に、学ぶべき言語を見てみたいと思います。
【参考】転職・就職のためにプログラミングは役に立つのか
職探しのツールとしてプログラミングを活用している方は、「今求められてる仕事だしな」という感覚が強いのではないでしょうか。
それをサポートする資料を2015年にDODAが発表しました。
確かに「技術系(IT/通信)」がすごいスピードで伸びていますよね。こちらがプログラマーやそれを包括するシステムエンジニアのことと置き換えていいと思います。
(「エンジニア」などのことばの解説はこちらの記事でしています。)
それに対して「事務・アシスタント系」がどんどん落ちています。
なぜかというと、「ただの事務作業をしているだけの人は、その価値がコンピュータの発展によってなくなっているから」です。
私がこれ以上つべこべ言う必要はありませんよね?
それでは具体的にフィットするプログラミング言語を見ていきましょう。
転職・就職のために学ぶべきプログラミング言語
食いっぱぐれない仕事に就きたい
本来「ゲームを作りたい」「アプリを作りたい」などの目的別に言語は選ぶべきです。
しかし、そんなことではなく「とにかくエンジニアになりたいんだ!」というのが最上位目的の方はどんな言語を選ぶべきなのかを、まずはまとめたいと思います。
求人の多い言語(Indeed)
Indeedはリクナビやマイナビなどの求人サイト自体をすべて統合して表示できる求人情報検索サイトです。
そちらでのランキングなので、かなり信憑性はあるかと思います。
ここではC、SQL、Java、JavaScriptと続きますね。
求人の多い言語(paiza)
※求人サイトpaizaの求人票に載っている開発言語
こちらはpaizaという求人サイトでの同様の情報ですが、こちらのサイトはWeb系求人が多いため、PHPが一位となり、Java、Rubyと続きます。
求人の多い言語(AngelList)
※ベンチャーを多く掲載する求人サイトAngelListのランキングです
ここではJavaScript、Python、Rubyが上位に来ました。
ただし、JavaScriptはそれだけ知っていればいいというわけではありませんのでご注意ください。
というのも、JavaScriptは様々に分類され、フロントエンドのウェブサイトの開発を促進する為、React、Node.js、Ember.jsなど多くのフレームワークが開発されています。
それぞれのフレームワークによって下記の通り平均年収がまた違いますのでご注意ください。
JavaScriptのフレームワークごとの平均給与
もしかしたらもう何を学べばいいのか分からなくなってしまっているかもしれません。
そんな方のために、おすすめの言語をいくつかピックアップしたいと思います。
- Java
世界で最も使用機会が多いオブジェクト指向と言われるタイプのプログラミング言語です。
ツールやゲーム、Webサービス、Androidアプリまで利用可能です。
使われているだけあって参考資料が日本語のものも含めとても豊富です。
- PHP
ウェブサービス系の求人でスタンダードなのがPHPです。
Webで何か書くことを仕事にしたいと言う方にはおすすめです。
- Python
近年ビッグデータや人工知能(AI)などが注目され、それとの親和性が高いPythonの人気も傾向として高まっています。
それぞれの言語を学べるスクールはこの後にまとめています。
高収入を得られる仕事に就きたい
「食いっぱぐれない」というのと「高収入を目指す」というのは少し内容が違います。
そこで「より高収入を得られる言語」も見てみたいと思います。
言語別の年収(スタンバイ調べ)
出展:求人検索エンジンスタンバイ(運営:ビズリーチ)
こちらのランキングではScala、Python、Kotlinと続きました。
ちなみに、求人件数が100件未満でランク外となったものの中にGoがあり、平均は571万円だったそうです。
言語別の年収(Indeed調べ)
Swift、Python、Rubyなどが高年収のようですね。
余談ですが、Indeedとスタンバイをどう比べればいいのか難しいですよね。
というのも、どちらもリクナビやマイナビなどの求人サイト自体を検索する求人情報検索サイトだからです。
ただ規模としてはIndeedのほうが圧倒的に大きいようです。
出展:人材採用・広報戦略と飲食のよろづプロデューサー新美のブログ
そのようなわけで、基本的にIndeedのランキングを参考にすればいいかと思います。
Webサイトを制作するために学ぶべきプログラミング言語
今お読みになっているこちらのWebサイト「ウィルときしん」を含め、Webサイトを表示しユーザーに届けるには専用の言語を使う必要があります。
ただ注意しなければならないのは、表示するだけなら以下にご紹介するものだけで事足りるのですが、データをどこかに保持しておいて出し分けたりするにはこれらの言語だけでは不向きです。
それぞれPHPやJavaなどを利用する必要があり、それについては「Webアプリケーションを制作するために学ぶべきプログラミング言語」にまとめています。
HTML
HTMLは、Hyper Text Markup Languageの略で、ほぼすべてのWebページは、これでGoogle ChromeやSafari、Internet Explorerなどのブラウザに表示されています。
HTMLでは、様々なタグを用いて、文字にリンクを貼ったり、タイトルや段落、表などを作ったりすることができます。
厳密に言うとプログラミング言語ではありません。
それではWebサイト制作に使う言語をご紹介します。
CSS
Webページの見た目を整えて表示するためのマークアップ言語です。
厳密に言うとプログラミング言語ではありません。
CSSは、Cascading Style Sheetsの略でHTMLの文字などに階層で分けたスタイルを適用して表示します。
実際のイラストを作るほかに、この言語を操る人を「Webデザイナー」と言ったりします。
JavaScript
Webページに動きを入れるためのプログラミング言語です。
もっと簡単に書けるように作られたjQueryというライブラリがあったり、上述したReact、Node.js、Ember.jsなど多くのフレームワークがあるので、「JavaScript」と言ったときには色々なものを含んでいることにご注意ください。
ちなみによくある勘違いですが、「JavaとJavaScript」は全く別物の言語です。
そちらについてはこちらの記事をご参照ください。
Webアプリケーションを開発するために学ぶべきプログラミング言語
上記の「Webサイトを作るための言語」では結局すべてをつくることができません。
極言すれば「同じものを見せているだけ」なのが上記の「Webサイト」です。
そこで、以下の言語と組み合わせることによって、情報の出し分けや更新などを可能にしていきます。
FacebookやAmazonなどすべてそうです。
初学者によくある勘違いですが、「言語は1つだけ選んで学べばいい」というのは大きな間違いです。
往々にして、メインのものはあれど、複数の言語を組み合わせて利用することになるので、「つまみ食いは必要」と思ってください。
それではWebアプリケーション制作に利用する言語をご紹介します。
PHP
PHPはWebアプリケーションの作成に特化しているプログラミング言語です。
大規模な開発にも多々採用されていいます。
また、PHPはHTMLに埋め込んで使うことができ、データベースと連携し、その結果をWebサイトに表示させるなど「動的」な処理を開発できます。
加えて、よく普及していることから、ネットで調べればすぐに問題を解決できるのもウリです。
なんと7割ものWebサービスでPHPが使われているらしいですよ。
Python
シンプルで簡単に覚えられることを重視したプログラミング言語です。
様々な分野で利用でき、計算処理に強いことからデータ分析や人工知能・機械学習に対して相性がいいのが特徴です。
このことから今注目が高まっています。
Perl
OSのLinuxに基本的ににインストールされている言語です。
2000年台の前半ごろまではWEB系でトップで特にネットの掲示板などによく用いれられいます。
しかし現在ではPHPに抜かれ、求人数もどんどん減っていて今から学ぶ入門者には不要かと思います。
またソースコードの可読性が低く、初心者にとってはPHPより難しいです。
Ruby
Ruby(ルビー)最大の特徴は日本人によって開発されたプログラミング言語であることです。
まつもとゆきひろ氏によって作られました。
そのため、日本語の資料が多く、勉強しやすい環境が整っています。
「手軽に」「楽しく」がキーワードです。
人気の理由は、「Ruby on Rails(ルビーオンレイルズ)」というフレームワークが豊富なことが大きいです。
このフレームワークを使えば、Webアプリケーション開発でよく使う機能をそのまま組み込めます。
実はTwitter、Cookpad、Airbnb、Hulu、Wantedly、食べログ、グノシー(Web)もRubyでできています。
Scala
Scala(スカラ)は、高い生産性と堅牢性を持ちながら、オブジェクト指向言語と関数型言語の特徴をも併せ持った言語です。
Javaのプラットフォーム上で動き、Javaと連携しやすいです、
Scalaは米Twitter社や米LinkedIn社などで利用されています。
世界的には「Scala」の採用企業が増えているのに対し、扱える人材が少ないことから年収が高い言語といわれています。
国内でも、ネット系の企業で特に普及していて、伸びしろの大きい言語です。
スマホアプリを開発するために学ぶべきプログラミング言語
スマホアプリを開発しようという場合にはiOSのアプリか、Androidのアプリかと言う点でまずは大きく分かれます。
Swift
まずはiOSからSwiftです。
iPhoneやiPad、Apple WatchなどのiOS端末で動かすアプリを作りたいならこちらでしょう。
Apple社がApple製品のために開発した言語です。
また、非常に重要な点なのですがSwiftを操るにはXcodeというアプリが必要で、XcodeはMac(AppleのPC)でしか動きません。
つまり、このせいでiPhone向けアプリはMacのPCでしか制作できないということになります。
ちなみにXcode自体は無料で、App Storeからダウンロードするだけですぐ利用できます。
ただし、iOSアプリのリリースにはApp storeにリリースするためのデベロッパープログラム(年間99ドル)がかかります。
Objective-C
Objective-CはC言語を基礎としたオブジェクト指向のプログラミング言語です。
ちなみに「オブジェクト指向」は「それぞれのコードに役割を割り当てる」プログラミングの考え方、とでもざっくり理解しておいてください。
Objective-CもApple製品専用です。
以前はObjective-Cが主流でしたが、今は上記のSwiftがメインストリームになってきています。
Java
AndroidアプリはすべてJavaでできているといって過言ではありません。
Android向けのアプリを使いたいならJavaを。
そして、Javaは大規模開発に向いていて、大企業のシステムにもよく用いられているので、
となってもつぶしが利きます。
また、2015年3月に「RoboVM」というソフトウェアが発表され、JavaでAndroidだけでなくiOSのアプリも作れるようになりました!
これはスーパービッグニュースで、今までiOSに二の足を踏んでいたエンジニアを一気にiOSに近づけました。
(とはいえMacのPCはいりますよ)
Kotlin
Kotlin(コトリン)はロシア生まれのプログラミング言語で、Javaでの開発を簡単・安全にするために作られました。
2017年5月にGoogleがAndroidアプリ開発の公式言語として追加することを発表したことが話題となり、流行が加速しています。
ゲームを制作するために学ぶべきプログラミング言語
ゲームが好きで、ゲームを作りたくてプログラミングを始める方も多いと思います。
そこで、ゲームを作るためにおすすめの言語をご紹介します。
C++
C++はC言語でより高度な使い方ができるように拡張されたものです。
プログラミング言語の中でも、比較的「人間ではなくコンピュータが理解する言葉に近い」書き方をするので、初心者には相当に難易度が高いです。
ただ、その分コンピュータがすばやく読み込めるため、3Dグラフィックを使っているゲームなどで処理速度を早くなめらかにすることに適しています。
主に作れるのは、家庭用ゲーム(PlayStation系やNintendoDS系など)や、PCゲーム、スマホアプリ(AndroidとiOS両方)です。
JavaScript
JavaScriptはブラウザゲームでメインに使われてきましたが、最近はAndroid・iOSのスマホ開発などにも広く使われています。
JavaScript単体はそこまで難しくありませんが、様々なことを行うには専用のツール(フレームワークなど)を使う必要があり、奥が深い言語です。
C#
C#はゲーム制作で最近人気が上がっているプログラミング言語です。
C++ほど難しくなく、複雑なゲームもスムーズに作れます。
後述するUnityなどの開発環境が揃っているため、難易度はゲームプログラミングの中では比較的低くくなっています。
主に作れるのは、家庭用ゲーム、PCゲームや、ブラウザゲームの見た目部分、スマホアプリ(Android・iOS)などです。
Boo
Pythonに影響を受けていて、よく似た構文をしているプログラミング言語です。
Pythonに慣れている方にはおすすめで、最近注目されています。
Swift
Appleによる、Apple製品のtあめのプログラミング言語です。
iOSアプリを作りたい方には一番おすすめです。
プログラミング入門者にとっては少し難しいですが、複雑なアプリも作れます。
Ruby
先ほどもご紹介したRubyです。
とにかく一番の特徴は日本人によって開発され、日本語の参考文献が多いことです。
それでいて世界で使われています、
ゲーム業界では、スマホのソーシャルゲームで利用されることが増えています。
Unityなどに比べるとゲームを作るには少し本格的であるため、しっかりしたものを作りたい方におすすめです。
PCゲームやスマホアプリ(Android・iOS両方)を作れます。
Unity
Unityは言語ではなく、ゲーム開発プラットフォーム(ゲーム用統合開発環境)です。
しかし、これを使えばある程度の3Dゲームは、プログラミングの必要なくゲームが開発出来てしまいます。
Unityの中で使われている言語は、「Javascript」や「C#」、「Boo」などです。
このUnityを使えばiOS・Androidのスマホゲームや、Windows・MacのPCゲーム、PlayStation3・4、Xboxなどの家庭用ゲーム機を含め、ほぼ全ての端末で動作するゲームを開発することができます。
起業のために学ぶべきプログラミング言語
起業のためにプログラミングを学ぶなら、自分で簡単に作ってトライアンドエラーができる言語のほうが確実に成果が上がりやすいです。
そのため、言語としては以下のものを選ぶべきでしょう。
PHP
PHPは実に世の中の7割ものWebアプリケーションを作っている言語です。
要するに、Webでサービスをやるなら、これがスタンダードということですね。
そのため、よく分からなくなったときにネットで調べればすぐわかるのもポイントです。
Python
シンプルで簡単に覚えられるプログラミング言語です。
特に計算処理に強く、データ分析や人工知能・機械学習などの今流行の内容に対して相性がいいのが特徴です。
このことから今注目が高まっています。
Ruby
Rubyは手軽に楽しくプログラミングできるのが特徴の言語です。
人気の理由は、「Ruby on Rails(ルビーオンレイルズ)」というフレームワークで、これを使えば、Webアプリケーション開発でよく使う機能を簡単に実装できます。
非常に便利ですよ。
ここまで様々なプログラミング言語を見てきましたが、系譜としてまとめるとこちらのようになります。
プログラミング言語の系譜
出展:聖愛中学・高等学校