C#をプログラミング初心者に使ってほしい

C#勉強したいんだけど、プログラミングを勉強するのは難しくないの?
個人で勉強する方法ある?

今回の記事はプログラミングをやったことないけど、C#にチャレンジしてみたいという方向けに
「プログラミング言語としてのC#の良いところ」と「学習の始め方」、
について紹介します。

C#に興味を持っているひとへの後押しになれば幸いです。

C#をプログラミング初心者に使ってほしい理由

  • 難易度はふつうだけど、ともかく始めやすい
  • 大企業がサポートしているので長く使える可能性が高い

C#をお勧めしたい理由は上記の通りです。それぞれ詳しく説明します。

難易度はふつうだけど、ともかく始めやすい

難易度はふつう

C# の難易度はいくつか言語をさわってみた身としては、
言語本体の難易度は「ふつう」だと思います。

htmlのように書けば動くなど極端に簡単な言語を除けば、
むしろ簡単な部類なのではと思うくらいです。

CやC++に比べれば難易度は低いでしょう。

プログラムで挫折するときの原因のひとつ「そもそも動かない」

独学でプログラムをしようとしたとき難しいと感じる理由の一つに、
書き方やルールが複雑という難しさがあります。

確かに、ルールが多いなどは学習するうえでの難易度を上げているでしょう。
ですが、プログラムを挫折してしまう理由のひとつは、プログラムをする前にもあると考えています。

それは、エラーがでて「そもそも動かない」です。

この「動かない」問題のほうが個人で学習するうえでの壁になりやすいので
注意したいところになります。

すでにプログラムを学習し知見のある方なら、エラーから原因を特定して

「あ、ひとつインストールできてないや」

とか、環境を整えることができるのですけれど、
右も左もわからない完全初心者にとっては難しいでしょう。

最初のエラーを直すところで躓いて、肝心のプログラミングをするまでに何日もかかってしまうと、
向いていないのかなと錯覚して、あきらめてしまいます。

これは単純に知っているか・知らないかの問題です。
本当はプログラムに向いている人でも、挫折してしまう可能性があるのでもったいないと思います。

C#はプログラムを始めるまでが簡単

無料で使える開発環境Visual Studioをインストールするだけで始められます。
https://visualstudio.microsoft.com/ja/

プログラムをするにはエディター、実行環境、など様々なソフトウェアを
インストールしていくことになるのですが、

C#はこのvisutal studioをインストールするだけで全て手に入ります。

インストールもコマンドではなく、画面操作でけで進めることができるのもポイントです。

マウスをポチポチでC#を準備できます。

大企業がサポートしているので長く使える可能性が高い

せっかくプログラムを学習するのですから、
老い先短い言語やマイナー言語は無くなってしまうリスクがあるので
継続的に発展できる言語がいいですよね。

Microsoftによって開発された言語で、
大企業がサポートしているのも一つ大きなポイントです。

経済的にも、継続的に発展できる土台がある

C#そのものはオープンソースで無料で利用できます。
他の言語ももちろん無料で利用できます。

継続的にバージョンアップしていくには人々の協力が必要ですし、
言語に組み込まれたバグを直して長く使えるようにメンテナンスするにもコストがかかります。

人気のある言語はコミュニティが言語の発展を支えています。

C#にもコミュニティがもちろんありますが、
やはり、資金が潤沢にあるMicrosoftがバックにいるというのは、経済的にも優位なことだと考えています。

長く使えるだけでなく、継続的にバージョンアップを期待できます。

万が一Microsoftがつぶれてなくなるころには
とっくにプログラマとして成熟しているので、どんな言語でも乗り換えられるようになっているでしょう。

GAFAのライバルたちもサポート

Microsoftが展開するクラウドサービスAzureと競合している
GoogleのGCPAmazonのAWSでさえも、C#が動く環境を提供しています。

C#で作られたアプリをサポートすることは、彼らにとっても利益になるということです。

企業の利益になるということは、持続性があるということです。

また、他社がサポートするということは、
C#はMicrosoftだけのものではなく、ひろく使えることをも意味しています。

C#の学習の始め方

「インターネットだけでいくか」「インターネットと書籍で学ぶ」のどちらかです。

この時代、インターネットを使わず、
あえて書籍だけでプログラミングを習得するメリットはほとんどないでしょう。

インターネットの情報で小さく始めてみよう

独学はネットのみでいけます。プログラムを勉強するための情報はネットにすべてあります。

ブログ記事やyoutubeの動画はもちろん、
C#はMicrosoftが提供するドキュメントも充実しています。

>>Microsoftが提供するドキュメントMSDN

かくいう私もインターネットの記事でプログラミングを覚えました。
C#に関する書籍を読みはしましたが、タイミングはプログラミングがある程度できるようになってからですね。

書籍とネットは一長一短、使い分けよう

  • 情報がまとまっているか
  • 最新の情報か

これが書籍とネットで得られる情報で相反しています。

インターネットで膨大な情報から、自分の欲しい情報を探し出す手間がかかる一方で
最新の情報にアクセスできます。

書籍は逆で、関連する情報がまとまっているので自分にとって必要な本さえ手に入れてしまえば、
インターネット記事のように情報を精査する必要がなくなります。

本の欠点は、本になった瞬間から情報が古くなることです。

いくらまとまっていても、自分の使っているC#のバージョンと違う物を
調べても答えにたどり着かないかもしれません。

ただし、書籍を用いる場合は古本は避けて
可能な限り新しい書籍を購入することをお勧めします。

自分にあった方法で学習しよう

結局は何か新しいことを始めるときは自分にあった方法が一番です。

物理媒体のほうあ記憶に残って探しやすいというひともいれば、
ググって欲しい情報に即アクセスできるひととわかれます。

「まとまっている」ほうが頭に入りやすいと、書籍併用でも効果を出している方々もいますので
学習時に本を読むことに慣れているなら、積極的に書籍を活用したいところです。

作りたいものを選ぼう【重要】

参考になるサイトや書籍はるのでいずれ紹介したいのですが、
それ以上に学習するうえで重要なことがあります。

「貴方が何を作りたいか」です。

「何をつくるか」、つまり目的です。

  • ゲーム
  • スマホアプリ
  • デスクトップアプリ
  • WEB
  • IoT

C#でできることは沢山あります。

本を選ぶにも、サイトを選ぶにも、C#で何を作るかによって変わりますし、
「目的・やりたいこと」が明確であればあるほど調べやすいです。

作りたいものによって周辺の知識・技術が変わってくる

プログラミングをするときには言語だけできれば、なんでもできるわけではありません。
「作りたいもの」に合わせた様々な周辺知識が同時に必要になります。

例を出しますと

  • ゲーム開発:C# + unity
  • アンドロイドアプリ:C# + Xamarin
  • WEB:C# + html,js,css

ゲーム開発をしたいのにWEBサイトに特化したブログや書籍では十分な学習が担保されません。

自分の作りたいものに合わせたサイトや書籍を探してみてください。。

作りたいものがない?じゃあとりあえずチュートリアル

もし、作りたいものがまだ明確にない方は、こちらをどうぞ

https://docs.microsoft.com/ja-jp/visualstudio/get-started/csharp/?view=vs-2019

Microsoftがチュートリアルを用意しています。
WEBサイトをつくるまでを簡単に始められます。

用意するPCのスペックが変わる

C#を動かすだけならば、低いスペックのパソコンでも問題ありません。

ただし、自分の作りたいものに合わせて必要スペックが変わってきます。
特にゲームを作る場合にはハイスペックPCがあるほうがいいですね。

学習速度はPCスペックでも上げられる

もちろん、良いPCは学習の速度が高くなります
これは物理的な話で、事あるごとに発生する「待ち」時間が減るからです。

最初からハイスペックなPCを用意しておけば、効率化できますのでお財布と相談しましょう。

最初はC#をプログラミングできる状態にすること

文字だけでやるのと、実際にプログラムするのでは経験値のたまり方が違います。

自分で書いたコードがどのような結果をもたらすのかを確認することができますので

頭に残りやすいです。

躓きながらでもよいので、とにかくコードを動かしてみることをお勧めします。

まとめ

「プログラミング言語としてのC#の良いところ」と「学習の始め方」についての
紹介は以上です。

最後に振り返ります。

  • C#の独学は可能、ネットだけでもできます
  • 作りたいものを見つけよう
  • 実践が一番効率よく経験値を稼げます

改めて、C#に興味を持っているひとへの後押しになれば幸いです。