こんにちは。倉内です。
プログラミング言語の人気の尺度を示す「TIOBEインデックス」。毎月発表されるランキングは、話題の言語や過去との比較で人気が上がった言語を知る指標のひとつでもあります。
そのTIOBEインデックスで、2021年10月度にはじめて1位を獲得したPythonは、皆さんもご存じの通り人気の高い言語のひとつですが、2021年に評価が急上昇したという意味では、C#も非常に注目されています。
2021年も残すところあとわずか……。そこで今回は、近年の人気プログラミング言語の変遷を見ながら、2021年の「プログラミング言語オブザイヤー」にもっとも近いと言われている、C#の学習方法についてもご紹介したいと思います。
TIOBEインデックスで見る人気言語の変遷
冒頭でもお伝えしたとおり、TIOBEインデックスは検索エンジンでの検索数などをもとに月に一度更新されるプログラミング言語の人気指標です。
現在、調査開始から約20年が経過し、二強と言われているのがC言語とJavaです。今でも開発案件数が多く、現役エンジニアの中で「初めて学んだプログラミング言語は?」と聞くと、そのふたつのどちらかを挙げる人も多いのではないでしょうか。
そして、そこに迫る勢いがあるのが近年非常に人気の高いPythonです。
Pythonには、NumPyという数値計算を効率よくおこなうための拡張モジュールが用意されており、特に機械学習やスクレイピングといった分野で存在感を示しました。
そのトップ3争いからは一段下がるものの長年安定して上位に位置しているのがC++とC#です。
2002年の調査開始から上位10位の変遷は、公式サイトが公開しているグラフ*1で眺めることができます。
(出典)TIOBE Index
2021年1月から12月のランキング推移
ここではもう少し細かく、2021年1月から12月の上位10言語の変遷を見てみましょう。(PCからは画像クリックで拡大表示可能です)
(出典)TIOBE Index
1年間まったく順位の変動がない4~7位(C++、C#、VB、JavaScript)もすごいですが、長年トップ2だったCとJavaを抜き10月に1位となり、その後3カ月連続1位を維持しているPythonにやはり勢いを感じます。
12月に初めてトップ10入りしたSwiftも人気の高い言語のひとつで、iOSのスマホアプリ開発に興味がある方は特に注目している言語ではないでしょうか。
歴代のプログラミング言語オブザイヤー
公式サイトの「Programming Language Hall of Fame」に記載されているのが、1年でもっとも評価の高いプログラミング言語に与えられる、プログラミング言語オブザイヤーです。
直近10年の結果は以下のようになっています。
(出典)TIOBE Index
さきほどSwiftに触れましたが、以前はiOSアプリ開発といえばObjective-Cでした。今はトップ20にも入らなくなってしまいましたが、2011年・2012年とプログラミング言語オブザイヤーを獲得しています。
そして冒頭でもご紹介したとおり、この2021年の有力候補がC#だと言われています。
TIOBE Softwareの最高経営責任者(CEO)Paul Jansen氏は、2021年に評価が著しく上昇したプログラミング言語だという点で、C#が同年のプログラミング言語オブザイヤーという栄光の座に「現時点で最も近い位置につけている」と述べた。
Jansen氏は「C#はその21年の歴史の中で『TIOBEインデックスのプログラミング言語オブザイヤー』を獲得したことこそないものの、過去20年にわたって上位10言語のうちの1つに挙げられ続けている点は興味深い」と述べた。
(出典)ZDNet Japan
補足:その他の指標で見る人気プログラミング言語
プログラミング言語の人気の指標は他にもいろいろあるので、TIOBEインデックス以外にも一部ご紹介します。
Stack Overflow Developer Survey 2021
Stack Overflowが毎年実施している、エンジニアを対象とした調査の2021年版である「Developer Survey 2021」(181カ国の開発者8万3439人が回答)では、人気のある言語や年収が高い言語など複数の軸でランキングを出しています。
こちらではJavaScriptの人気が高く、PythonやJavaも上位につけています。
この調査については、以下の記事でも取り上げていますので興味がある方はごらんください。
IEEE Top Programming Languages 2021
上記の記事によると、このランキングは以下に基づいて作成されています。
55種類のプログラミング言語を、8つのソースに基づく11の指標について評価し、スコア化して集計したもの
各指標を軸にした4種類のランキングが公開されていますが、ここではIEEE Spectrum(一般的なIEEE会員の興味や関心を反映した総合ランキング)のトップ10を見てみます。
(出典)Top Programming Languages - IEEE Spectrum
このランキングを見ると、C#がなぜ注目されるかの理由が分かるかもしれません。
アイコンは該当するプログラミング言語がどういった分野で採用されるかを4つのタイプで示しています。左からWeb・業務システム(大規模システム)・モバイル・組み込みで、実は55の言語のうち、すべてにアイコンが表示されているのはC#だけです。
「C#は万能!」はちょっと言いすぎかもしれませんが、そのくらい幅広い利用シーンがあり、学ぶ価値のある言語だと言えるでしょう。
C#の学習方法
その名前から「C言語と似ていて難しいのでは…?」と思われがちなC#ですが、C言語ほど文法が厳密でなく、どちらかというとJavaに似ている部分があります。
初心者向けの参考書も充実しており、簡単とは言えないものの比較的学びやすい言語ではないでしょうか。
また、Micfrosoftが無償で提供*2しているVisual Studioという統合開発環境を利用でき、それほど環境構築が難しくないのもよい点です。
C#の基本を学ぼう
paizaラーニングは動画講座と演習課題をブラウザ上でおこなう形式で、インプットに偏らず、アウトプットも同時におこなうことができます。解説の音声はプロの声優さんが担当しています。
これから初めてプログラミングをC#で学ぶという方が、「プログラミングとはなにか」からスタートする場合、全編無料の「C#体験編」という講座がおすすめです。
どの言語でも共通するプログラミングに必要な初歩の知識から、C#の基礎を身につけることができます。
「C#は初めてだが、プログラミング経験はある」という方は「C#入門編」がよいでしょう。基本~応用の文法を同じく動画講座と演習課題で実際にコードを書きながら学べます。
現在「C#入門編」はレッスン1~4まで無料公開中です。条件分岐・ループ文・配列の基礎文法がすべて無料で受講できますのでぜひご活用ください。
C#でプログラミング問題を解いてみよう
基礎文法を身に着けたあとは、C#でコードを書くことに慣れましょう。
「レベルアップ問題集」では、さまざまな種類・難易度のプログラミング問題を多数公開しています。問題によってはC#の解答コード例や解説をご用意しています。
基礎文法をおさらいできる手軽な問題はもちろん、計算量を意識したりアルゴリズムを用いたりして解く複雑な問題もあります。ご自分のレベルに合わせて選択してみてください。
以下の記事では、レベルアップ問題集の活用の仕方やどのような問題があるかを解説しています。
ある程度力がついてきて、自分のスキルを客観的に測ってみたいという方におすすめなのが「スキルチェック」です。
時間制限ありで問題に取り組み、結果によってS・A・B・C・D・Eのランクが付与されるサービスで、paizaのエンジニア転職や就職活動のサービスでそのランクが利用できます。*3
プログラミングスキルを腕試ししたい方、エンジニアを目指している方はぜひ挑戦してみてください。
スマホアプリを開発してみよう
あまりイメージがないかもしれませんが、C#はスマホアプリ開発も可能です。しかもひとつのコードベースからAndroid、iOSの両方に対応させることができます。
開発にあたって、以前はXamarin(ザマリン)というものを利用していました。
Xamarin は、.NET を使用して、iOS、Android、Windows 向けの最新で高性能なアプリケーションをビルドするためのオープンソースのプラットフォームです。
しかし、2020年11月に .NET Framework、.NET Core、Xamarin、そしてMonoの機能すべてを統合した.NET 5がリリースされ、以降は.NETを利用することになっています。
(参考)What is .NET? An open-source developer platform.
Microsoftの公式サイトに環境構築から説明してくれているチュートリアルが公開されているので、興味がある方はまずそれを見てみるとよいでしょう。
Unityでゲーム開発をやってみよう
C#といえばUnityでのゲーム開発をやってみたいという方も多いと思います。
基本的なチュートリアルであれば、環境構築から実践までとても手軽に試すことができます。GUIでの操作で扱える部分も多いので以下の記事を参考にしてぜひ挑戦してみてください!
ここまでご紹介した学習サイトの他にも、学習に役立つコンテンツを以下の記事で多数取り上げています。
まとめ
プログラミング言語の人気の変遷や2021年のトレンドから、どういった言語に注目が集まっているかを見てきました。
そして2021年、特に評価が高かったC#の学習法をご紹介しました。
プログラミング言語には得意な領域(よく採用される分野)がある程度決まっているものが多いのですが、本文でもお伝えしたとおりC#はさまざまなジャンルに適した言語です。
これからプログラミングを始めてみようと思っている方、新しい言語を習得したいと思っている方はぜひ取り組んでみてください。
動画でプログラミングが学べるpaizaラーニングでは、Python、Java、C言語、C#、Go、Kotlin、JavaScript、HTML/CSS、SQLなど、プログラミング初心者でも動画で学べる体験・入門レッスンを公開しています。
「Python体験編」「C#体験編」「ITエンジニアの就活準備編」といった人気講座は完全無料となっておりますので、プログラミングを学びたい方・ITエンジニアを目指したい方はぜひごらんください。
詳しくはこちら
また、「STEINS;GATE(シュタインズ・ゲート)」とpaizaがコラボしたプログラミングゲーム「電脳言語のオルダーソンループ」をはじめゲームで楽しくプログラミングを学べるコンテンツもご用意しています。ぜひプレイしてみてください!