C# を使おう

Web アプリケーションを作るためには、プログラムを書いてやる必要がありますが、プログラム言語の選択は結構悩ましい問題です。自分の場合は、自分でサイトを作るためだけなので、自分が最も習得しやすいと思う言語 C# を選択しました。C# のメリットは、デスクトップアプリケーションでも Web アプリケーションでも、そこそこの性能のものを効率的に作成することができます。よく似たタイプの言語としては Java がありますが、自分の場合は、Webサイト用のプログラミングだけでなく、デスクトップ用のプログラミングも必要だったので、Java は Windows のデスクトップで使うには遅いし使いずらいということで C# を選択しました。C# を選択した当初は Java が圧倒的に人気だったので Java にしておけばよかったと思ったこともありますが、Java は、Oracle が買収してから対応があまりよくないようになっており、一方、C# の方は、Microsoft が地道に改良を重ねており、現在では、Java ではなく、C# を選択してよかったと思っています。

C# といえば、Microsoft のものだという印象が強いと思いますが、ゲーム開発プラットフォームとして有名な Unity も言語には C# を使っています。Microsoft 自ら .NET Core を開発し、Windows だけでなく Linux や Mac でも動作するようになりました。また 、Microsoft が 2016年に買収した Xamarin を使えば、C# で iPhone 及び Android のアプリケーションを作成することができます。C#を使えば Web アプリケーションも作れるし、iPhpne/Android/Windows Store のネイティブアプリも作ることができます。PHP の場合は Web の世界では有力ですが、それ以外の分野では非力です。

C/C++、C#、Java、PHP は言語的にはかなり近い言語で、言語の基本だけでいいのならば全部覚えることはそれほど難しいことではありません。しかし、実際に効率よくプログラミングするためには、ライブラリにも慣れる必要があるので、使えるようになるにはそれなりに時間が掛かります。自分のように、アプリケーションを作りたいためという場合には、C#、Java、PHP、Ruby、Go、Python、JavaScript のうちからどれか一つに慣れることが必要です。その中で JavaScript は特異な存在で、Web ブラウザーで動作する唯一のプログラム言語です。そういう点では Web をするならば JavaScript(Node.js) を習得するのが必須なので、JavaScript を習得するのが一番の早道だと思います。C# には、そういう強い学習動機がないのが弱いところですが、幅広く使えるというのはいいところだと思います。

プログラミング言語の人気調査をしている TIOBE Programming Community Index というサイトがあります。人気言語の順では、Java、C、C++、C#、Python の順になっています。

C#の学習参考資料

C#の学習用の Web サイトととしては、++C++; //未確認飛行 CC# プログラミング入門があります。これは、とても参考にになるサイトで、普通に販売している C# の本よりも、わかりやすく、内容も豊富なので、最初はこれだけで学習しても十分です。
図書については、ハーバード・シルト著「独習C#第3版」(翔泳社)がおすすめです。

C# は、開発ツールのコストが高いのでは

昔、遠隔操作ウイルス事件の時には、「Visual Studio は高価な専門ツールであることから、素人が購入するとは考えにくいという」コメントがだされたように、Windiows 関係の開発ツールは高いと思っている人がまだ多いと思います。

しかし、Visual Studio Community が個人に対しては無償で提供されており、機能的には Professional 相当です。自分もそれを使っています。エンタープライズ向けのソフトウェアを開発するのでなければ、十分な機能を持っています。

Linux サーバーでも動くよ

もう一つの懸念は、Windows でしか動作しないという懸念があるのではないかと思いますが、.NET Core を使えば Linux でも動作します。このサイトも Ubuntu で動いています。.NET Core は、OSS になっているので、今後、Windows オンリーに後戻りすることはないと思います。Microsoft の収入を考えても、収入の中心が Windows の収入から Azure や Office 365 のようなクラウドからの収入に移ってきているので、マルチプラットフォームを捨てて Windows に閉じこもるようなことは考えられないです。