12月から仕事内容が変わり、業務中にプログラミングする機会がほぼなくなりました。しかしテレワークで業務中の空き時間は主にデザインパターンの勉強をしてプログラミングスキルを磨いています。
今回はデザインパターンを学んでいる目的について紹介したいと思います。
デザインパターンを学ぶ目的
デザインパターンは過去に何度か勉強してどのパターンも解説を読めば、
「あ、このパターンか。思い出した」
とすぐに理解できる程度でクラス図やサンプルは覚えていません。
今回は各パターンの名前を聞いただけで思想やサンプル、クラス図を思い出せる様になることを目標として勉強しています。
デザインパターンと言うとGoFのデザインパターンが有名ですが英語版のwikiではそれ以外にも色々あります。以下はwikiのスクリーンショットです。

僕は主にCreational, Structural, Behavioralのデザインパターンを勉強中です。
以前に設計関連の本を読んで
「経験だけでは到底得られない思想だな。専門書による勉強と経験を積まないと良いソフトウェア開発はできないな」
と思いました。上の画像の数多くのパターンを見て腰が引けてしまうかもしれません。ですが、1つ1つパターンを学んで覚えるだけで着実にプログラミングスキルは向上します。
僕の経験上、パターンを勉強しなかったら一生得られないオブジェクト指向の考え方や設計の考え方が数多くありました。ソフトウェア設計の知識は数学の公式並に難しいとさえ思います。
自分で公式(パターン)を発見するには無理がある。しかし公式(パターン)を理解するには時間が必要だが理解して使える様にはなる感じです。
フリーランスPG, SEのスキルに差が出るのはやはり業務時間以外に学習しているかが大きいでしょう。
最後に
デザインパターン関連の勉強が一段落ついたらPythonの技術系サイトに載せたいなと思っています。