- 1. プログラミング言語の基礎知識
- 1. プログラミング言語とは
- 2. プログラミング言語で実現できること
- 3. プログラミング言語の種類
- 4. プログラミング言語の選び方
- 5. プログラミング言語ごとの年収の違い
- 6. プログラミング言語の主な種類
- 7. JavaScript
- 8. Java
- 9. PHP
- 10. C言語
- 11. Perl
- 12. Swift
- 13. Ruby
- 14. R
- 15. TypeScript
- 16. Kotlin
- 17. Python
- 18. Scala
- 19. GO
- 2. プログラミング初心者必見!学ぶ言語の決め方
- 1. 作りたいものが明確にある場合は必要な言語だけを極めてみる
- 2. 特にない場合は始めやすいRubyとJavaScriptがおすすめ
- 3. 目的に合わせて習得する言語を選ぼう
私たちが利用しているWebサービスやシステムは全てプログラミング言語で作られています。また、プログラミングを学ぶことで自分独自のサービスを作ることもできます。
ここではプログラミングに興味を持った方向けに各言語の特徴や種類について解説します。
プログラミング言語の基礎知識
まずはプログラミング言語に関する基礎的な知識を学んでいきましょう。プログラミング言語の種類や選び方、習得した人の平均年収についても解説していきます。
プログラミング言語とは
プログラミング言語とは、人間がコンピューターに伝えたいことがあるときに用いられるコンピューター専用の言語です。プログラミング言語を用いて様々なシステムやサービスを作ることができます。
現在、プログラミング言語はJavaやPHP、C++、JavaScriptなどのメジャーなものから、マイナーなものまで合わせると200種類以上あり、コンピューターの種類や作るものよって使用される言語が異なります。
プログラミング言語で実現できること
プログラミング言語を使用することでWebサイトやアプリケーション、ゲームやシステムを作ることができます。また、プログラミングで作った自分のサービスで世の中の問題や不便なことを解決することもできます。
プログラミング言語の種類
現在、プログラミング言語の種類は200種類以上であるといわれていますが、全ての言語が今も使われているわけではなく、実際に使用されているのは全体の10%程度です。
プログラミング言語の種類が多い理由は2つあり、プログラムの規模が大きくなってきたことと、コンピューターの処理速度が上がったことだといわれています。プログラミング言語はその時代のコンピューターの性能やプログラマーたちの意見を取り入れて進化してきました。
プログラミング言語の選び方
プログラミング言語の選び方は人それぞれですが、求人数の多さやシェアの大きさで決めるのが一般的です。もちろん、自分がプログラミングで作りたいモノで判断するのも重要ですが、プログラマーとして活躍したい場合は求人の多さも気になるところです。
各言語の特長を理解して、自分のやりたいことと需要のバランスを考えた言語選びをしましょう。
Javaは、Webから基幹システム、ゲーム、スマホアプリまで様々な分野で開発言語として採用されており、高い需要があります。PHPも根強い人気を持ち、Javaに続く求人数を保っています。PHPはWebサイト作成において人気のWordPressなどでも使われており、今後も需要は安定しているといえるでしょう。Pythonは近年のAI開発で脚光を浴びている言語なので、将来性があります。
JavaScriptはサーバーサイド開発環境の充実によってWeb開発全般に活用されるようになってきました。C#、C++を始めとしたC言語系は基幹システムやアプリ開発、高速処理が必要なWeb開発において人気があり、求人数は安定しています。
一方、SwiftやGO、Kotlinといった新しい言語はまだ市場の規模が小さく、需要が大きいとはいえません。
プログラミング言語ごとの年収の違い
プログラミング言語の種類によって、作れるシステムやサービスが異なるので、当然年収も異なってきます。
株式会社ビズリーチが運営している求人検索エンジン「スタンバイ」で公開されている「プログラミング言語別年収ランキング2018」によると、1位のGOの平均年収が600万円(最大提示年収:1,600万円)であるのに対し、10位のC言語は525万円(最大提示年収:1,000万円)と平均年収に大きな差が出ているようです。
2位は同じくJavaプラットフォーム上で開発できるScalaの平均600万円(最大提示年収:1,300万円)、3位がAI開発で広く使用されているPythonの平均575.1万円(最大提示年収:1,499万円)です。求人件数と平均年収は、必ずしも正比例するとは限りません。求人件数が少なくても、市場の需要にエンジニアの供給が追いついていない言語や習得が難しい言語は、平均して年収が高くなる傾向があります。
プログラミング言語の主な種類
ここでは各プログラミング言語の特長について解説していきます。また、各言語の説明だけではなく、実際に使用されているシステムやサービスも合わせて説明していきます。
JavaScript
JavaScriptは、初心者にもおすすめできる言語であり、基本的なプログラミング言語の1つです。Androidのアプリケーション、銀行の基幹システム、WebサイトやWebサービス等、名前を挙げるときりがない程のシステムに使用されています。
ブラウザ上で動作し、Webサイトの動きをつけるために使用されます。PHPと同じく実際に動きを確認しながらプログラミングを学習できるので、初心者でも楽しんでプログラミングを学べます。JavaScriptを学習する際は、同じくWebサイトを作成するのに用いられるHTMLやPHPと合わせて学習すると良いでしょう。一般的に、フロントエンド(ブラウザ側)の開発にはJavaScriptが使用されます。フロントエンドエンジニアを目指す方にとっては必須の言語であると言えるでしょう。
Java
Javaは、WebアプリケーションやAndroidアプリ、組み込み系システムなど様々な分野で使用されているプログラミング言語です。プログラミング言語の祖とも言えるC++やC言語を元として開発された言語です。
オブジェクト指向型言語なので初心者にとって比較的難易度が高く、使いこなすまでには時間が掛かる場合もあります。ただ、世界的にも幅広く開発に採用されている言語であることと、Javaを理解しておくことで他の言語への転換もしやすいので、プログラマーを目指すのであれば学んでおきたい言語です。
PHP
PHP(ピーエイチピー)は、Webアプリケーションの開発に用いられている歴史のあるプログラミング言語です。世界的に数多く使用されている言語なので、インターネット上に情報が多く、日本語での書籍もたくさん出版されています。
Webアプリケーション開発向けのフレームワークは多く存在しているので、初心者でも比較的簡単にWebアプリケーションを開発することができます。また、Webサイトの作成にWordPressが用いられているケースは多く、PHPはWordPressで構成されたWebサイトをカスタマイズする上で必須の言語になります。
PHPを使いこなすことができれば、Webサイトを自分の好きなデザインに変更することも可能です。将来的には、自分のブログサイトやECサイトも立ち上げることができるでしょう。一方で、WordPressはセキュリティ面の問題点が指摘されているので、PHPの学習を進めるのであれば同時にセキュリティに関する知識も必要になるでしょう。JavaScriptと同様にサイトに動きをつけられるプログラミング言語なので、初心者にとっては学習しやすい言語です。
C言語
C言語は様々なアプリを作成することができるプログラミング言語です。プログラミング言語の祖と呼ばれており、1972年にブライアン・カーニハンとデニス・リッチーによって開発されました。
C言語は、コードを書いてから実際に動作させるまでに「コンパイル」という行為が必要な言語です。ソースコードを機械が理解できる言葉に翻訳する行為をコンパイルといいます。これにより、コンピューターがアプリケーションを実行しやすくなるので効率的な早い処理が実現できます。
初心者にとって難易度が高く、メモリ上に与えられた番号であるアドレスを記憶するための「ポインタ」の概念を理解することが難しいとされています。決して初心者向けのプログラミング言語ではありませんが、コンピューターに詳しくなりたいという人や、プログラミング自体に詳しくなりたいという人は学んでおきたい言語です。
C言語と似ている言語で、C++やC#という言語があります。C++は1983年に「C言語の拡張」として開発されたプログラミング言語です。C言語にオブジェクト思考を追加したものになります。C言語にとって「弟」のような存在と言えるでしょう。C#はJavaの良い部分を取り入れたWeb系の言語なので、C言語とは全く違う別の言語と言えます。どちらかというとC++と似ている部分があります。
Perl
Perl(パール)は、ラリー・ウォールによって開発された約29年の歴史を持つ高性能かつ機能豊富なプログラミング言語です。C言語やBASIC、Pythonなどの利点を継承し、CGIのほか、グラフィックスや文書処理、データベースおよびネットワーク管理、大量のデータの分析・変換など、様々な開発で汎用的に利用されています。
大きな特長は、テキスト処理に対して非常に強力であることです。また、ライブラリモジュールが豊富なので、できることの多さにも定評があります。ドキュメントやライブラリはオープンソースで公開されている点も特長の1つで、誰でも無料で自由に利用可能です。
Perlは、PHPやRubyと同様にインタプリタ方式の言語です。ソースプログラムを修正するときにC言語やJavaのようにコンパイルをする必要がなく、すぐ実行できることも特長です。また、どんなOSでも動作可能なので初心者にとっても嬉しい言語でしょう。
Swift
Swift(スウィフト)は、Apple社が開発したプログラミング言語で、iOSおよびmacOS等で利用できます。iOSやmacOSで利用できる、iPhoneアプリやARアプリを作りたい人におすすめのプログラミング言語です。
国内のiPhoneのシェアは非常に高く、これからも大きな需要が見込める言語であると言えるでしょう。Swiftが誕生する前までは、Objective-Cという言語でiPhoneアプリは作られていましたが、今ではSwiftが主流になってきているので、今から始めるならSwiftを選ぶことをおすすめします。
Ruby
Ruby(ルビー)は日本で生まれたプログラミング言語であり、まつもとゆきひろさんによって開発されました。Webアプリの開発や機械学習などに用いられます。国産の言語なので、日本語の情報も豊富です。
Rubyには、Webサービスの開発を強力にサポートするRuby on Railsというフレームワークがあり、Ruby on Railsを使用することで素早くWebアプリケーションを開発することができます。よって、Rubyを学ぶ際には、Ruby on Railsと合わせて学習しましょう。日本発祥で知名度も高く、学べる学習サービスや情報も多いのも初心者にとって追い風です。「書きやすく、読みやすく」をコンセプトとして開発されているため、ソースコードの構造がシンプルで初心者でも理解しやすい言語と言えます。
R
R(アール)は1996年ごろに登場したオープンソースでフリーなプログラミング言語です。コメントや関数名に日本語を使用することができるので、視覚的にも分かりやすいコードを書くことができます。
どんなOSでも使うことができるのも特長の1つです。Windows、Macを問わないのはもちろん、LinuxやUNIX等でも動作します。オブジェクト指向の手法も取り入れられた言語ですが、「Java」や「C#」などの汎用的なプログラミング言語とは異なり、統計解析だけに特化したプログラミング言語です。
R言語にはデータ解析を便利に簡単に行えるような機能が多く搭載されています。特に有名なのがグラフ出力の機能です。折れ線グラフ、円グラフなど様々な形式のグラフを出力することができます。統計学者が作成したプログラミング言語なこともあり、コード自体の難易度は低めです。プログラミングに少しでも触れたことがある人なら文法などは比較的簡単に習得できます。その分、有用に使いこなすには統計分析の知識も必要になってきます。
TypeScript
TypeScript(タイプスクリプト)は2014年ごろにMicrosoftによって開発・発表されたプログラミング言語です。JavaScriptを拡張して作られたものですが、JavaScriptとは違い静的型付けクラスがオブジェクト指向言語になっています。JavaScriptの良いところを残しつつ、使いにくかった点を修正した言語とされています。
コンパイルすると、JavaScriptのコードに変換されるためJavaScriptが動く環境であればすぐに使うことができます。JavaScriptとの互換性が非常に高く、ライブラリを始めとしたJavaScriptの機能をTypeScriptからも使うことができます。ライブラリとは、よく使う機能をあらかじめ実装した状態でまとめてある便利機能です。
また、2017年にGoogle社内の標準開発言語としてTypeScriptが承認されたことから、いま世界中から注目されている言語の1つです。Googleが開発しているJavaScriptフレームワークのAngularもTypeScriptでの開発が推奨されています。Googleが開発している人気のフレームワークにも導入され、現在では他のフレームワークでもTypeScriptが使用できるようサポートされつつあります。今後、JavaScriptに代わり需要が増えていくとされている、注目のプログラミング言語です。
Kotlin
Kotlin(コトリン)は2011年ごろに発表されたプログラミング言語です。Javaとの相互利用ができるので、Javaで作られているソースコードをKotlinで呼び出すこともできます。Javaで書かれているソースコードは世の中に多いので、この点は非常に注目されています。Javaと同じくオブジェクト指向型言語です。
静的なnull安全が保証されており、引っ掛かりやすいエラーを未然に防いでくれるのが特長の1つです。ソースコードを書いている時は、エラーや記述ミスとの戦いなので、とても頼もしい機能です。
また、Scalaなどの現代的な言語からも影響も受けており、Javaに比べてコードの記述量が少なく済むといわれています。比較的新しい言語ですが、2017年にAndroid公式開発言語に追加された事で大きく知名度を上げました。
Python
Python(パイソン)はAIや機械学習、Webアプリケーションの開発を行うことができるプログラミング言語です。AIと機械学習への注目が年々増しており、近年人気が急上昇しています。
ソースコードの文法がシンプルで読み書きしやすく、はじめてのプログラミング学習に適している言語です。業務自動化ツール開発などに使えるので、習得できると日々の業務の効率化にも繋がります。AI領域の開発者やデータサイエンティストを目指したい人にもおすすめの言語です。
Scala
Scala(スカラ)はオブジェクト指向と関数型プログラミングの両方を扱えるプログラミング言語です。ScalaはJVM(Java Virtual Machine)上で動作するので、Javaのライブラリのほとんどを利用することができます。JVMはJavaの仮想マシンのことです。
近年、Scalaで作られたWebサービスは増えてきており、SNSやサービスとしてはTwitterやLinkedInに使用されています。また、国内サービスではChatworkやビズリーチなどがScalaで作られており、人気の高さが伺えます。また、人工知能に関するシステムにも採用されていることがあり、Pythonとともに注目されている言語です。
Scalaはメリットの多い素晴らしい言語ですが、難易度が高く学習が大変である点がデメリットとして挙げられます。理由としては、オブジェクト指向言語と関数型言語の両方を十分理解して使う必要があるためです。多くの知識を必要とするので学習に長い時間が掛かります。
身に付けるのが大変な分、使いこなせると非常に頼もしい言語なので、技術者としてレベルを上げたい方はチャレンジしても良いでしょう。求人検索エンジンスタンバイが発表したプログラミング言語別平均年収では、Scalaが626万円と第1位に選ばれています。
GO
Go(ゴー)はロブ・パイク、ケン・トンプソンによって設計されたプログラミング言語です。スケーラビリティが高く、利用者や仕事の増大に対応できるのが特長です。システムを大規模化してもコストが高くならないので、主に規模の大きいプロジェクトで利用されています。シンプルなのも特長で、APIサーバー開発やWebサーバーの開発に使用されています。
プログラミング初心者必見!学ぶ言語の決め方
ここではプログラミング初心者が学ぶべき言語の決め方を紹介していきます。決め方は作りたいものがある場合と無い場合に大きく分けられます。
作りたいものが明確にある場合は必要な言語だけを極めてみる
自分が作りたいシステムやアプリケーションがある場合は、その制作に向いている言語の学習から始めましょう。Web系のシステムならJava、統計解析のシステムならPythonといったように、プログラミング言語にはそれぞれ特長があります。まずは、その言語で何ができるのかをしっかりと理解しましょう。また、将来どのように働きたいのかも重要です。
フリーランスとして独立したい場合には1つの言語に絞って完璧になるまで極めることが必要です。目的を決めずに全ての言語をまんべんなく勉強しようとすると中途半端になりやすく専門性が身に付きません。1つの言語を極めておくと、他の言語を勉強した時に応用できることがあります。
特にない場合は始めやすいRubyとJavaScriptがおすすめ
RubyとJavaScriptはソースコードがシンプルなのでプログラミング初心者でも始めやすい言語です。また、使用されている機会も多く、需要が高くなりやすいので、就職や案件獲得の際に有利になるでしょう。RubyとJavaScriptはともに手続き型・オブジェクト指向型であるスクリプト言語です。
Rubyは日本で生まれたプログラミング言語なので、日本語の情報も豊富です。理解するための情報には不自由しないので、学習がとてもしやすいでしょう。「書きやすく、読みやすく」をコンセプトとして開発されているため、初心者でも理解しやすい言語と言えます。また、Rubyには、Webサービスの開発を強力にサポートする「Ruby on Rails」というフレームワークがあります。Rubyを学ぶ際には、Ruby on Railsと合わせて学習しましょう。
JavaScriptはブラウザ上で動作し、動きのあるWebページを作成できます。PHPと同じく、実際に動かしながらプログラミングを学習できるため、初心者でも楽しんでプログラミングを学べます。TIOBEの2019年7月のランキングでは、7位に位置しています。JavaScriptを学習する際は、HTMLやPHPと合わせて学習すると良いでしょう。
目的に合わせて習得する言語を選ぼう
「何のために学ぶのか」という目的を明確にしてから選ぶことが大切です。目的が無ければ、モチベーションの維持が難しく、途中で勉強を止めてしまう原因にもなります。年収を上げたいのか、早く独立したいのか、目的をはっきりとさせておきましょう。
初心者はPHPやJavaScript、Rubyなどのスクリプト言語から学習を始めると、挫折する可能性を低くできます。JavaやSwiftはコンパイラ言語なので、少し学習の難易度が上がってきます。またオブジェクト指向型の言語はオブジェクト指向の概念を理解する必要があるのでハードルが上がってきます。C言語はとても有名なプログラミング言語ではありますが、初心者が理解するのがかなり難しい言語です。なぜなら、メモリの管理が必要であり、メモリ上に与えられた番号であるアドレスを記憶するための「ポインタ」の概念を理解することが難しいからです。
各プログラミング言語の難易度を把握するのも大切ですが、難易度だけで選ばないようにしましょう。 何よりも大切なのは、プログラミング言語を使って実現したいことに向けた言語選択をすることです。自分が作りたいものは、Webサービスなのか、スマホアプリなのか、WindowsやMacのアプリケーションなのか把握したうえで、それぞれに適したプログラミング言語の学習を始めましょう。