Reading, Writing and Practice

So my plan of study is read, write and practice. I want to read analytically and syntactically. I want write to reflect and to share what I understand. I want to practice with a purpose.

I don't think I have read an analysis of a software development book that sought to describe what the book said and then ask so what? What can I take away from this book and start applying? What changes if I apply the things in this book? The ways advocated by the authors of these books almost always say, if you do what I say you will write better software. I want to see if I do actually write better software if I follow there advice. I'm also curious if they all have the same definition of "better software".

I don't think I've seen anyone consider the books on software development as if they are in conversation with each other. I'd like to show the conversation that the authors are having. Sometimes the conversation is explicit where one book is explicitly advocating for something different than what another book is pushing. I want to listen to that conversation. Other times it's implicit and I would like to make those conversation explicit. I think it would be interesting to see what comes out. I've started with TDD by Example by Kent Beck and Growing Object Oriented Software by Nat Pryce and Steve Freeman.

The way I'm going to read will require a lot of writing. A lot of note taking and summarizing. A lot of taking things apart and putting them back together. Ideas will be compared and contrasted. Techniques will be broken down.

There will also be writing that reflects on it all or nothing at all. Writing that explores whatever comes to mind having digested all those ideas. Writing that plays with the concepts and tries to make them dance partners.

Fully exploring the ideas in the books will require putting them into practice. I plan on using code and architectural katas. Side projects and even problems from my day to day work. The books often provide exercises to practice on as well. I plan on using those but supplementing with exercises and problems not found in the book as a way of checking what's in the book. One thing I must make sure to do is always practice with a purpose. I must lay out what I am trying to get at when I practice something. I expect this to be difficult but will be the best way to understand the ideas.

That's the plan, analytical and syntactical reading, with lots of writing and practice.