Unityでインディゲーム道!

プログラム、Unity初心者がインディゲーム制作を目指して日々思うことなどを書き綴ります。

プログラミング入門者のためのC#攻略本とはなにか?

これからプログラミングを始めてみよう!という人にとって、最適なC#の攻略本はおそらく無いです。筆者自身も教えて欲しいくらいです。しかし、あきらめずにプログラミング入門を打開するのに役立った本や、サイトなどをご紹介させていただきます! 

 

同時投稿のこちらの記事では、初心者への障壁について書きました。

本記事は、この記事を受けての対となるものです。

 

C#を理解し、使うということとUnity上でC#を介し、そのAPIを活用してゲームを作るということは厳密には違うことなのかも知れません。しかし個人的には、やはりC#C#で個別に勉強したほうがいいだろうと思いました。今でもその判断が正しかったと思います。なぜならプログラミングにおける問題解決手段に、"問題の分割"というものがあるからです。個々の問題に個別化して、一つ一つ解決していく方法です。

  

あえてCをやる。

最初悩みました。完全初心者のためのC#本はないのでは?と感じ始めたからです。
そこで見つけたサイトが、この・・・

 

C入門


「C 入門」で検索すると一番上に出てくるサイトになります。

 

というかCかよ!?C#じゃないのかよ!?という人がいるかもしれません。しかし、結果的にCからがわかりやすかったんです。自分としては。 Cをマスターするのは、難しくても、基本的な部分を学ぶにはシンプルでいい言語だと思います。

あと古い言語なので、もはや変化しないというのと教える側の錬度が高い、というのもあります。書籍が充実している、というのもあるわけです。

 

ただCには『ポインタ』という初心者殺しがあります。自分もここらへんは最近ようやくわかりかけている感じですが、初心者はポインタは無視していいです。


というかCでプログラミングできるようになる必要も無いと思います。(というか自分もほぼできません!(^o^)) このサイトにおいて、基本概念をCで軽く触れた上でC#で実際にプログラミングしてみる!という方法もあるのでは?ということです。

 

確かにいきなり最初に2つの言語を同時に勉強するのは混乱の元かもしれません。
しかし、あくまで事前学習のための踏み台としての利用法があるんだ、ということです。 このサイトで書かれていることをVisual StudioC#を使って再現してみる。とかやっていましたね。 

 

教えてくれる人が大事

ここは林健一郎先生という方によるサイトです。『珠玉のプログラミング』というプログラミングにおける名著の訳者であったり、スゴイ方なんですが、サイトのテキストはかなり優しい、わかり易い文です。


単純に読んでて面白いですし、苦になりません。(それでも最初はわかりませんが)
そこが自分の中ではかなりの尊敬ポイントです。本当に賢い人はわかりやすい説明が出来る!教えてくれる人を選ぶことが大事なのかもしれません。

 

なんでプログラミングを一回もやったことないという人はこのサイトをぜひ確認してみて欲しいです。C#に触るのはそれからでも遅くないと思います。

 

 

やはりCで前準備 

苦しんで覚えるC言語

 そしてこの『苦しんで覚えるC言語です。またC言語です。サイトもありますが、自分は書籍版を買いました。名前がいいですよね。信頼できる!

 

というか、むしろわかりやすいんですけどね。でこの本もですが、全部理解する必要は無いです。やはりCとC#は違いがありますから、後半はC#と関連性の薄い内容になります。なので13章まででいいと思います。ホントに基本的なことをしっかり学べます。変数の寿命とかは非常に参考になりました。

 

じゃあC#は何をみればいいのか?となるといまだによくわかりません。

 

これくらいわかり易い日本語サイトはないものか

www.dotnetperls.com

DotNetPerlは海外の英語のみのサイトですが、項目ごとにシンプルで易しくまとめられているので非常にわかりやすいですし、下手な日本語サイトよりよっぽど初心者に優しいです。逆にわかりやすいとはこのことですね。これぐらいシンプルで整理された日本語サイトがあればいいんですが、どなたかご存知ないでしょうか?

 

応用編

 (原題)"Think Like A Programmer"

プログラマの考え方がおもしろい身につく本』

(あえてAmazonリンクは貼らない) 

この本は、まだ完全に読破できているわけではありませんがかなりいい本です。

 

プログラミング言語の文法を覚えたとしても、プログラミングできるかといったら出来ないよね?じゃあどうすれば出来るようになるんだろう?という観点から切り込んだ一冊です。まさしく初心者が知りたいことが具体的に書いてあります。

 

実際にプログラミングできるようになるためにはどういうことを考えていかないといけないのか?という思考プロセスをひとつひとつ丁寧に解説しています。文法として学んだ、プログラミングにおける様々な道具をどう使っていくか?ということを学べます。

  

ただし問題はサンプルコードはC++で書かれているということです。C#に慣れるとC++はC以上にややこしいかもしれません。というわけでC++の基本的な部分も学ぶハメになったんですが、幸運なことに上のC入門のほかにC++入門というページが!

 

C++入門


自分もC++は、かなり拒否反応がありました。(C#から見ると違和感がすごいのです。)しかしそれでも読む価値はあります。これのサンプルコードをC#で書いたものが出たらかなり最高の教科書になると思うんですがねぇ。 


また、『プログラマの~』における"クラス"に関する言及は、C#においてもかなり指針になるものだと思います。全体的に難しいですけども、実践以外の精神論的な部分も参考になります。プログラマの頭の中で何が起こっているかがわかります。

  

まとめ

というわけでC#の攻略本はまだない!という結論に変わりありません!


しかし、それに近い書籍、サイト群の組み合わせをここで披露させていただきました。独断と偏見によるものですが、なにかしらの参考になれば幸いです。要は自分にあったやり方をいろいろ試す、そこらのブログ見てわからなくてもあきらめない、ということが大切だと思います。急がば回れ、の精神が大切だと思います!