プログラミングスクール テックアカデミー講師
太田和樹さん
Web系アプリケーション開発のPM兼エンジニア(現役)。フロントエンド、モバイル、サーバーサイド、データ分析などに幅広い知見を持ち、経験を生かしてプログラミングスクール テックアカデミーの講師も務める。(※テックアカデミーでは「Unityコース」でC#のカリキュラムを提供中 )
まだ自分が触ったことのない開発言語や流行りの言語、はたまた急にプロジェクトで使うことになった言語。エンジニアであれば「新しい言語を習得したい・しなければならない」場面に置かれたことがあるだろう。
そこで、エンジニア経験者向けに各言語の効果的な学習法やおすすめの書籍、ぶつかりやすい「壁」について、現役エンジニアが講師を務める日本最大級のオンラインプログラミングスクール・TechAcademy(テックアカデミー)講師である太田和樹さんに解説してもらう。
今回のテーマは、ちょっぴりニッチ、だけどニーズは根強い「C#」の学習法だ。
プログラミングスクール テックアカデミー講師
太田和樹さん
Web系アプリケーション開発のPM兼エンジニア(現役)。フロントエンド、モバイル、サーバーサイド、データ分析などに幅広い知見を持ち、経験を生かしてプログラミングスクール テックアカデミーの講師も務める。(※テックアカデミーでは「Unityコース」でC#のカリキュラムを提供中 )
Microsoftが開発したプログラミング言語であるC#は、ざっくり言うと「Windowsに関連するあれこれを開発するための言語」です。
具体的には、Windowsのネイティブアプリを開発したり、MicrosoftのWebアプリケーションフレームワークである「ASP.NET」でWebアプリを作ったりするのに使われます。イメージとしては、「iPhoneアプリを開発するためにSwiftを覚える」に近いですね。
ですから、C#を覚えるメリットは? と聞かれると、そのまま「Windows関連の開発に携われること」になります。
C#で作られたプログラムは、C#でしか運用・保守できませんので案件数としては少ない言語になります。ただ、需要自体はあるので、「ニッチだけど、一度受注と信頼をもらえれば安定的に受注できる」ような位置づけの言語だと捉えると良いでしょう。
裏を返せば、C#の開発に携わる機会が少ないのであれば、C#以外の言語を学んだ方が仕事にはつながりやすいかもしれません。
例えばバックエンドの開発なら、Windowsに特化したC#を学ぶよりも汎用的なJavaを学んだ方が確実に案件数は多いはずです。
そんなC#の案件で例外的なのが、クロスプラットフォームのゲームエンジン「Unity」です。主にC#を使ってコンテンツ開発をする必要があるためです。
私の専門外なので触れる程度にとどめますが、もしゲーム業界で活躍したいと考えているのであれば、UnityとセットでC#を学んでも良いでしょう。
せっかくJavaの話が出てきたので、Javaと比較しながらC#の利点をもう一つあげます。
Javaは案件数が多いと述べましたが、実は環境構築がとても大変で学習コストの高い言語です。おそらく、コードを書く以前の段階で挫折してしまう人も珍しくないでしょう。
また、Javaにはライセンス問題が浮上したこともありました。というのも、企業がJavaを利用する場合、統合開発環境であるOracle JDKを事実上の標準として利用してきたのですが、2018年にOracle社がOracle JDKの商用利用を有償化したことによりユーザーが反発。
代わりとなる環境としてAWSがAmazon Corretto、MicrosoftがMicrosoft Build of OpenJDKを無償で提供し始めた結果、21年にOracle社が無償提供を再開するなど、言語“外”のゴタゴタが相次ぎました。
こうしたトラブルが起こると、ネット上の情報が混乱してしまい、情報を収集するのが難しくなってしまいます。
その点、C#は20年以上も安定していますし、Visual Studioさえインストールすればすぐに書き始められます。最新版はVisual Studio 2022で、個人の利用であれば「Visual Studio Community」を無料で使用できますのでチェックしてみてください。
そんなC#を効果的に学習するには、やはりWindowsのネイティブアプリを作ってみることをおすすめします。
普段、自分が使っているパソコンの中で自作アプリが動く喜びといったらありません。プログラミング学習の“敵”は何といってもモチベーションの低下ですから、学習の成果が分かりやすく表れるアプリ開発をマイルストーンに据えることで挫折を防ぎましょう。
作るのはどのようなアプリでも構いませんが、定番はToDoリストでしょうか。Pythonと同じく、簡単なアプリを1〜2カ月で作り切ることを目標に学習を進めると良いでしょう。
学習にあたっておすすめの書籍は、『独習C# 第5版(山田 祥寛著)』(翔泳社)です。
山田さんが書かれる本は説明がとても細かいのですが、不思議と内容が破綻しておらず、非常に理解が深まります。山田氏はC#以外の言語の解説書も出しているので、興味のある方は調べてみてください。
C#を学習する人がつまずきやすいのが、C#に特有の約束事(広義のフレームワーク)を覚えなければならない点です。
「描画領域はこのように定義する」「アプリを『最小化』した際に、このような動きをするように書く」など、Windowsアプリとして守らなければならないルールがこまごまとあるのです。
そこまで複雑なルールではなく、慣れてしまえばどうということはありませんが、初めのうちは面倒だと感じるかもしれません。
最後に、C#について個人的な感想を一つ。私は、C#の言語としての美しさは群を抜いて素晴らしいと感じます。
書き方が洗練されていて、リリースから20年以上が経つ今も安定しているため「ひとたび覚えればずっと使える言語」なのです。需要がマッチしさえすれば、十分にバリューを発揮してくれる言語と言えるでしょう。
文/夏野かおる
NEW!
タグ