NRIネットコム Blog

NRIネットコム社員が様々な視点で、日々の気づきやナレッジを発信するメディアです

書籍紹介(プログラミング、SQLなど・初心者向け)

本記事は  執筆デビューWeek  2日目の記事です。
✨  1日目  ▶▶ 本記事 ▶▶  3日目  🔰

入社3か月目の竹内です。会社員になってから読んだ本で、面白かったもの、印象に残ったものを紹介します。

1. なるほどなっとくC#入門

 C#の入門書ですが、オブジェクト指向やポリモーフィズムといった他のプログラミング言語にも関わる内容について、図を交えた丁寧な説明がされており、C#に興味がある人だけでなく、プログラミングの基礎を学びたい方におすすめの一冊です。C#の文法の説明にとどまらず、プログラミング上達のコツなど補足事項も記載されています。サンプルコードについても、模範的なコードだけでなく、書いてはいけないコードや改善の余地があるコードが記載されており、より良いコードを書くことを意識させるような内容になっています。C#の機能に関しては、LINQの使い方やよく使われるメソッドが分かりやすくまとめられており、C#に特化したプログラミングについても学ぶことができます。

 私が初めて読んだプログラミングの入門書は文法の説明が多く退屈でした。一方で、本書はVisual StudioというIDEを使ったプログラムの作成から、ビルド処理、実行までの手順が詳細に記載されており、本書で説明されているC#プログラミングを、実際に手を動かし、動作を確認しながら学べるようになっていて、作る楽しさを感じながら学習できるようになっています。手を動かしながら楽しくプログラミングを学習したい方にもおすすめの一冊です。

2. CODE COMPLETE

 ソフトウェアコンストラクションについての本です。よりよいソフトウェアを開発するためのテクニックがまとめられています。上下巻に分かれていますが、上巻だけでも500ページ以上あり、非常にボリューミーです。ソフトウェアの設計、コーディングのテクニックについて詳細な解説が掲載されています。コーディングについては、良い例と悪い例を交えて、どのようにコーディングすべきか、なぜそうするべきか、ということが丁寧に説明されています。上述のように、ボリューミーで解説が詳らかである反面、すべての内容を読んで理解することは容易ではないと個人的には感じています。

 私は本書を辞書として使っており、例えば、サブルーチンの作成で悩むことがあったら該当する章を参照する、といった使い方をして、部分的に読み進めていき少しずつ理解しようとしています。それでも消化不良なところもあり、読むのに苦労している一冊ですが、分かるまで何度も読み返して、いずれは本書の内容をマスターしたいと考えております。ソフトウェアの設計やプログラミングについて、時間をかけてじっくりと学びたい方におすすめの一冊です。

3. 達人に学ぶSQL徹底指南書

 SQLについての本ですが、「初級者で終わりたくないあなたへ」というサブタイトルが示すように、SELECT文やWHERE句といった基本的なSQLの解説がされている入門書からもう一歩踏み込んだ内容になっており、よりテクニカルなSQLの書き方が紹介されています。本書は大きく分けて2部で構成されています。第一部ではCASE式、ウィンドウ関数といったトピックごとにSQLのテクニックが紹介されています。また、パフォーマンスチューニングや可読性を上げるコーディングの仕方も紹介されています。第二部ではリレーショナルデータベースにまつわる多様なトピックが展開されています。リレーショナルデータベースの歴史や集合論、論理学といった様々な切り口からDB・SQLについて解説されています。

 私にとって特に印象に残っている章は4章の「3値理論とNULL」です。本章では、そもそも3値理論とNULLについての詳細な解説から始まり、章の後半では実践編として、NULLまつわる理論がSQLを書く際にどのように関わるか具体例を通して分かるようになっています。本書を読む前はNULLへの理解が十分でなく、入門書に書いてあるから「~IS NULL」、「~IS NOT NULL」と書かなくてはならないといったおざなりな考えでSQLを書いていましたが、本章を読むことでなぜそのように書かなければならないのか、列にNULLが含まれる場合にどのようにSQLを書けばよいかということを意識することができるようになりました。

 また、19章の「手続き型から宣言型・集合指向へ頭を切り替える7箇条」も強く印象に残っています。私はC#でプログラミングの学習を始めたこともあり、手続き(処理の流れ)指向で考える癖がついてしまい、SQLに対しては取っ付きにくいと感じ、手続き型の発想でクエリを書いてしまうことがありました。本章ではそのような考え方から集合指向の考え方に切り替えるための7つのポイントが紹介されています。本章で挙げられている7つのポイントはスマートなSQLを書く上で非常に有用です。SQLを書く際に意識するべきことが本章に簡潔にまとめられているので、付箋を貼っていつでも振り返ることができるようにしています。本書には、SQLを覚えたばかりの方はもちろん、慣れている方にとっても新しい発見があると思います。SQLに興味のある方におすすめの一冊です。

4. 達人に学ぶDB設計徹底指南書

 3の著者であるミック氏によるDB設計に関する本です。DBの論理設計、物理設計について初級者にも分かりやすく解説されています。また、設計のバッドノウハウ、グレーノウハウもまとめられており、やってはいけないこととその理由についても理解できるようになっています。各章の終わりには演習問題があり、本書を読んで得た知識を活用して問題を解くことでより理解を深めることができるようになっています。

 私は実務でDB設計に携わったことはありませんが、データベーススペシャリストの資格を取得する上で本書に助けられました。本書はデータベーススペシャリストの試験で問われる内容についてもカバーしています。例えば、3章の「論理設計と正規化」では、第1正規形から第5正規形まで、正規化の手順や特徴が一つずつ詳細に解説されています。また、4章の「ER図」では、IE表記法、IDEF1XでのER図の描き方が解説されています。本書は試験対策のための本ではありませんが、合格に近づく上で重要になるDB関連技術に対する理解を深めることができるという点で、非常に有用です。DB設計に興味がある方だけでなく、DB関連の資格の取得を目指す方にもおすすめの一冊です。

5. SQLパズル

 SQLのパズルブックです。著者はジョー・セルコ氏ですが、訳は3、4の著者であるミック氏によるものです。SQLのクイズが75問掲載されています。クイズを解くことで楽しくSQLのテクニックを学ぶことができます。クイズは1問目から順番に解く必要はなく、クイズの内容を確認して興味のあるものから手をつけることができるようになっています。クイズの題材については、例えば、顧客テーブルから特定の条件を満たす顧客の情報を抽出する、といったような実務に繋がる実践的なものが掲載されています。問題に対する解答は複数用意されており、正解に辿り着く様々なアプローチを学ぶことができます。また、本書に掲載されている解答に拘らず、よりスマートな解答方法がないか自分で考えてみるという楽しみ方もできます。

 私は3を読み終わった後に、本を読んで得た知識を技術として定着させることを目的に、本書のクイズに取り組みました。3で知識を習得しつつ、本書を問題集のような形で活用することで、SQLのテクニックをしっかりと身につけることができます。SQLに自信がある方や、3を読み終わった(読んでいる)方におすすめの一冊です。



以上になります。少しでも興味を惹かれる本がありましたら、手に取って頂ければと思います。

執筆者:竹内皓政 システムエンジニア