ソフトウェア設計の学び方について確実に言えるのは、ソフトウェア設計能力が磨かれるのは、自分の設計について成功と失敗を認識した時だってことだ。

箱と線をガチャガチャ並べることは情報を整理する上で必要な事ではあるが、その妥当性はコードを書くことでしか検証できない。

そして、書いたコードの妥当性はそのソフトウェアを使って実際に問題を解決することでしか検証できない。

加えて言うならば、書いたソフトウェアが最初に定義した問題を解決し、その利用者から更なる機能の追加を期待されることでコードを変更する時に初めて分かることは多い。

要は、ソフトウェアを運用し保守する過程で、設計の成功と失敗を認識するので、さっさとリリースして、ユーザに使ってもらうんだ。

とはいえ、自分の経験だけで成長するのははっきり言って難しい。課題の認識や分析を効率化したり、ある種の手順をショートカットする方法は無いだろうか。そこで思い当たるのが、ソフトウェア設計を学ぶためのインプットとして技術書や他人の書いたコードを読むという活動だ。

書籍を使った学習の方法

まずは、安価に買える技術専門雑誌を読もう。別に全部の記事を読まなくていい。興味が持てる記事だけ読めばいい。重要なのは生活サイクルの中に技術的なインプットをする時間を組込むことだ。

この生活習慣ができるまでは、高額な技術書を買うのは我慢だ。SNSを見ると、何やら難しくて高度な書籍を読んだ人たちが偉そうにしているのを見るかもしれないが、自分とは関係ない話だと思った方が良い。

良かった記事の筆者をSNSで追いかけまわして、彼らの話題をフォローするのもいいだろう。また、良い記事には大抵参考文献があるものだ。この参考文献は後で本を買う時に使うので大切に記録しておこう。

技術書というのは、読むべきタイミングがある。早すぎても遅すぎてもいけない。読むべきタイミングが来ている本は、目次を見るだけで知的好奇心が湧いてくるものだ。素晴らしいことに最近の書籍は、購入しなくてもインターネットで全ての目次を確認できることが多い。目次を見て興味がわかないようなものを買っても読まずに積んでしまうことになるので買わなくていい。

ただ、まるで逆のことを言うようだが、専門的な書籍は出版部数が少ないので簡単に絶版する。欲しいと思った時には買えないなんてことはザラにある。よって、目についた時が買い時で、読むかどうかは後で考えれば良いという考え方もある。もし、あなたがそれなりに金を持っていて、そういう考え方なら沢山の技術書を買って業界に貢献して欲しい。ただし、Kindleで買うのは意味がないのでやめること。Kindleで利用権を購入していても絶版したら読めなくなる。PDFか何かで手元においておける形態の書籍を買うことだ。倉庫に余裕がある生活をしているなら、紙の印刷物を買うのはもっといい事だ。

ソースコードを使った学習の方法