概要
すでにPythonについてある程度勉強済みの方にとって次にどのプログラミング言語を学んだらよいのか解説します
より具体的には
Pythonと組み合わせることで相乗効果を発揮できる言語
Pythonが苦手な分野を可能とする言語
Pythonの代替となる言語
の順番で解説してゆきます
Pythonと組み合わせることで相乗効果を発揮できる言語
まずはPythonと組み合わせることで相乗効果を発揮できるかに着目して言語を紹介してゆきます
SQL
SQLとは、リレーショナルデータベースのデータ操作や定義を行う言語です
では、SQLはPythonとどのように関係するのでしょうか
前提としてPythonではWebサービスの作成やデータ分析、機械学習などが可能です
まずPythonでWebサービスを作成することを考えたときにSQLがどのように関係するかみてゆきましょう
PythonではFlaskやDjangoといったWebフレームワークを使用することでWebサービスを作成することができます
そして、通常、Webサービスではデータを扱う必要があります
ECサイトを例に考えると、ユーザーの個人情報、購買履歴や商品情報といったデータです
これらのデータは基本的にデータベースに格納されています
そして、データベースの中でもよく使われているのがリレーショナルデータベースです
このリレーショナルデータベースからデータを取り出したりデータを保存する際にSQLが使用されます
次にデータ分析、機械学習とSQLがどのように関係するかみてゆきましょう
先程ECサイトの例で紹介した通り、データベースにはユーザーの購買履歴が蓄積されてゆきます
この蓄積された購買履歴データを使ってユーザーにどのような商品がオススメであるかを分析し、
紹介することで売り上げの増加を図ることができます
この分析をSQLによって行うことができます
HTML、CSS、JavaScript
二つ目はHTML、CSS、JavaScriptです
Webサービスはフロントエンドとバックエンドに分けることができます
フロントエンドはユーザーが直接操作する画面のことを指し、
バックエンドとはフロントエンドから受け取った指示を処理する部分を指します
ECサイトにおける商品購入でいえば、商品購入画面がフロントエンド
商品の購入ボタンをクリックした後に、クレジットカードへの請求等の購入処理を行うのがバックエンドに相当します
さきほどPythonでWebサービスを作成することができると解説しましたが
Pythonでは主にバックエンド部分を作成します
そして、フロントエンドの作成に必要なのがHTML、CSS、JavaScriptです
HTMLはページ自体、CSSはページのデザインを決定します。JavaScriptは動的なページを作ることができます
Pythonが苦手な分野を可能とする言語
これまではPythonと組み合わせることで相乗効果を発揮できるかに主眼を置いておりましたが
この先はPythonが苦手な分野を可能とする言語について解説してゆきます
Java、Kotlin、Swift
一つ目はJava、Kotlin、Swiftです
これらはスマホアプリの作成が可能です
Java、KotlinはAndroidアプリをSwiftではiosアプリを作成することができます
確かにPythonでもKivyというフレームワークを使用すればスマホアプリを作成することは可能です
しかし、Pythonは先ほど紹介した言語と比べて処理速度が遅いためスマホアプリの開発にはそこまで向いていません
実際、求人情報を見てもスマホアプリをPythonで作成していることは稀でしょう
そのため、本格的なスマホアプリを作成したいと考える場合はJava、Kotlin、Swiftを学ぶのがよいでしょう
C++、C#
二つ目はC++、C#です
C++、C#ではゲームの作成が可能です
ゲームを作成するためのツールとして有名なものにUnityとUnreal Engineがあり、
UnityではC#を、Unreal EngineではC++を使用してゲームを作成します
確かにPythonでもPygameというツールを使用することでゲームを作成することができます
しかし、スマホアプリの際にも解説した通り、Pythonは処理速度が速くないため
リアルタイム性を求められるゲーム開発にはあまり向いていません
実際の求人情報を見てもゲーム開発はUnityかUnreal Engineで行われていることが殆どでPygameを使っている例は稀でしょう
そのため、本格的なゲーム開発を行いたいと考える場合はC++、C#を学ぶのがよいでしょう
Pythonが苦手な分野を可能とする言語
これまではPythonが苦手な分野を可能とする言語について解説しましたが
今度はある分野においてPythonの代替となる言語について解説します
ここで紹介する言語はPythonでも十分に可能ですが、これらを学ぶことによってさらに実力をつけることができます
また、すでにPythonで既に学習している分野を別言語で行うため、学習にもそれほど時間を要しないと思われます
Ruby、PHP
一つ目はRuby、PHPです
これらの言語ではWebサービスのバックエンドを作成することができます
RubyであればRuby on Rails、PHPではLaravelといったフレームワークを使用します
これらのフレームワークはPythonでいうところのDjangoに使い勝手が似ているので
すでにPythonでDjangoを使ったWebサービスの作成経験があれば比較的容易に習得できるでしょう
R、Julia
二つ目はR、Juliaです
これらの言語ではデータ分析が可能です
Pythonでもデータ分析は可能ですが、場所によってはRが使われていることもあります
ビジネスの場ではPythonが、アカデミックの場ではRが使われる傾向にあるようです
また、JuliaはPythonやRよりも高速に動作するようです。
ただし欠点としては認知度が低く日本語の資料が少ないため、中級車~上級者向けの言語かもしれません
データ分析の分野でさらに力を伸ばしたいのであればこれらの言語を学習してみることをお勧めします