今日は書店に行って以下の書籍を買ってきた。
実践Python 3と書いてあるが、いわゆるPythonでこんなことができます!系の本ではなく、内容はデザインパターンをPythonに落とし込んだ設計論の書籍。
購入のきっかけと目的
最近基本的なPythonのコーディングに慣れて色々作れるようになってきたのだが、作るものが本格化するにつれてコードのメンテナンス性が課題になってきたのが購入のきっかけ。
最初のうちはスクリプトメインだったんだけど、最近開発を進めているのはtkinterで画面遷移を含むデータベースアプリ。
こんな感じ↓
すでにコードは300ステップに到達しようとしていて、関数を整理したりクラスを分割しながら工夫しているものの、今の行き当たりばったりの設計だとそのうち手に負えなくなりそうなので、メンテナンス性を向上させるためのヒントを得たいというのが書籍購入の狙いだ。
読み始めてみた感想
読み始めてみたところ、今の自分の実力ではかなり難しく感じる。(そもそもオライリー社の書籍はだいたい難しく感じるのだが。)
実は過去にデザインパターンの書籍はいくつか読んだことがあるけど、どれも中途半端な理解で投げ出している。
今回も投げ出してしまうかもしれない。
では無駄なのかというと、そうとも限らない。
振り返ってみれば、過去に難しくて放り出してしまった本で得たわずかな知見が大きなヒントになって、その後のプログラミング能力が飛躍的に向上した経験がある。
例えば、オブジェクトにオブジェクトを生成させるという考え方はデザインパターンの書籍を読んでいなければ思いつきもしなかっただろう。当時デザインパターンそのものは何ひとつ記憶に留まっていないが、それでも私が理解を諦めた書籍から得た知識はその後のVBAのコーディングにかなり大きな影響を与えている。
自分の実力以上の書籍に挑戦する価値
自分の実力を超えた本を読んだ場合、筆者の言いたいことが完全には理解できない。
特に実力と大きく乖離していると、さっぱり分からないということが起きる。仕方がないのでネット検索を併用しながら、たぶんこういうことを言っているんじゃないか?という推測を立てながら、分からないなりに懸命に理解しようと読み進める。
実力と乖離した書籍の読後感はあまり気分の良いものではないかもしれない。半分も読み進めることができず、結局何も分からなかったという感想を持つかもしれない。私も過去にそういう経験をたくさんしてきた。
しかし、振り返ってみて分かるのは、当時の読書経験から何も得られなかったわけではないということ。
当時の自分にとって、読書経験から得られたものは中途半端なガラクタだった。だから正確に言うと有益なものは何も得られなかったと思っていたということ。
私が当時ガラクタだと思っていたものは、実際には貴重な宝物だった。いくつかの経験を経てその価値が分かるようになった。
あの時、あの書籍を読んでいなければ、私のスキルは初心者のままだっただろう。
情報を得るタイミングと、それが意味を持ち始めるタイミングがズレることは良くある。
だから、自分の実力以上の書籍でも十分に挑戦する価値があると思う。
容易に読める本ばかり読んでいたら、なかなか飛躍的な成長は望めない。
たまには難しい本を読もう。
以上