プログラミングを新しく勉強しようとしている人の中で、プログラミング言語がたくさんありすぎてどの言語を勉強したらいいのかわからない人もいるのではないでしょうか。
そんなあなたのために、初学者が学ぶべきプログラミング言語10種類の、特徴や、そのプログラミング言語を使ってできることを分類してみました。
・これからプログラミング学習を始めたい!
・どのプログラミング言語から学習すればいいかわからない
・プログラミング言語ってたくさんあるけどどう違うのかよくわからない
こんな疑問や悩みがある方におすすめの記事です。
プログラミングの学習はこれから先の生活をより豊かにするためのツールとしてきっと役立ちますので、ぜひ最後まで読んでみてください!
- プログラミングとはなにか
- プログラミング言語の種類とそれぞれのできること
- 自分がどの言語から学習すればいいか
- 実際に学習するにはなにから始めればいいか
プログラミング言語とは?
コンピュータに「このように動作して!」と指示や命令を出すときに作成する「プログラム」を作成することをプログラミングと呼び、この時に使う言語をプログラミング言語と言います。
プログラミング言語は全部で250種類以上もあると言われており、その中からどれを使ってプログラムを描くかによって書き方や考え方が異なるため、開発するものによって言語を使い分けるのが効果的です。
プログラミングによってできることは下記のようなものです。
- WebサイトやWebアプリケーションの開発
- ゲーム開発
- 電化製品の開発
- AI、機械学習の開発
このように様々なことを行うことができますが、それぞれの分野でどのプログラミング言語利用するべきなのか、自分はどのプログラミングの学習をしたらいいのか、を詳しくまとめていきます。
プログラミング初心者が最初に学習するのにおすすめのプログラミング言語11種類を記述方法や変換方法、開発できるもので分類し、紹介していきます。
プログラミング言語のを記述方法で分類【2種類】
プログラミング言語の記述方法には「手続き型言語」と「オブジェクト指向型言語」があります。
手続き型言語➡C言語、Go言語
オブジェクト指向型言語➡Java、PHP、Ruby、Python、Swift、Kotlin、C++、C#、JavaScript
手続き型言語を使って開発することのメリットはプログラムのコードがシンプルでわかりやすいため、プログラミング初心者が習得しやすいメリットがあります。
ただ、プログラムの再利用ができないデメリットもあります。
- シンプルでわかりやすい構造
- プログラムを実行すべき命令や手続きの順番に従って記述される
- 習得しやすい
オブジェクト指向型言語を使って開発するメリットとしてはプログラムの再利用ができる点と、現実のものと結びつけて直感的に理解できる構造である点が挙げられます。
デメリットとしてはコードが読みづらい、習得難易度が高いことが挙げられます。
- モノを組み立てるように表現してプログラムを構成する
- 再利用に適している
- 習得難易度が高め
プログラミング言語を変換方法で分類【2種類】
プログラミング言語は人間がプログラムがどのようなものかをわかりやすくかけるように開発されたものです。
コンピュータはプログラミング言語そのものを理解できるわけではなく、プログラミング言語を機械語に変換することでプログラムを実行しています。変換する方法は大きく、「インタプリタ型」の変換と「コンパイラ型」の変換とに分けることができます。
インタプリタ型➡PHP、Ruby、JavaScript、Python
コンパイラ型➡C言語、Go言語、Swift、Kotlin、C++、C#、Java
インタプリタ型の変換方法は、ソースコードからバイナリコードへの変換をこまめに行う返還方式です。
1行ずつ実行する事ができるので、エラーにすぐ気づけたり、動きをすぐに確認しながらプログラムを作っていく事ができるので、プログラミング初心者が初めて学習する言語を選ぶ際にハードルの低い言語を洗濯することができます。
ただ、一度プログラムが完成しても、一行ずつ実行していくインタプリタ型言語はコンパイラ型に比べて実行速度が遅くなります。
- プログラムを実行するまでが速い
- プログラムのデバックをしやすい
- 実行速度がコンパイラ型よりも遅い
コンパイラ型言語の変換は、一度プログラムをすべて書き終えてから、ソースコードをバイナリコードに変換(コンパイル)して、コンパイルファイルを作成します。
コンパイルしたファイルを実行するので、インタプリタのように一行一行ではなく、一気に実行できるため実行速度が速いです。
ただ、一度すべてプログラムを書き終えてからでないとエラーが有るかどうかわからないため、実行するまでに手間と時間がかかります。
そして書き終えて実行してみてから、コードが間違っていたらデバック(エラー箇所を修正)するので、プログラムが完成する前に挫折してしまうことがあるのと、コードが複雑で習得難易度が高い特徴もあります。
- プログラムの実行速度が高速
- プログラムを実行するのに手間と時間がかかる
- プログラムのデバックがしづらい
つまり、インタプリタ型は学習難易度が低いものから学習したい方向けで、ゆくゆくは高度な開発をしてみたい方はコンパイラ型の言語を学習することをおすすめします。
プログラミング言語をできることで分類【5種類】
プログラミング言語によって得意不得意があるため、開発するモノ・サービスによってどのプログラミング言語を使用するのかも変わってきます。
今回は下記5種類の開発に沿って、どの言語が向いているのかを分類していきます。
- Web開発➡JavaScript、PHP、Ruby、Python、Go言語
- モバイルアプリ(スマホアプリ)開発➡Swift、Kotlin、Java
- AI開発➡Python
- 業務システム開発➡C++、C#、Java
- 組み込み系のシステム開発➡C言語、C++
Web開発
Web開発は、WebサイトやWebアプリケーションの開発で、ユーザー側の見た目部分の開発を担当する「フロントエンド開発」とサイトを利用するユーザーを管理する側の機能やシステムを開発する「バックエンド開発」とに分かれます。
フロントエンド開発ではJavaScript、バックエンド開発ではPHP、Ruby、Python、Go言語などを利用することが多いです。
モバイルアプリ(スマホアプリ)開発
モバイルアプリ開発は、AndroidやiPhoneでユーザーが端末にインストールして利用するアプリケーションの開発です。
モバイルアプリやスマホアプリのことをネイティブアプリと呼ぶこともあります。
Androidのアプリ開発にはKotlinやJavaを利用することが多く、iPhoneのアプリ開発はSwiftを使います。
AI開発
Ai開発は近年機械学習と呼ばれる技術が発展したことによって急成長しています。これに伴い数学、統計学、データ処理のライブラリが豊富に用意されているPythonを利用することが多いです。
AI開発に関しては下記の記事で詳しく解説しています。
業務システム開発
業務システムとは会社の業務をもっと効率的に処理しようと作成されるものです。それぞれの企業にあったシステムの開発で、例えば従業員の給料計算を行うシステムや勤怠管理を担うシステムなどを開発する分野です。
そのため色々なシステムの開発に使われる汎用性の高い言語で、処理速度も速い、C++やC#、Javaなどが使用されます。
組み込み系のシステム開発
組み込み系のシステム開発とは家電製品や情報機器などに「独立した機械の中に組み込まれたコンピュータを制御するためのシステム」開発することです。
PCとは違い、複雑なプログラムを搭載できるほどのメモリ領域を持ち合わせていないことが多いため、処理速度が早く、容量も比較的軽めのC言語やC++が使用されます。
【主要10種類】のプログラミング言語分類表とひとことまとめ
先述してきたものを一旦ここで整理します。
言語名 | 記述方式 | 変換方式 | 得意ジャンル |
---|---|---|---|
C言語 | 手続き型 | コンパイラ型 | 組み込み系 |
Go言語 | 手続き型 | コンパイラ型 | Web開発 |
Swift | オブジェクト指向型 | コンパイラ型 | モバイルアプリ |
Kotlin | オブジェクト指向型 | コンパイラ型 | モバイルアプリ |
C++ | オブジェクト指向型 | コンパイラ型 | 業務システム/組み込み系 |
C# | オブジェクト指向型 | コンパイラ型 | 業務システム |
Java | オブジェクト指向型 | コンパイラ型 | 業務システム/モバイル |
PHP | オブジェクト指向型 | インタプリタ型 | Web開発 |
Ruby | オブジェクト指向型 | インタプリタ型 | Web開発 |
JavaScript | オブジェクト指向型 | インタプリタ型 | Web開発 |
Python | オブジェクト指向型 | インタプリタ型 | Web開発/AI開発 |
PHP:Webデザイン系の仕事がしたいならPHP!
PHPはカナダで開発されたプログラミング言語で、WebサイトやWebアプリケーションの開発をする上で利用されることが多いプログラミング言語です。
Webデザイナーを目指している人であれば、HTML・CSSの基礎知識を一通り学んだ後に、PHPの学習に入るといいでしょう。
JavaScript:かっこいいWebサイトを作りたいならJavaScript!
Webサイトを作成する上でPHPと一緒に学びたいJavaScriptは後述するJavaと名前が似ているものの性質は全く別物です。
Webサイトに動きを付けたり、かっこいいデザインにしたいときはJavaScriptを学習しましょう。
あとはゲーム制作やアプリケーションの開発でもサブ言語として使うことができるためおすすめです。
Python:AI開発やデータサイエンティストになりたいならPython!
Pythonは1991年にオランダで開発された言語で、シンプルなコードで読みやすいためプログラミング初心者におすすめの言語です。
また数学や統計学を始めとしたライブラリが豊富なのでAI開発やデータサイエンスを学ぶ上でも重宝されています。
Java:不動の人気1位プログラミング言語といえばJava
Javaは1990年代前半にアメリカで開発されてから、不動の人気を誇るプログラミング言語で求人数もトップクラスです。
また、JavaはWebアプリ開発から、組み込み系のシステム開発、ゲーム開発など汎用性の高い言語でもあるため、プログラミングで食べていきたいなら学んでおきたいプログラミング言語です。
C言語:組み込み系のシステムを作りたいならC言語
プログラミング言語の祖ともいえる歴史のあるのがC言語です。
C言語は1972年にアメリカで開発されたプログラミング言語で、組み込み系のシステムの開発などに利用されています。
組み込み系のシステムの開発にはPCで使うようなシステムと違いメモリ領域がより限られているため、実行ファイルのサイズが小さく、処理速度が高速なC言語が重宝されます。
C++:高度なゲーム開発を行いたいならC++
C言語から派生したC++は1983年に開発されました。
C言語の機能を拡張子、「オブジェクト指向」の概念を取り入れる形で作られたため、C言語よりも開発効率の優れたプログラムを作成することができます。
そのためより高速な処理速度が必要とされる、ゲーム開発などをするのに重宝されています。
C#:windows系のシステム、アプリケーションを作ってみたいならC#
C#はMicrosoftによって開発されたプログラミング言語です。C++にJavaの概念を取り入れて作られています。ただ、C言語とC++とは違い、C#には互換性はなく全く別のプログラミング言語といえます。
Microsoftが作っただけに、Microsoftが提供するツールや開発がサポートされており、Windows向けのアプリケーションやマイクロソフト製品を利用したサービスの開発に向いています。
Swift:iPhoneのアプリケーションを作りたいならSwift
SwiftはApple社が開発したプログラミング言語です。
Apple社が作っただけに、IOSやMac向けのアプリケショーンの開発をするのに向いています。
同じくApp;e社が開発した言語で Objective-C と呼ばれる言語がありますが、この言語を更に読みやすく、簡単にし、Webフレームワークが充実したものがSwiftです。
Ruby:日本人が開発した初心者におすすめのRuby
日本製のプログラミング言語なので、日本人に人気のプログラミング言語です。文法がわかりやすくシンプルなコードがかけるためプログラミング初心者にもやさしい言語です。
Ruby on Railsと呼ばれるプログラム開発の手間を減らすために便利な機能をまとめたフレームワークが用意されているのもプログラミング初心者が学習しやすいメリットと言えるでしょう。
Go言語:Googleが開発したこれからが期待のGo言語
Go言語は「Go」や「Going」とも呼ばれている言語で2009年に開発されたまだまだ新しい言語です。文法がシンプルでプログラミング初心者でも学習しやすく、C言語やJavaとも構文が似ているため、ステップアップの1段目として学習するのも良いでしょう。
ただ、他の言語と比べてまだまだ新しいので、情報量が少なく学習している際に壁にぶつかると、その解決するための情報が出回っていない可能性があるのがデメリットです。
Kotlin:Androidのアプリケーションを作りたいならKotlin
Kotlinは2011年似リリースされたプログラミング言語でJavaを開発したJetBrainsによって開発されたが、構文自体はJavaと互換性のない全く別の言語です。
KotlinはGoogleがAndroidアプリケーション開発の公式言語として採用したことにより注目をあびました。
Scala:Javaと合わせて学習したいプログラミング言語Scala
Scalaは2001年似スイスで開発されたプログラミング言語で、Javaととても関係の深い言語でJavaのライブラリをほぼ全て使用することができます。
不動の人気を誇るJavaの後続言語として注目されており、「オブジェクト指向」「関数型言語」2つの特性をもつハイブリットな言語です。
オブジェクト指向型の言語は処理速度が早い反面習得難易度が高い傾向にありますが、関数型言語としての特性を持つScalaは比較的シンプルな記述でのプログラム作成が可能です。
そのため初心者にもおすすめのプログラミング言語と言えます。
まとめ
今回はプログラミング言語をそれぞれ記述方法や変換方法、得意ジャンルで分類していきました。
これからプログラミングの学習を始めるにあたって、どの言語から学習するかのプログラミング言語選びの参考になるのではないでしょうか。
プログラミング言語によってできること、得意なことが変わってくるのを、その言語の特徴を知ることで記憶に定着させ、学習する言語を選んでください!
記述方法は手続き型とオブジェクト指向型の2種類!変換方法はインタプリタ型とコンパイラ型の2種類!プログラミング言語によって得意不得意がある!
- プログラミングの記述方法は「手続き型」「オブジェクト指向型」の2種類
- プログラミングの返還方式は「インタプリタ型」と「コンパイラ型」の2種類