7~9月振り返り
久し振りになってしまいました。
やったこと
- 書籍
- はじめて学ぶソフトウェアのテスト技法
- 知識ゼロから学ぶソフトウェアテスト
- ソフトウェアテスト技法
- テスト駆動開発
- 実践テスト駆動開発
- The Art of Software Testing
- リファクタリング
- エクストリームプログラミング
- レガシーコード改善ガイド
- Agile Testing
- オブジェクト指向でなぜつくるのか
- クリーンコード
- アジャイルソフトウェア開発の奥義
- パターンハッチング
- ソフトウェアアーキテクチャ(POSA)
- エンタープライズアプリケーションアーキテクチャパターン
- ドメイン駆動開発
- 不正アクセス対策
- 体系的に学ぶ 安全なWebアプリケーションの作り方
- おうちで学べる セキュリティのきほん
- この一冊で全部わかるセキュリティの基本
- 動かして学ぶ セキュリティ入門講座
- セキュリティコンテストチャレンジブック
- サイバーセキュリティプログラミング - Pythonで学ぶハッカーの思考
- ハッカーの学校
- HACKING:美しき策謀
- Object oriented software construction
今回はテーマが月ごとに1つずつありました。それぞれ7月テスト/TDD・8月オブジェクト指向・9月セキュリティです。このテーマで勉強を始めるにあたって結構な不安がありました。それは設計という正解のないテーマに対して、成長を実感できるか、本を読んだだけで何も変化を感じずモヤモヤして終わるのではないかというものです。結論から言うと心配していたことは全く起こりませんでした。つまり、3ヶ月前の自分と比べて今書いているコードが段違いにきれいになっていることを実感しています。具体的にどうしているかは別の機会に紹介したいと思いますが、TDDを積極的に取り入れています。主なメリットは 1) 仕様漏れを実装前に発見できる 2) 内部実装を知る前にあるべきインターフェイスを検討できる 3) テストさえ通れば中身がどうあれ動くことを確認できるなどです。また今年の頭に読んだもののモヤモヤしていたパターンという分野があります。そのモヤモヤへの答えはケントベックのTDD入門にありました。これまで"良い設計"が実装されるものだとずっと思い込んでいたのですが「設計と実装は互いにフィードバックする」というきれいなコードを書く人にとっておそらく常識といえる考え方に出会えたのはこの三ヶ月で最も価値のあることでした。パターンとの付き合い方がわかったことで本に書かれていることと実際とのギャップが埋まった感覚があります。
セキュリティに関してはテーマは非常に面白かったものの時間不足でした。せめてCTFに参加してみたかったです。
良かった点・反省点・改善点
- ✅いっぱい読んだ
- オブジェクト指向に関わる有名な本は一通り触れることができたと思います。おそらくこの分野の本であればどんな本でもすっと読めるだけのバックグラウンドが揃ったのではないでしょうか。
- ✅即実践
- 仕事にダイレクトに活かせる分野だったのでフィードバックが早く、学んだことを効率よく身につけることができました。
- ❌本しか読んでない
- インプットのチャンネルを増やしたいと思う次第です。
- ❌学習のプランが大雑把だった
- 目標を設定するのが難しかったし、前提の知識が少なかったため想像しにくい部分もありましたが、やはり目標があってこそ効率的に学習できるので、プランニングの時間をしっかりとるべきでした。
- ❌アウトプットできなかった
- 正解のないテーマに対してどの角度で切り込んでいけば、本に書いていることをただ紹介するだけではない切り口を見いだせるのかずっと考えていたものの結局思いつくことができませんでした。この先もコードを書く以上常に向き合っていくテーマなのでいつか自分の言葉で語れればと思います。
- それと同時にアウトプットを仕組化する必要を感じています。
この三ヶ月は旅行に熱心になっていて、勉強が途切れ途切れになってしまったのがやや寂しくもあります。今年残り三ヶ月も頑張っていきます。