niszetの日記

アナログCMOS系雑用エンジニアが頑張る備忘録系日記

自走プログラマー ~Pythonの先輩が教えるプロジェクト開発のベストプラクティス120を読んだ

幅広い層を対象にしている初心者の次のステップの本

主に先月読んでいた自走プログラマーが読み終わったので簡単に感想を書いておきます。

出版社さんのページはこちら。サポートページがあり、正誤表がありますね。

gihyo.jp

1章から順に、コード実装、モデル設計、エラー設計、システム設計、やることの明確化となっており、章ごとに内容が基本的に独立しているのでどの章からでも読めます。また、章の中の各節についても相互に関連しているものもありますが独立して読めるものが多いので、ちょっと時間が空いたときに少しずつ読む、という事で読み進められると思います(私はそんな感じで読み進めた)

1章ではPythonでコードを書く上でのノウハウなのでPythonの内容ですが、5章のやることの明確化は言語に依らない内容になってるなど、詳細度(というか具体例の度合い)が章ごとに違います。とはいっても基本はPython+Djangoの話だと思った方が良いかな。

内容的には初級以降~中級以上の内容で、ある程度コードがかけるとか、各設計をしたことがあると丁度良さそうです。逆にその章の内容に対して完全な初心者(はじめたばっかり)だとピンとこないかもしれません。私はその点でモデル設計はピンと来ない(モデル設計や関連することをしたことがない)ので、今回は飛ばしてしまいました。いつか必要になる日が来るかもしれませんが…。 逆に、コード設計、エラー設計、やることの明確化は私にはすぐに役に立ちそうかなと思います。そういった取捨選択がしやすい構成ですね。

扱ってる項目は多岐にわたりますが、散らかってる感じはせず、読み通してみても個別のトピックを見ても読みやすい構成になっていると思いました。文体の揺れを感じないので全体として文章がまとまっている感じですね。 内容のすべてがドンピシャに当てはまる人というと対象が絞られる印象ですが、逆に内容のいくつか~大部分がヒットするという人は多そうという印象です。この本は実務に近い内容で読んだことをすぐに活かせるという人も多いのではと思います。

初心者が一通り基礎が出来た後に次に読む本、中級者向けの本というのがあまり世の中にはないとよく言われますが、お仕事的に考えれば、まずは自分の与えられた業務をこなせるようにすること、そして周囲の関連する内容やその情報を知り、吸収していくフェーズになるかと思います。 そういう意味で、この本はまさにタイトルの通り「自走」出来るようになるための取っ掛かりになる本なのではないかと思いました。

…とはいえ、私自身はソフト屋さんではないので、上で書いたことはお仕事のアナロジーで考えた話+ちょっとコード書いた経験からの感想ですが。

要望的なやつ

ちょっと思ったのですが、本書は参考になるサイトや書籍などの情報が節の間に書かれていて、あとから探すのがちょっと大変じゃないかな…と。どこかに(再度)まとまってると良いのではないかなとちょっと思いました。

中級者向けの本の話。

ここからは蛇足。初心者向けの本というのはこの間書いたように、情報量必要十分の最小限にまで絞って、迷わずにゴールまでたどり着ける内容と分量で書かれているとよいかなと思うのですが、 中級者は上に書いた通り求められるスキルがより広くかつレベルの高いものを要求され、自身のタスクが自分で完了できることや自身のタスクの周辺、関連、前後のタスクとの協調やらなんやらを求められていきますね。

そういう意味で、中級者向けの本というのはこの本のように情報量が多い本というのが良いのかなと思います。そういう意味では技術評論社さんの本は比較的情報量を多めにする傾向があるので中級者向けに良い本が多い印象がありますね。

上級者だとこれを技術的に突き詰める話とエッジケースに対応できるような対応力みたいなのが必要になると思うので、それはそれで書くの大変だよな…って思いますが(そこまでくると書籍はあんまり必要ではないかもしれないけど。

…という、読書日記でした。

追記

Twitterのやりとりで、上に書いた「要望的なやつ」について、情報をまとめたサイトのリンクをこのページに貼る許可を著者の清水川さんからいただきましたので、こちらに貼っておきます。

scrapbox.io

書籍内にあったリンクや参考文献、本書の目的や思いなどが載っていてこちらも情報沢山です。ありがとうございます…!