2019年にお勧めのプログラミング言語

この記事は、AnyPicksマガジンからの再掲載です。原文は[こちら]
(https://entry.anypicks.jp/how-to-choose-which-programming-language-you-should-learn/)です。

![](https://entry.anypicks.jp/wp-content/uploads/2019/05/1-1.jpg)

インターネットの普及により、誰もが世界レベルのリソースにアクセスし、ほとんど無料でコーディングを学ぶことができるようになりました。

それはソフトウェア開発者を目指す方には素晴らしいことです。ただ、コーディングを学んだことのない方にとっては、悩ましい問題もあります。ブラウザをクリックすると、お勧めの記事、チュートリアル、YouTubeのビデオ等が次々に表示され、何から手を付けてよいのかわかりません。

私自身、[Microverse社]
(https://www.microverse.org/)の業務で、この問題に直面しました。Microverseは、学生が就職するまで、学費が無料のオンラインスクールです。フルタイムの学生の多くは、膨大なリソースに圧倒され、この学校に入学します。多くの学生は、何から手を付けるのかわからず、複数のプログラミング言語に手を出しますが、結局何も完全に習得できずに終わります。

![](https://entry.anypicks.jp/wp-content/uploads/2019/05/1-2.jpg)

これを回避するためには、1つの言語を徹底的にマスターすることです。50カ国以上の出身の開発者と業務を行った私の経験からも、10の言語を中途半端に習得するよりは、1つの言語を徹底的に習得した方が、ソフトウェア開発としてより多くの仕事のオファーがきます。

どの言語を集中的に勉強すべきかわからない方もいらっしゃるでしょう。その方々のためにこの記事を執筆いたしました。

#どの言語からスタートすればよいかわからない場合、汎用言語を学んでください。

まだ開発者として新人で、何を学び始めたらよいかわからない場合は、汎用プログラミング言語から始めてください。汎用プログラミング言語は、幅広い分野で利用されているため、特定の分野に限定されません。

## Python
![](https://entry.anypicks.jp/wp-content/uploads/2019/05/python.jpg)



Pythonの単純で簡潔な構文は、習得するのにお勧めの汎用プログラミング言語です。このプログラミング言語は、ダイナミックタイプシステム、自動メモリー管理を特徴とし、オブジェクト指向・関数型・命令型などのプログラミング・パラダイムをサポートします。 アプリケーションドメインの多くは、Pythonの標準ライブラリを使用しています。

Webとデスクトップアプリケーション、サーバー、機械学習、AIアプリケーションは、すべてPythonを使用しています。毎年トップクラスのプログラミング言語にランクされ、昨年[TIOBE Programming Community Index]
(https://www.tiobe.com/tiobe-index/)でランキング1位に与えられる「今年のプログラミング言語」賞をPythonが受賞しました。 2019年には、さらにランキングが上昇するでしょう。

[Indeed.com上でのPython開発者]
(https://www.indeed.com/q-python-jobs.html)に対する求人数：66,000人以上

## JavaScript
![](https://entry.anypicks.jp/wp-content/uploads/2019/05/js.jpg)

Stack Overflowの毎年の開発者調査によると、全開発者の70％以上がJavaScriptを使用しています。JavaScriptは、ほぼすべてのソフトウェア分野に適用することができ、汎用性が高いです。また、World Wide Webの主要フロントエンド言語の一つ です。 JavaScriptはインタラクティブWebページを可能にし、数多くのWebアプリケーションにこの言語が使用されています。

JavaScriptはマルチパラダイム言語であり、オブジェクト指向から関数型まで、あらゆるプログラミングをサポートしています。 また、バックエンドサーバーといった急速に拡大しているライブラリもあります。 ゲーム開発やバーチャルリアリティなど、様々な領域で利用されているプログラミング言語です。

[Indeed.com上でのJavaScript開発者]
(https://www.indeed.com/q-javascript-jobs.html)に対する求人数：40,000人以上

## Ruby
![](https://entry.anypicks.jp/wp-content/uploads/2019/05/ruby.jpg)

他の言語と同様、Rubyはオブジェクト指向、関数型、命令型等の複数のプログラミング・パラダイムをサポートしています。また、動的タイプシステムと自動メモリ管理が特徴です。 Rubyは、Ruby on Railsフレームワークを持つWebアプリケーションで主に使用されます。また、バックエンドサーバーやデータベースでも使用できます。

初心者に分かりやすいのもRubyの特徴です。プログラミング言語の中で最も学びやすい言語の一つです。コンパイルから実行まで簡単に行うことができます。プログラムの構文が、日常会話に近いのでわかりやすいです。また、他の言語よりも少ないコード数でプログラムを書くことができます。

[Indeed.com上でのRuby開発者]
(https://www.indeed.com/jobs?q=ruby+engineer&ts=1555624884836&rs=1)に対する求人数：9,000人以上

## Java
![](https://entry.anypicks.jp/wp-content/uploads/2019/05/java.jpg)

Javaの有名なスローガンは、「一度書けば、どこでも実行可能」で、どのプラットフォームからも実行できます。 Javaは、開発者の間で最も広く使われている言語の1つであり、Stack Overflowの調査では、2番目によく使用される言語です。

Javaは、クラスベース、オブジェクト指向で、どのプラットフォームでも動作するように設計されたプログラム言語です。 その特徴から、アプリケーションが幅広い領域で利用されています。Android用のアプリケーションの開発に、最も使われています。Android以外でも、デスクトップ、Web、サーバーおよびネットワークアプリケーションにも広く使用されています。 Javaの構文は、最初は少し戸惑うかもしれません。ただ、Javaを完璧に習得すれば、多くの開発案件のオファーがくることは間違いありません。

[Indeed.com上でのJava開発者に]
(https://www.indeed.com/q-java-jobs.html)対する求人数：68,000人以上

#特定の分野で勝負したいですか？

機械学習、モバイル開発者、またはベンチャー企業に参加するという具体的な目標がすでにある場合は、その目標を達成するためのプログラミング言語の習得をお勧めします。

##機械学習
![](https://entry.anypicks.jp/wp-content/uploads/2019/05/machinelearning.jpg)

[GitHubのレポート]
(https://github.blog/2019-01-24-the-state-of-the-octoverse-machine-learning/)では、2018年ではPythonが機械学習に最も使用されたプログラミング言語でした 。Pythonの知識に 加えて、TensorFlowライブラリーを習得すると、機械学習に関連するエキサイティングな仕事のオファーが間違いなく届きます。

機械学習で、2番目にお勧めのプログラム言語は、R言語です。 統計解析目的で、データ分析・操作するのに最も効果的です。 また、機械学習アルゴリズムの実装を容易にする多数のパッケージも提供しています。

##モバイル開発
![](https://entry.anypicks.jp/wp-content/uploads/2019/05/iphone.jpg)

モバイルアプリの開発に興味がある場合は、対象のデバイスがAndroidかAppleかを決める必要があります。

Javaは、Android上の開発するためのベストなプログラム言語です。ただし、モバイルJavaの開発は、一般的なJavaとは異なります。スマートフォンの能力が限られているためです。 通常のJavaプログラムは、シャットダウンされるまで実行されます。ただ、Androidアプリケーションが、フォアグラウンドで実行されていない場合は、いつでもシャットダウンできます。

iOSについては、AppleのiOS用の公用言語であるSwift、macOS、およびその他のApple製品用のコード がお勧めです。グラフィカルユーザーインターフェイスや豊富なフレームワークを作成できるので、 Objective-Cを勧める方もいます。ただし、習得・解読が簡単で、Appleも推奨するSwiftが、私のお勧めです。

他の選択肢にJavaScriptがあります。HTMLとCSSを組み合わせると、Cordovaを使用してネイティブアプリケーションに変換できるアプリを開発できます。 もう1つは、.NETスタックです。アプリケーションを構築し、 Xamarin を使用してそれらを変換できます。これらの言語は、汎用言語を深く学ぶことの重要性を教えてくれます。

##ベンチャー企業
![](https://entry.anypicks.jp/wp-content/uploads/2019/05/startup.jpg)

あなたがベンチャー企業を起業したい、又はベンチャー企業に参画したい場合は、やはりRubyとRuby on Railsでしょう。Rubyは初心者にも親しみやすく、開発者が迅速にプロトタイプを作成することができます。そのため、ベンチャー企業にとっては最適の選択です。

Microverse では、学生の皆様が仕事を得るまで、学費がかかりません。そのため、生徒たちが仕事を得るためのカリキュラムが設計されています。私たちのカリキュラムは、 JavaScript 、React、Ruby、そしてRuby on Railsに 特化しており、学生の皆様がベンチャー企業からオファーがもらえるようなカリキュラムになっています。

#どの言語を避けた方がよいですか？

これ以外にもたくさんのプログラミング言語があります。有名なプログラミング言語では、Go、Scala、TypeScript、C ++、Rustがあります。

ただ、ソフトウェア開発を習得する際、それらの言語はあまりお勧めできません。多くの言語は非常に複雑で、難解です。また、特定のアプリケーション領域に特化し過ぎています。

記事の内容をまとめてみます。

1. 複数のプログラミング言語を中途半端に習得するのではなく、1つのプログラミング言語を徹底的に習得してください。
2. どの言語を学ぶべきかわからない場合は、汎用性の高いプログラミング言語を選択してください。

どのプログラミング言語でも、仕事のオファーが必ずありますので、過度に悩み過ぎないでください。一番重要なのは、選択したプログラミング言語を徹底的に習得する動機、意志、そして技術力です。

この記事が少しでも参考になれば幸いです。 

##関連記事
[2019年イチ押しのJavaScriptフレームワークオーバービュー](https://www.anypicks.jp/news_resources/1650)

[HTMLとCSSのパフォーマンス改善について](https://www.anypicks.jp/news_resources/1499)

[Web開発者の面接で尋ねるべき10の質問](https://www.anypicks.jp/news_resources/1720)

この記事は、AnyPicksマガジンからの再掲載です。原文は[こちら]
(https://entry.anypicks.jp/how-to-choose-which-programming-language-you-should-learn/)です。