現役プログラマのプログラミング教室@岡崎市康生, Android/iOS(Swift/Kotlin)のアプリ開発、デジタル漫画制作を主軸事業としています。

1.2)文系のためのプログラミング – 言語っていっぱいあるけどどれを勉強すればいいの?

by MY マナビスタイル

プログラミング言語の選び方

昔は多くはなかったですが、今は多くのプログラミング言語が存在します。どれを勉強したらよいのか、なんでそんなにいっぱいあるのか気になりませんか?

語弊を恐れずに言えば、初心者であればどの言語を勉強しても問題ありません。興味のわく言語を選択しましょう。興味をもって続けることが大切だからです。

そして生涯で1言語ということはあり得ないからです。

プログラミング言語の種類

思いつくものを適当に列挙するだけでかなりの数があります。

C,C++,C#,F#,Go,Java,JavaScript(TypeScript),Perl,Lisp,PHP,Python,Ruby,Smalltalk,Objective-C,Swift,Kotlin

グループ分け

どれを学んでもよいとは言いましたが、今後関わる製品、サービスによって使い分けることはあります。知識としてメジャーなものだけ覚えておきましょう。

スマートフォンアプリ
Androidであれば
Java, Kotlin

iOSであれば
Objective-C, Swift

両方に対応したアプリを作れるクロスプラットフォームでは
C#,Dart

Webサイト
Webサイトといっても様々になります。

今はなかなかないですが、ただのWEBページであれば
HTML

instagram, Youtube, メルカリなどのがっつりサービスであれば表示する側フロントエンド、データを扱う側のバックエンドとわけられます。

フロントエンドはWEBページの表示につながるので
HTML・CSS・JavaScript・PHP
システムの根幹となるバックエンドは
JavaScript(TypeScript),PHP,Ruby,Go,Python,Java,C#

ハードウェア/ IoT
最近はCPUにOSが乗っており、言語も多様化していると思いますが
安いCHIPなどを使うとなるとおそらくは
C,C++
あたりではないでしょうか

システムを考えるときのポイント

プログラミング言語選択に限らずシステムの仕様や、予算によっても利用するツールは変わってきます。主なポイントは以下のようになります

開発対象

例えばスマホアプリを開発するのであればSwiftやKotlinと絞られてきますし、同時に一般的なつくりのアプリであればクロスプラットフォームの利用を考えます。

処理能力

処理能力といっても色々な観点があります

  • CPUの処理能力
  • メモリの処理能力
  • データベースの処理能力

ハードウェア製品やサービスをつくるには実現するためのプラットフォームを考えないといけません。ある程度のイメージをもって開発担当者と折衝し、完全お任せにしないことが大切です。

インターネットを使った大規模なサービスでユーザー数が多いものであれば言語ではないですが、AWS,GCP,Azureといったクラウドの利用を思いつきます。これらのサービスの概要は覚えておいて損はないでしょう。

また、最初はミニマムで構築して、サービスを拡大していくことも考えます。

開発期間

どんなに良いサービスでも予算の限界がきたり、リリースのタイミングを逃しては元も子もありません。よく使われるメジャーな言語であれば、ライブラリが豊富で開発期間を短縮することができるかもしれません。

開発リソース

意外と考慮されない印象がありますが、必ずしも今の開発担当者がサービスのメンテナンスをするとは限りません。また開発のサポートする人を探す可能性もあります。

その時にマイナーな言語や、開発者の人口が少ない言語にしてしまうと、支払い単価があがったり、そもそも人材を見つけられないこともありえます。

まとめ

これからの時代、言語開発者でなければ1つの言語を覚えたらOKとはなりません。新しい言語が出てくるでしょうし、AIと一緒にコーディングすることは考えられます。

先ずは得意なプログラミング言語をマスターし、必要に応じて使える言語を増やしていくのがよいと思います。

どの言語を選ぶかより、どんなサービスにするか、どんなユーザーの需要があるか調査することに時間をかけるほうが遥かに重要だと考えます。