
C#ってなにができるの?
こんにちはー!
今回はC#ってどんな言語で何ができるのか、これからC#を学びたいと思っている方へのアドバイスなどについて話したいと思います。
そもそもC#って何?
C#とはMicrosoft社によって開発されたオブジェクト指向型のプログラミング言語になります。C#はC++を拡張した言語ということで、C++++で、4つのプラスを並び変えて#とし、C#という言語になったという説がありますが真偽は定かではありません。
同じプログラミング言語にJavaがありますが、文法はJavaと非常によく似ています。多くのIT企業では、研修でJavaを行うことが多くプログラミング初心者でも比較的使いやすいといった特徴もあります。
統合開発環境であるVisualStudioを使えば、簡単なフォームアプリケーションを作ることも可能であり、初心者がWindowsでアプリを作りたい場合に最適なプログラミング言語だと思います。
ちなみに、似たような名前のプログラミング言語にC言語やC++と言った言語がありますが、互換性はなく別物になります。

C#でできること
C#はできることが非常に多いのが特徴です。古典的なフォームアプリケーションからVR/ARと言った最先端技術など幅広いジャンルの開発を行うことができます。ほかの言語では、1つの言語にきできることは2つか3つ程度と言われています。
では、C#ではどういったことができるのか詳しく見ていきましょう。

フォームアプリケーション
フォームアプリは、フォーム上にボタンなどのコントロールをドラッグ&ドロップで配置するだけで簡単にアプリを開発することでできます。
見た目を確認しながら画面を作成でき、処理部分はイベント起動で動かすので、初心者の方でも動きがイメージしやすく、初めてC#に触れる方はまずはフォームアプリから始めてみるといいかもしれません。

Webアプリケーション
Webアプリは、ASP.NETと言うフレームワークを使用しWebアプリの開発を行うことができます。先ほどのフォームアプリと同様に、ドラッグ&ドロップでコントロールを配置してWebアプリの作成を行うことができます。
ASP.NETには様々なサンプルが用意されているので、サンプルを参考にしながら自分の作りたいアプリを作成することも可能です。

スマートフォンアプリケーション
スマートフォンアプリ開発では、Xamarinという環境を使用して開発を行います。
Xamarinには、Android用の「Xamarin.Android」、iOS用の「Xamarin.iOS」とそれぞれのOSに対応した開発を行うことができます。
自分で開発したアプリを、google playやappleストアで公開し、収益を上げることも可能です。

ゲーム開発
ゲーム開発では、Unityと言われるゲームエンジンを使った開発が最も有名です。
Unityはノンプログラミングと言い、基本的にはプログラミングの必要はありませんが、C#を使うことでより高度な開発やカスタマイズを行うことができます。
単純なゲーム以外にも、VR/AR機能を持ったゲーム開発も行うことができます。
Unityを使って開発された有名なゲームとしては、「原神」「ポケモンGO」「Fall Guys」と言ったゲームがあります。

C#でできないこと・苦手なこと
ここまで、C#でできることを書いてきましたが、逆にC#が苦手・できないことを確認していきましょう。
Microsoft社が提供しているという時点で察している方もいらっしゃるかもですが、C#開発は.NET Frameworkに依存しており、Windows環境での実行を前提としていることが多く、Linuxなど別プラットフォームでは実行できなかったりすることもあります。
そのほかに、高度な計算処理や高速計算は苦手とされています。この辺りは、C++やPythonと言ったプログラミング言語を使うか、提供されている豊富なライブラリを使用するなどの工夫が必要です。

これからC#を学ぼうとしている方へ
これからC#を学びたい!という方は、まずは、VisualStudioをインストールして手を動かすところから始めてみましょう。簡単なフォームアプリケーションであれば、ネットにも多くの情報があり簡単に開発を始めることができます。
VisualStudioにはcommunity版と言われる無料版があります。個人使用のみ・商用利用不可などの制限はありますが、有償版と同じ機能を利用することができ、実際の開発現場と同じように開発することができます。
少し自分語りをすると私は学生時代、情報系の学校に行っていましたが、プログラミングはほとんどせず座学(資格取得がメイン)ばかりでした。
知識としてはある程度知っていても実際の動きというものを知らかなったので、就職してから初めてプログラムをしたときは全くと言っていいほど何もできませんでした。その後は実務を通してある程度できるようにはなりました。
これはITに限らずどの分野・仕事にも言えますが、実際に自分で体験して考えて、その結果を実行することで初めて自分の知識として定着するので、C#に限らずプログラミング言語を学ぼうとしている方はまずは手を動かすことから始めてみましょう。慣れてきたら別のジャンルの開発を始めてみるのもいいかもしれません。C#はいろいろなことができる言語なので、こういった特徴をうまく生かし、多くの知識・技術を吸収していくことで、多くの現場で通用するエンジニアを目指してみてください。


