こんにちは。倉内です。
新年の抱負として、「今年はプログラミングを始める!」と掲げた方もいらっしゃるのではないでしょうか。
昨今はpaizaラーニングをはじめ、無料~安価でプログラミングが学べるサービスは多数あり、初心者の方も手を出しやすい環境にあります。
ただ、業務で使用するなど目的が明確であれば、どのプログラミング言語を学ぶか迷うことはありませんが、趣味やこれからエンジニアを目指す方にとっては最初にどの言語を学ぶか決めるのは難しいかもしれません。
そこで今回は、GitHubが公開した「昨年もっとも使用されたプログラミング言語」のレポートなどを参考に、おすすめの言語とその学習法をご紹介したいと思います。
2022年もっともGitHubで使用されたプログラミング言語
GitHubが昨年公開したレポートによりますと、2022年*1は500以上の言語がソフトウェア開発に利用されたと書かれています。
そのうちGitHubでもっとも使用されたプログラミング言語トップ10は以下のとおりです。
順位 | 言語名 |
---|---|
1位 | JavaScript |
2位 | Python |
3位 | Java |
4位 | TypeScript |
5位 | C# |
6位 | C++ |
7位 | PHP |
8位 | Shell(シェルスクリプト) |
9位 | C言語 |
10位 | Ruby |
(出典)The top programming languages
JavaScriptは、2014年から2022年まで1位を維持している言語で、人気が高いのはもちろん、多くのWebサイトやWebアプリケーションの開発に利用されています。
2位のPythonと3位のJavaは、2019年に順位を逆転しました。Pythonの人気は言わずもがなですが、Javaもまだまだトップ言語です。GitHubのレポートにも「30年たってもJavaに陰りが見られるなどということはなく、いまだに王者である」といったことが書かれています。
TypeScriptは、2012年にMicrosoftによって開発された比較的新しい言語で、2017年以降急激に伸び、現在も人気の高い言語です。
次に、少し聞き慣れないプログラミング言語もあるかもしれませんが、急成長した言語も軽く見ておきましょう。2021~2022年にかけての成長率を%で示しています。
順位 | 言語名 | 成長率 |
---|---|---|
1位 | HCL | 56.1% |
2位 | Rust | 50.5% |
3位 | TypeScript | 37.8% |
4位 | Lua | 34.2% |
5位 | Go | 28.3% |
6位 | Shell(シェルスクリプト) | 27.7% |
7位 | Makefile | 23.7% |
8位 | C言語 | 23.5% |
9位 | Kotlin | 22.9% |
10位 | Python | 22.5% |
(出典)The top programming languages
1位のHCLは、Hashicorp Configuration Languageのことで、ネットワークなどの設定を記述するための言語です。
2位のRustは、基礎文法はC言語やC++に似ていると言われており、注目度の高い言語のひとつです。以下の記事で詳しく解説していますので興味がある方はごらんください。
GoやKotlinも近年人気が高く、最近は開発案件や求人数も増えてきました。JavaやPHPなどと比べると日本語の情報がまだまだ少ない印象はありますが、「モダンな言語を学びたい!」という方にはおすすめです。
アニメーションで見るプログラミング言語の人気の変遷
プログラミング言語の人気の変遷をアニメーションで紹介している動画が公開されています。
しかも1965年から2022年、およそ50年以上にも渡る期間の変遷ということで非常に興味深い内容となっています。
序盤は大学などで情報系を専攻した方がコンピュータの歴史として習うような言語が登場しています。耳にしたことがない方も多いのではないでしょうか。
たとえば、FORTRAN(フォートラン)は、コンピュータにおいて広く使われた世界最初の高水準言語です。
もちろん、50年たつ現在でも利用されている言語もあります。COBOLをこれから学ぶ方は少ないかもしれませんが、実は古くから存在する業務システム(金融系など)では、いまだに現役で使われていたりもします。
動画では1974年に現れるC言語がすさまじい勢いで伸びていき、1985年にはついに1位に躍り出ます。そして2001年には1位の座をJavaに明け渡すのですが、そのJavaも2018年にJavaScriptに抜かれ、さらにすぐさまPythonがJavaScriptを追い抜きます。
アニメーションとしてはシンプルで、ただプログラミング言語名が人気とともに順位を入れ替えているだけですが、その言語がどういったところで採用されているかまで知っていると、なかなかドラマを感じられるかと思います。
目的別おすすめプログラミング言語
ここまで読んでいただいた方は、「プログラミング言語の数が多すぎて、余計にどれを選べばいいか分からなくなった……」と混乱してしまったかもしれません。
そこでここからは目的・用途に適した言語をお伝えします。
ただし、挙げた言語は適している言語の一部です。実際の開発業務では、さまざまな要因で採用する言語を決定しているため参考程度にごらんください。
初心者が学びやすいのは?
とにかく「挫折せずプログラミング学習を進めたい!」という方におすすめなのはPythonです。次点でPHPやRubyあたりもおすすめです。
理由としてはやはり基本的な文法がシンプルで理解しやすいに尽きます。「よく分からないけどおまじないとして記述しないといけない」といったものが少なく、直感的に読みやすいですし、記法のルールがそれほど厳しくないのも学びやすい点です。
C言語やJavaから始めてみて挫折した経験があるという方も、これらの言語でもう一度トライしてみてはいかがでしょうか。
求人数が多いのは?
ITエンジニア職の求人数が多いのはJavaScript、Java、PHPです。
もちろん開発するシステムによって採用される言語に違いがあるので、これは「実務未経験から転職でITエンジニアになりたい場合」と考えていただくとよいかと思います。
Javaは習得が比較的難しいと言われている言語ですが、案件数が非常に多いので身につけておいて損はありません。
ちなみに、paizaが運営する若手・未経験者向けのエンジニア転職サービス「EN:TRY」では、開発経験がない人・少ない人でも応募できる若手チャレンジ求人を多数掲載しています。開発言語を指定して求人検索もできますので、エンジニアを目指す方は覗いてみてください。
Webサイト・Webサービスを作りたいなら?
Webサイトは、フロントエンド(ユーザーに見える側、ブラウザ側)とバックエンド(ユーザーに見えない側、サーバー上での処理など)に大きく分けられます。
フロントエンドの開発では、HTMLとCSS、そしてJavaScriptを学ぶ必要があります。バックエンドの開発では、一例にはなりますがPHP、Ruby、Javaが使われることが多く、最近ではGoも注目されています。
さきほどもっとも使用された言語、急成長言語ともに上位だったTypeScriptは、フロントエンドとバックエンドと両方で用いられる言語としても人気が高いです。
業務システム開発でよく使われるのは?
業務システムといってもさまざまですが、大規模システムと捉えていただくとJavaやC言語、C#が採用されることが多いようです。
IoT家電の開発やロボット開発など、組み込み系と言われる領域では、C言語やC++が広く使われています。
ゲーム開発がしたいなら?
コンシューマゲーム開発では、C#、C++が強く、ゲーム開発エンジニア募集の求人票を見ると、このどちらか、もしくは両方の経験を求めるものが多数です。
ゲーム開発に興味がある方なら聞いたことがあると思いますが、UnityやUnreal Engineといった強力なゲームエンジンが存在するためです。
また、スマートフォンアプリ開発では、これから新しく学び始めるという方には、ともに基本文法がシンプルで学びやすいSwift(iOS)、Kotlin(Android)をおすすめします。
プログラミングの学習方法
自分がどの言語を学んでみたいかイメージが掴めたら、次は実際に学習に取り組む方法を知りましょう。
まずは基本から
paizaラーニングには、プログラミング言語の基礎を学べる無料講座「体験編シリーズ」、もう少し発展的な内容も学べる「入門編シリーズ」があります。
体験編には、人気の高いPythonはもちろん、注目度の高いGoやSwift、Kotlinなど、全13言語の講座を公開しています。また、入門編の「Python3入門編」「JavaScript入門編」「Ruby入門編」は全編無料で公開中です!
講座一覧はこちら
コードを書く力を鍛える
プログラミングはインプットしただけでは身につかないため、自分でコードをたくさん書いてアウトプットをする必要があります。
そこでプログラミング練習問題を集めた「レベルアップ問題集」の活用がおすすめです。合計28言語(Beta含む)から好きな言語を選択して問題に解答できます。
解答例があるのは一部の言語のみになりますが、解説は分からない問題にぶつかった際に、どの言語でも参考にしていただけます。
問題集を解くよりもっと楽しくプログラミングを学びたい!という方は、Paiza Programming Gameもおすすめです。
開発を始める
プログラミング言語を学ぶことは大切ですが、多くの方は「なにかを作ってみたい」と思ってプログラミングを始めますよね。
paizaラーニングでは、DjangoとFlask(いずれもPython)、Laravel(PHP)、Ruby on Railsといった人気のWebフレームワークが学べる動画講座を公開しています。講座一覧はこちら
講座内でシンプルな掲示板アプリやメモ帳アプリをつくり、簡単なカスタマイズの仕方も分かります。
ブラウザ上で学習して、実際に構築もできますのでWebアプリケーションの開発が初めての方でもスムーズに取りかかれるでしょう。
周辺領域の知識をつける
開発にはデータベースやネットワークなど、周辺領域の知識も必要になってきます。
プログラミングを始めたばかりの方が学ぶには難しい分野もありますが、動画で学べる講座をご用意していますのでぜひ活用してみてください。
データベースについての講座は、「新・SQL入門編」を公開中です。すでにMySQLデータベースが扱える状態になっており、ブラウザ上で講座を受けられます。
基本的なSQLをていねいに説明しており、演習課題をこなすことで自分でSQLを書けるようにもなります。
まとめ
GitHubのレポートなどから、これからプログラミング学習を始める方がどの言語を学ぶとよいかについて考えてきました。
本文でもお伝えしたとおり、システム開発では、その用途や目的によって採用されるプログラミング言語はさまざまです。また、同じ目的であっても選択肢は複数あります。
実際の業務ではまっさらな状態でいちからシステム開発をすることばかりではなく、既存システムとの兼ね合いや、自社に在籍しているエンジニアの得意とするもしくは経験のある技術による場合もあります。
最初からある程度腰を据えて難しめの(ただし汎用性のある)言語を学ぶのか、まずは学習を続けられる言語にするのか、自分に合ったものを選んでみてください。そして、ある程度コードが書けるようになったら、腕試しにスキルチェック*2にも挑戦してみましょう!
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
詳しくはこちら
そしてpaizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。
詳しくはこちら