30歳からのプログラミング

30歳無職から独学でプログラミングを開始した人間の記録。

『仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん』を読んだ

今まで読んできた Docker の入門書や入門記事のなかで一番分かりやすく、ようやく Docker に入門できた気がする。
Docker を学ぼうとして何度も挫折してきた人におすすめ。

本書の「はじめに」に書かれている通り入門者をターゲットにしており、それを徹底した内容になっている。
フルカラーで図が多く、1 ページあたりの情報量は少ない。また、脱落者を減らすためだと思われるが、同じ内容について何度も記述しているため、本の厚さ(約 320 ページ)のわりに、得られる情報は少ない。
そのため、多くの情報を求めている人にとっては不満だと思う。本書を読んでも、本当に初歩的なことしか得られない。
しかし、自分のように Docker に入門できず、Docker が何なのか理解できず、苦しんできた人にとっては、素晴らしい本だと思う。ちゃんと入門させてくれる。

Docker の入門記事は次から次へと出てくる印象があるが、それくらい理解しづらい技術ということなんだと思う。
Docker には様々なメリットがあり、そして様々なところで使われており、だから分かりづらいのかもしれない。人によって、記事によって、文脈が違いすぎる。何のために何を期待して Docker を使っているのかが、違いすぎる。そしてそれに対して明示的に説明されない。だから分かりづらく、記事を読んでも文意や論点を掴めず却って混乱する。
そんなことを考えていたら、本書にまさにそういった趣旨のことが書かれていた。

Docker の理解を妨げる要因は、個々のメリットだけが語られて、「なぜそのメリットや性質が発生するのかの仕組み」を、語る機会が少ない点にあります。(p36)

本書ではきちんと、「仕組み」について語っている。
Docker とはどのようなもので、それの何がありがたくて、何のためもので、どういう仕組みで動いているのか、順を追って説明してくれている。
もちろん初心者向けの説明であり、詳しい人から見るとかなり不十分な説明なんだと思う。だが初心者にとって大切なのは大まかな仕組みを頭のなかに描けるようになることであり、細かい知識は後回しでよい。

今まで読んだ入門書のなかにはただコマンドを羅列するだけのようなものもあったが、それでは頭に入ってこない。書かれているコマンドを打ち込めば動作するので何かした気持ちにはなれるが、そのコマンドが何のために行うものなのかは、全く理解できていない。そしてそれでは、記憶に定着しない。
大切なのはコマンドを覚えることではなく、本書のタイトル通り、Docker そのものの仕組みや使い方を理解することだと思う。それさえ分かっていれば、コマンドは知らなくてもよい。必要になったときに調べればいいし、調べた結果出てくるコマンドの説明も、理解できる。自分の目的(やりたいこと)に見合ったコマンドなのかも判断できる。Docker に限らないが、その技術の概要さえ分かっていれば、演繹的に考えることができるようになり、理解や思考がスムーズになる。

メリットをただ羅列するのではなく、なぜそのメリットが発生するのか、どういう仕組みでそれを実現させているのかが書かれており、その技術を使ったときに具体的に何が起きているのかを自分なりにイメージできるようになる。それが良い入門書だと思うが、本書も自分にとってそういった「良い入門書」だった。
これまで Docker に入門しようとして失敗してきた人は、ぜひ本書を読んでみて欲しい。