2018/07/17更新

文系就活生向け・初心者がプログラミング言語を始めるなら何?

プログラム言語は山のように種類があります。レガシー(伝統的な、という意味)なところだとCOBOLやC言語、モダンなものだとSwiftやGo言語、有名どころではJavaやRuby、C#などです。なぜこんなにあるの?と疑問に思われるでしょうし、とりあえず独学するならどれがよいのか迷うところです。今回は、独学したいけれど言語は何から始めるとよいのかについて解説いたします。

プログラム言語の種類

まずは良く知られたプログラム言語についてざっくりご紹介します。

COBOL

事務処理専用の言語です。コンピュータの黎明期からある老舗言語で、今でも大型コンピュータ用に書かれた過去の資産が大量に動いています。消え行く言語で、これから新規に作成されることはないでしょう。

BASIC

プログラム言語が難しすぎる時代に、初心者用に作られた言語です。爆発的に普及して、WindowsになってからはVisualBasicという画面アプリを簡単に作れる言語に進化しました。しかし今ではすっかり下火になっています。

C言語、C++

アセンブリ(機械語)レベルの処理を記述できる言語です。今でもドライバや速度が求められるプログラムに使われています。

Java

マルチプラットフォーム(どのOSでも動く)の先駆けとなった言語です。現在もっともメジャーな言語のひとつでしょう。Webシステム構築の他、Androidアプリや組み込み系にも使われています。

C#

Microsoft系開発言語の主力です。言語としては良くできているのですが、Windowsでしか動かないのが欠点です。最近は他のOSでも動くようにする方向でMicrosoftが頑張っています。

Ruby

Webシステム構築に使われる言語です。Ruby on Railsというフレームワークと一緒に使われます。実は製作者は日本人です。

Python

「パイソン」と読みます。Webシステムも作れますが、AI関連の機能が充実しているので、そちらが有名です。

PHP

Webシステム構築専用の言語です。他のこともできますがWebシステム構築以外で見たことがありません。

Perl

RubyやPythonが日本でメジャーになる前は、同系統のスクリプト言語として一番有名な言語でした。最近はRubyやPythonに押されて低迷気味です。

JavaScript

名前にJavaとありますが、まったくの別物です。Webページに動きをつけることができる唯一の言語なのでとても人気があります。

Go言語

2009年にGoogleが開発した言語です。色々勉強しなくてもお手軽にプログラムが書けるというのがコンセプトです。

Swift

2014年にAppleが開発した言語です。Apple製品上で動くアプリを作ることができます。iPhoneアプリを書くならこれ、という位置付けです。

初心者にはRubyが良いって聞くけど?

Rubyは動的型付のスクリプト言語です。オブジェクト指向言語でもあります。よく、「Rubyは文法が簡素で習得しやすいから良い言語だ」といった論調を目にしますが、半分正解で半分間違っています。動的型付のスクリプト言語はPythonやPHP、Perlも同じです。オブジェクト指向である点も同様です。習得のしやすさはPythonやPHPも同じくらいです。

Rubyが流行っているのは、ひとえにRuby on Railsというフレームワークのおかげです。このフレームワークはMVCモデルを簡単に実装することができるので、Webシステムの構築が随分楽になります。とはいえ、実はMVC系のフレームワークはPythonやPHPにもあるので、これがRubyのアドバンテージかと言われると、どうかなと思います。筆者の考えではRubyのアドバンテージは、「RubyはWebシステム開発に向いている」というイメージが出来上がっている点だと思います。流行りの言語ということは、それを使う企業がたくさんあるということです。そうなると言語自体が活性化して廃れにくくなります。開発言語を選ぶ時は、必ず将来性を考慮します。そうした意味ではRubyはある程度安心できます。

最近よく聞くGo言語って何?

Go言語はGoogleが社内の新人でも開発ができるよう、言語仕様をかなり簡素化して開発した言語です。コンパイル言語なので実行速度も速く、Windows、Mac、Linux、AndroidやiPhoneで動きます。言語仕様はとても現実的であり、不要な機能を削ぎ落としていて好感がもてます。Go言語の最大の魅力は、コンパイル言語なのにマルチプラットフォーム対応だということです。要は、Android用に作ったプログラムが、iPhoneでも使えるということです(手直しは必要でしょうが)。これは大きな魅力です。今後、伸びてくる可能性がある言語です。

スタートアップ企業と大手企業ではトレンドの言語が違う?

スタートアップ企業はとにかくスピード優先です。立ち上げるまでに1年もかかっていては商売にならないからです。また、状況に応じて仕様変更も頻繁に発生するので、改修にもスピードが求められます。一方大手企業の基幹系システムの場合は、安定性と長期間の動作保証がもっとも重要視されます。スタートアップ企業のWebシステムに比べ、格段に大規模かつ複雑なため、それに耐えられる言語であることも重要です。こうした理由で、スタートアップ企業では「開発が軽い」RubyやPHPを好む傾向にあります。大手企業の場合は、「実績と安定性」でJavaやC#を好みます。

▼ 関連記事

トレンドな言語は学生のうちに抑えるべき?

結論から言うと、流行っている言語は一通り触ってみましょう。最近は開発環境はすべて無料で入手できるので、敷居は低いです。Ruby、Python、PHP、Java、C#、Go言語、どれも無料です。“Hello world!”を表示させるぐらいの簡単なプログラムならすぐに書けますので、トレンドな言語の雰囲気を味わってみたほうがよいでしょう。

独学するならどの言語がおすすめ?

筆者は、Javaをおすすめします。理由はいくつかあります。

オブジェクト指向の勉強に向いている
理解していなくてもプログラムを書けますが、それではレベルが低いままで成長しません。Rubyなどもオブジェクト指向言語ですが、Javaは厳格なオブジェクト指向言語です。Javaを題材にしたオブジェクト指向のサイトや書籍も良質なものが多く存在するので、基礎を堅めるにはおすすめです。

静的型付言語
Javaは静的型付言語です。Rubyなどの動的型付言語は便利ですが、筆者としては、それは静的型付言語を習得してから味わうべき便利さだと考えています。いきなり動的型付に慣れると、型に関する理解が不十分になり、将来伸び悩む恐れがあります。

将来性がある
Javaで書かれたシステムは既に大量に存在します。特に大規模なシステムはJavaで作成されていることが多く、将来的にJavaが無くなってしまう可能性は低いです。

どこの会社も新人教育は大抵Java
新人教育をRubyでやるところは聞いたことがありません。ほとんどJavaです。Javaを独学しておけば、入社してしばらくの間、楽ができます。

C言語系なので他のC言語系を覚えるのが楽
Javaをしっかり勉強しておけば、RubyやPython、PHP、C#といった他のC言語系を勉強するのが随分と楽になります。

プログラム言語は、ひとつを極めてしまえば、あとはどの言語でも簡単に習得できます。まずはJavaを極めるように努力しましょう。なお、各プログラム言語には向き不向きがあります。プログラム言語はシステムを構築するための道具のひとつなので、将来的にはどのプログラム言語でも対応できるようになり、状況に応じて使い分けられるようになりましょう。

▼ 関連記事

まとめ

今回は、独学したいけれど言語は何から始めるとよいのかについて解説しました。Rubyなど流行の言語を学ぶのも楽しいですが、まずは基礎固めとしてJavaを勉強することをおすすめします。Javaは文法だけでなく、背景となるオブジェクト指向までしっかりと身に付けましょう。そうすれば、他の言語を学ぶのは随分と楽になるはずです。

image byFreepikによるデザイン