1週間でC#の基礎が学べる本 紹介
エンジニア2年目でC#言語に触れたことは学習の振り返り、改良を差し示した
自分は3/14~4/3にかけてC#言語学習教材を用いてC#言語の文法、考え方を学んでいました
書名は
亀田健司著 1週間でC#の基礎が学べる本
Amazon Kindle版です。以下にKindle版のリンクを示します。
C#言語に興味があって、これから学びたいという方には手に取ってみることをお薦めします
本書を薦める理由は以下の3点にあります
- 章のセクション(区切り)ごとにポイントが説明されており、どのような学習の進め方が良いかわかりやすかった。
- 書式の説明にはハイライト、重要語句には太字や下線が引かれており、章における中心要素が見て取ることができた。
- 本書に載っている例題のプログラムを書いて動かすことで、なぜ紹介している文法が必要なのか腑に落ちた
1については新しいセクションに進むと一番上にPOINTという枠で目標が書かれており、ここを守ればクリアという成功条件がわかりやすかったです
2については視覚的に重要な要素が示されており、技術記事を書くときもハイライト、太字や下線が引かれている個所を中心にしました
3についてはVisual StudioのC#コンソールアプリで書いたプログラムを動かし、実行結果から振り返ることで文法、考え方がなぜ必要なのか腑に落ちました
初学者の方には3日目まではソースコードを写して実行すれば
プログラムを書いて動かすというのはこういうものなんだ~
と思いますが、4日目以降はオブジェクト指向の要素が出るので、1回だけではストレスがかかり、何度も根気よく学ぶ必要があると思います
自分は職場でCakePHPと呼ばれるPHP言語のフレームワークを用いてシステム開発を行っており、CakePHPにはオブジェクト指向の考え方があるため付いていけました
それでもC#言語のオブジェクト指向の技術記事を書くには2、3周する必要がございました
自分は新しい言語・概念を学んだあとはアウトプットすることに決めています
理由は思考の整理にあります
ヒトとしての自分はいざ考えを口に出そうとすると時間がかかったり散文的になるので1回まとめてから伝えるようにしています
記憶は定着したと決めてかかるとすぐに抜け落ちると考えており、アウトプットすることで仮になんだっけとなっても見返すことができます
イカになれば うまくいく
ヒトを見るのが新鮮なものでいわゆるマウンティングのしようがない
経験から推し量ることなく 違うものは違う それが素晴らしいほたー と言い続けたいと思います
さてそんなアウトプットしたC#備忘録の数々を紹介します
C#勉強備忘録 記事紹介
C#勉強備忘録はZennと呼ばれるエンジニアの情報共有サービスで書きました。
マークダウン記法で記事を書くことができる、1画面が見やすいという利点があり、QiitaやはてなブログではなくZennを選びました。
後から見返した時も見出しと見出しの移動がしやすく、Zennで書いてみて良かったと思います。
それではC#備忘録という題名で書いた記事のリンクを紹介します。
1日目
プログラミング学習の道なき道を進むとコンピュータの仕組みで行き止まりになる
行き止まりの先に進めるかどうかは仕組みを紐解くことにある
そんなコンピュータの構造を中心に学んだ章が1日目です。
加えてVisual Studioのインストール なんと無料
本書には初学者のための手順もあります
Console.WriteLine(“Hello World”);
書いて実行することでC#のコンソールアプリにHello Worldが表示されます。
2日目
聞いたことをメモに入れて取り出すことができるようにしたい
上記のメモにあたる概念が変数に当たります。
変数を用いて足し算、引き算などの計算式を立てました。
プログラミングの世界では計算処理のことを演算と言います。
また「もしも~だったら…する」 そんなときありませんか?
プログラミングでは条件分岐にはもしもを意味するif文を使い、本当だった場合実行する処理を作成します。
変数・演算・条件分岐を中心に学んだのが2日目です。
3日目
1回1回ではなく決められた数だけ実行したい
上記のような状況で使うのが繰り返し処理です。
for文、while文、do while文それぞれの文法、特性をまとめています。
また集めたメモを1冊の本にまとめたい
そのようなときは配列変数が役に立ちます。
配列変数で決めた大きさの分だけメモが入ります。
繰り返し処理・配列変数と1ではなく複数という考えを中心に学んだのが3日目です。
4日目
オブジェクト指向はあらゆるものをすべて「モノ」として表現します。
車で例えると車の設計図がクラスに当たり、アクセルクラス・ハンドルクラス・ブレーキクラスとクラスが機能によって分けられているのかもしれません。
またオブジェクト指向には複雑な仕組みを隠し、必要な操作だけ行えば欲しい結果が得られるという考えがあり、カプセル化と呼ばれ、生活をより便利にしていることでしょう。
クラスが生成されたときに必ず1回だけ呼ばれるコンストラクタという機能についても学びました。
オブジェクト指向の考えは食材を細かく切って調理しやすくするかのようにプログラムを組み立てやすくすると学んだのが4日目です。
5日目
4日目の発展 すなわちオブジェクト指向の発展
継承・処理の上書き・他クラスの見本の作成等プログラムの幅を広げる方法を学んだのが5日目
似たような処理は継承を用いることで継承先で固有の処理を書く、オーバーライドで上書きするいった方法を取ることができるようになりました。
1番ストレスがかかった章であり、1番学んだ章でもあります。
1記事で10000万字を超えたので2記事に分けました。
5日目-1
5日目-2
6日目
数に指定のないデータを扱うコレクション、相手に擬態するデリゲート、非常時の備え例外処理を学んだのが6日目
コレクションでは値を入れる回数が決まっていないという欲張りにも対応しています。
デリゲートは設定することで同じ型の引数を取っていれば違うメソッドになりすまして処理を実行できます。
例外処理はもしもエラーが発生したときの処理を設定できるので非常時の備えとして便利です。
学んでおいて役立つ知見を得ることができました。
7日目
ひたすら例題集 22問
演算・条件分岐・繰り返し処理・配列から出題
1回目は写経、2回目は例題のソースコードから どのような問題だったか推察
最初よりずっと明るくなった