独習C# 第5版を読んで(読んでる)

もはやわたしのC#スキルでは解読できない

今、お仕事ではC/C++を使うのがほとんどで、たまにPythonといった感じですが、趣味で(?).NETを使ったIoTとかBlazorを触ってみたりして、C#でコードを見たり書いたりしています。C#サイコー。

とはいえ、知識不足を感じることも。たとえば、.NET IoT Librariesを見ているとき、「ん?なんだこれ、意味わからん。」というのに多数出会います。

これとか、

これとか。

読めないし、どうやってググればいいのか分からない。

それもそのはず、わたしがC#をガッツリとやったのは.NET Framework 2.0。2005年頃でしょうか。C#のバージョンは2.0。Genericsが出てきて本格的に業務で使えるようになったので、当時、お仕事で採用、ガシガシとC#書いていました。

現在のC#は10.0なので、その差が8...。近いうちにC#を学び直さないといけないなーと思いつつも、具体的に何もせずウン年が経過...。やらねばやらねば...。

そんなとき、なんと「独習C# 第5版」を献本いただきました!!
ラッキー!、ありがとうございます。

独習C# 第5版

これが手元に届いた「独習C# 第5版」です。

ページ数は678ページ。厚みにして約3.4cm。重さは約1kg。寝転がって読むには厳しい重厚な本です。

出版社が公開している基本情報、表表紙、裏表紙によると、これらが特徴でしょうか。

  • C#言語の独学に最適
  • 基本的な知識・概念・機能、文法・書き方を、網羅的かつ体系的に習得
  • ”解説”、”例題”、”練習問題”の3ステップでよくわかる
  • C# 10.0に対応

一文にすると、

C#の基本的なことを網羅的&体系的に習得できるよう工夫して書いた(C# 10.0にも対応してるよ)

といった感じです。
いいですね。新しいC#を網羅的&体系的に習得したいですw

また、まえがき「はじめに」にも共感する文面が。

「はじめに」から引用:

一見して遠回りにも思える言語の確かな理解は、きっと皆さんの血肉となり、つまずいたときに踏みとどまるための力の源泉となるはずです。

共感とともに、身が引き締まる思いです。

で、読んだ感じどうなの?

まだ読み途中です(滝汗)。
なにせページ数がが(言い訳)。
読み進めた範囲で、感じたことを書きます。

よかった

まず最初に、言語解説の本としては、かなり読みやすいです。翻訳本ではなくて日本人の著者が書き下ろしているようで、スイスイと読み進めることができます。

次に感じたのは、教科書というよりも読み物な感覚です。リファレンスマニュアルのような簡潔な体系にもかかわらず、文章は読み物になっていて、ところどころにアハ体験的な「おー、なるほど」と感じるものが差し込みで書かれています。例えば、文字列リテラルでは、

  • ”ダブルクォートでくくると文字列よ”
  • "Windowsのパスを表現するのに便利な逐語的文字列リテラルもあるぞ(@)"
  • "C# 6.0以降だと式も文字列に埋め込めちゃう($)"
  • "$@の同時使用も可能だ($@)"
  • "C# 8は逆順もOK(@$)" ←「おー、なるほど」

と丁寧に解説されています。 なるほどな感覚があるので、眠気との闘いになるようなこともなく、楽しみながら読めますね。

そして、これはわたしにとってありがたい点ですが、C# 7.0以降で追加された機能に関する章に、バージョン番号が分かるようにロゴが書かれています。ロゴが無いところはダラダラ~と読んで、ロゴがあるところは慎重に集中して読むことができます。

改善してほしい

各ページの右端に書かれている章のテキストに、もう1段細かい章も書いてもらえるとうれしいです。章立ては簡潔な体系なので、後々はリファレンスマニュアル的に必要なときに必要な箇所を探して読むことになると思いますが、右端のテキストがもっと細かい分類のテキストだと探しやすいかなと思いました。特に第2章。”C#の基本"というテキストでは、何が書かれているかちょっと想像しにくいです。←よく見たら、左下に子章、右下に孫章が書いてありました!

あと、ピンポイントで恐縮ですが、P076の一番上の解説コード。"if (format[0] is { } item)"でnullチェックできる理由が分からず、結構悩みました。(P402だけでは読み解けない)

まとめ

若干、ネガティブ?なことも書きましたが、、、
(わたしの状況がC# 2.0からのアップデートなので、みなさんに参考になるかは分かりませんが)わたしにとっては「良書」です。
楽しく伝えにくい"言語"というものを、日本語でスラスラと楽しく読める本は数少ないと思います。
C#で苦労している人C#を本気で習得したいと思う人、(わたしのように)古い知識からアップデートしたい人は、ぜひ手に取って見ていただきたいです。

このまま読み進めて、C#を網羅的かつ体系的に習得してやるぜ!

余談

Amazonで検索すると、

  • 独習C# 初版 ... ハーバート・シルト
  • 独習C# 第2版 ... ハーバート・シルト
  • 独習C# 第3版 ... ハーバート・シルト
  • 独習C# 新版 ... 山田 祥寛
  • 独習C# 第5版 ... 山田 祥寛

と、途中で著者が変わっていました。
新版で完全書き下ろしのようです。

第3版が、どんな風に書かれているか気になりますね。