「プログラミング言語って何?いっぱいあるけど1つで十分じゃない?」という人や、
「プログラミングをやってみたいけど、どの言語を選べばいいの?」と疑問を持つ人は、ぜひ本記事を読んでみてください。
この記事ではプログラミング初心者がどの言語を選ぶべきか、またこれからプログラミングを学習する人なら知っておきたいプログラミング言語に関する知識をご紹介します。
プログラミング言語とは
プログラミング言語は、人間がコンピュータに指示するために使う言葉と考えてもらえればOKです。コンピュータは人間の言葉(日本語や英語)で指示されてもその意味が理解できません。
そこでコンピュータが理解できる言葉が必要になり、その言葉というのがプログラミング言語です。
具体例をあげると、クリックすると新しいページに移動するボタンです。
そのボタンの仕組みも、日本語や英語で「新しいページに移動して」と指示しても伝わらないので、その指示をプログラミング言語を使ってコンピュータに伝えていることになります。
日本人には日本語で、アメリカ人には英語で意思疎通するように、コンピュータにはプログラミング言語で意思疎通しよう、ということですね。
なぜたくさんあるの?
一口にプログラミング言語といっても、メジャーなものだけでも20種類以上存在します。
なぜこれほど多くの種類が存在するのでしょうか。
それは世の中に完璧なプログラミング言語は存在せず、どの言語にも苦手な分野があるからです。そして、ほかの言語が苦手とする分野に特化した言語が新たに作られてきたからです。
例えばセキュリティが高い、処理速度が速い、低予算で開発できる、短期間で開発できるなど作りたいものに合わせて優先したい性能が変わってくると思います。
すべての性能を兼ね備えた完璧なプログラミング言語があればよいのですが、なかなかそうはいかないので、何かに特化した言語がどんどん生まれて、現在のように多くのプログラミング言語が存在するのです。
プログラミング言語の種類
プログラミング言語は、フロントエンドで使う言語とバックエンドで使う言語の二種類に分けることができます。
フロントエンドはWEBサイトやWEBアプリの見た目の部分で、バックエンドはWEBサイトやWEBアプリの見えない部分を作る言語です。
例えば商品の購入ボタンがあるとすると、ボタンの見た目を作るのがフロントエンドで、ボタンをクリックしたユーザーの情報をデータベースに保存するのがバックエンドです。
- フロントエンド
HTML・CSS・JavaScript
- バックエンド
PHP、Ruby、Python、Java、C++、Perl、JavaScriptなど多数
基本的にHTML・CSS・JavaScriptがフロントエンドを担当し、それ以外がバックエンドを担当すると考えればよいです。
プログラミング言語の種類やそれぞれの違いなどは、下記記事で詳しく説明しているので気になる方はぜひチェックしてください!
プログラミング言語の選び方
ここでは数あるプログラミング言語の中で、どれを学習すればいいかわからない人に向けて4つの指針を説明します。自分に合った選び方を見つけましょう。
求人の多さで選ぶ
求人が多いということはそれだけ需要があるということなので、就職や転職に有利です。
ある程度の実力がある人は、自分のやりたい仕事を見つけやすいのも魅力です。
ここではITプロパートナーズ、レバッテクキャリアなど8つの求人サイトの言語別求人数を扱っているNojovをもとに説明します。
Java
Java1つでほぼ何でも作れてしまうほど汎用性が高いのが特徴です。加えて多くの人数で取り組む大規模開発やセキュリティの高さに優れていることから、大手の銀行や証券会社で多く採用されている言語です。
またJavaはCやC++など初期のプログラミング言語をもとにつくられ、RubyなどJava以降に生まれた言語に影響を与えているため、Javaを習得すればほかの言語の習得が楽になります。
※注意
ただ、Javaはコンパイルという作業が必要なため初心者はつまずきやすく、難易度は高いといえます。また、大企業では多く採用されている一方で、小規模開発においてはPHPやJavaScriptなど他の言語のほうが優れているため、ベンチャー企業や在宅勤務のフリーランスではあまり使われないといった点があります。
JavaScript
先ほどのJavaと関連があるように見えますが、JavaとJavaScriptは全く別の言語で、字面がたまたま似ているだけです。
見た目を作るフロントエンドの開発には必ずと言ってよいほど使われていて、JavaScriptを使えば動きのあるWEBサイトを作ることができます。
理解しやすい文法で、ブラウザさえあれば実行可能なため初心者の方が親しみやすい言語です。
また、ライブラリやフレームワークが非常に豊富で、中でもjQueryというライブラリはJavaScriptよりはるかに少ないコードで機能を実現できるため非常に人気があります。)
PHP
WEBアプリ開発に優れているサーバーサイド言語(バックエンド側)です。
WordPressという、ブログなどのWEBサイトを簡単に作れるソフトウェアはPHPがもとになっています。PHPは多くのWEBサービスで採用されており、FacebookにもPHPが使われています。
PHPを理解すれば、WordPressを自由に操作することもできるので、WEBアプリ開発とWordPressに生かすことができる点も魅力となっています。
年収の高さで選ぶ
プログラミングを学習する人の中には、現職・前職の給料より多く稼ぎたいと思って始めた人が多いのではないでしょうか。そういった人はぜひ参考にしてみてください。
IT・テクノロジー人材のためのコミュニティ「TECH Street(テックストリート)」が、2020年1月1日〜2020年9月30日に転職サービス「doda」に会員登録を行った20代~50代のITエンジニアを対象に調査したデータです。本記事では20代、30代のデータを参考にしています。
R
統計解析向けのプログラミング言語です。何でも作れるJavaのような言語とは違い、Rはデータ解析を専門とする言語でそれ以外の用途にはあまり使われません。
Rを使った仕事は、言語の習得に加えて統計学的知識も必要になってきます。求められるスキルが多い傾向にあることが高収入の要因の一つとなっています。
AIや機械学習を扱いたい、将来ビッグデータを扱うデータサイエンティストになりたい人はこちらを学習するとよいでしょう。
Go
Googleが設計したGoは、近年注目が集まっているモダンな言語です。シンプルな構文で動作が軽いのが特徴で、大規模で複雑な開発にも優れています。
比較的新しい言語のため学習に必要な情報を集めづらいのが難点ですが、これからの時代で主流になるプログラミング言語として期待されています。
Scala
Scalaも近年注目されている言語で、オブジェクト指向と関数型プログラミングを合わせているのが特徴です。
また、Javaと互換性が強くJavaの豊富なライブラリを使うことができるのも特徴です。
そのためJavaを習得した人にとっても親しみやすい言語といえます。
難易度の低さで選ぶ【初学者向け】
とりあえずプログラミングを勉強してみたいという人は、難易度の低い言語を選ぶのがおすすめです。これから紹介する言語は執筆者の個人的感想によるものですが、参考にしていただければ幸いです。
HTML / CSS
厳密にはプログラミング言語ではなくマークアップ言語と呼ばれるものですが、今回は便宜上プログラミング言語として扱います。
HTMLは見出し、段落、画像などの要素を配置して文書の構造を決めるための言語です。
CSSはその文書の構造を装飾(デザイン)するための言語です。
これらはセットで用いられることが多いです。これら二つの言語によって、動きのない静的なサイトを作ることができます。
これら二つの言語はプログラミングの基盤ともいえるもので、他のプログラミング言語と密接に関係しています。HTML/CSSがわからないと他のプログラミング言語の習得が難しい、とまではいきませんが、わかるとよりスムーズに学習を進めることができます。
また、HTML/CSS学習後にJavaScriptを学習すれば、動きのある本格的な見た目のサイトをつくることができ、フロントエンドエンジニアの道を最短で進むことができます。
Ruby
Rubyは日本人が開発したプログラミング言語ということもあり、日本人になじみのある自然な文法なのが特徴です。日本語のドキュメントが非常に充実しており、わからないことがあっても検索すればたいてい解決できます。
特にRuby on Railsというフレームワークは非常に簡単にWEBアプリを開発することができ、Railsチュートリアルという日本語学習サイトもあるので初心者にも学習しやすいです。
目標で選ぶ【最重要】
目標や作りたいものがある人は、それを実現できるプログラミング言語を選びましょう。
目標に直結しない言語を選択してしまうと、目標実現に余計に時間がかかってしまいます。
例えば在宅勤務のフリーランスエンジニアになりたいと具体的な目標を持つ人が、求人が多いからという理由でJavaを勉強して案件を探しても、大企業で出勤する案件ばかりで思ったより良い案件が見つからない、なんてことにもなりかねません。
目標や作りたいものが具体的に決まっていない人は求人や年収などを基準にしてほしいですが、具体的に決まっている人はそちらを最優先で言語を選択しましょう。目標の例を基におすすめの言語を紹介します。
こちらの記事ではフリーランスエンジニアにおすすめのプログラミング言語を紹介しているので、目標がフリーランスの方はぜひ参考にしてみてください。
iOS、Macアプリを開発したい:Swift
SwiftはApple社が開発したプログラミング言語です。iOSやMacのアプリケーション開発をしたい人は、Swiftを選びましょう。
またiOSやMacOSは、ハードウェアとソフトウェアどちらもAppleが作っています。そのため、Swiftを使うことでメモリーやハードディスクなどハードウェアにかかわるアプリを開発することもできます。
※注意
ただ、SwiftはWindowsやLinuxなどMacOS以外での開発は難しいです。Swiftを使ってiOSやMacのアプリ開発をしたい人は、MacOSのパソコンをご用意することをお勧めします。
Androidアプリを開発したい:Kotlin
Kotlinはジェットブレインズ社が開発したプログラミング言語です。Androidアプリの開発言語としてGoogleが推奨したこともあり、Kotlinの人気はますます高まっていくでしょう。
Javaよりも簡潔にコードを書くことができるので、Androidアプリを開発したい初心者の方にはKotlinがおすすめです。
AI、機械学習を学びたい:Python
Pythonはシンプルなコードが書けることが特徴のプログラミング言語です。PythonはAI、機械学習、ロボットなど近年注目されている分野で多く使われています。
Rと同様、AI、機械学習を扱う際には統計学的知識や数学的知識が求められますが、PythonはRと違いWEBアプリ開発も得意とするので、WEBアプリ開発をしたい初心者の方にもおすすめです。
ロボット開発をしたい:C
C言語は1972年に開発された歴史のあるプログラミング言語で、それ以降に開発された言語に大きく影響を与えています。
ロボット開発の他にソフトウェア、OSの開発も可能です。
歴史ある言語のため学習サイトや書籍は充実していますが、言語だけでなくコンピュータに関する知識も必要になるため、初心者には少し難易度が高いといえます。
迷ってしまう場合のおすすめ言語
ここまででいろいろ選び方を紹介してきましたが、初心者の方にとって重要なのは
「とにかく始めて、継続すること」
だと思います。今まで述べてきた言語であれば基本何を選んでもよいいのですが、迷ってしまった場合は難易度の低いHTMLやRubyをオススメします。
【結論】目標を最優先にしよう
今回はプログラミング言語について解説してきました。
求人の数や年収、作りたいものが決まっているなど、優先すべき基準がある人はぜひ今回の記事を参考にして自分に合った言語を選んでみてください。
そうでない人も、難易度の低い言語から始めるなどとりあえずやってみることが重要です。
プログラミング言語はこれから複数習得することになっていくでしょうし、1つの言語を習得してしまえば次の言語習得はぐっと簡単になります。
本記事が、あなたのプログラミング学習第一歩を踏み出すきっかけになれば幸いです。