Category: Ideas

Code Club

So over the weekend a couple of neurons fired as I read through the blog postings of codecraig.

Code Club FlyerMy wife belongs to a couple local area book clubs and in my own secret way, I think I’m kind of jealous.  Once a month she heads out to someone’s house, or hosts a meeting at our place. About a dozen ladies come over and drink beer and talk about which ever book they were reading – standard book club stuff. I usually take the kids out for pizza or head over to the playground for a couple hours. Anyway, here’s the noise that I dropped on google buzz.

So I have a proposition…inspired by the blog postings of one codecraig, I propose “Code Club”. Imagine book club but rather than reading books we focus on reading and understanding code… Multiple languages, Multiple open source projects, Anything goes. Maybe bi-weekly, meetup at each other’s offices, coffeeshops, houses, whatever. We follow the standard book club model but focus on the code yall…and the beer. Folks who can’t be there can skype in. Thoughts?

Some ideas on format and structure:
Members propose code to read;  jquery, flare, groovy’s swing builder, android boot process etc. Group agrees on topic/code. Guidelines for selecting code should be focused on complexity and sloc. The intention is to obtain enough of an understanding about a significant library, feature of a lib (spring’s use of dynamic proxies for example) It will be important to limit the size of the code we are reading so that we can collectively arrive at an in depth understanding of the code within 2 weeks. At the end of the 2 week period we get together to discuss the code, drink some beers, fire up our IDEs in groups of 2-6 and step through the code discussing. Perhaps code club keeps a blog with reading list, schedule and take aways from each 2 week period.

I think that another catalyst for these ramblings was a work encounter I had last Thursday. While working at my client’s office space I was asked to look at some 3rd party code and  explain its internals to some people who had never worked with that particular technology.  I was a tad nervous because the people who I was to explain it to are some of the most brilliant engineers I’ve encountered. So, it was basically an opportunity for me to shine or to look like a total moron:) So I sat down to the code, a multi-module project spanning all the tiers, with a text editor and half a dozen eyes watching me. Fortunately, my current level of code reading skill was enough for me to dive in and explain things in about 10 minutes – The client was pleased.

So there it is: the value of being able to read and understand code quickly. And of course being able to quickly understand a codebase is job number 1 when you are new to any software development team. I know that I have been guilty in the past of not deep-diving into my project’s code, rather, electing to walk down the hall and ask the guy who has. But that’s a total bitch move and it’s plain old unproductive. Over the years I’ve worked to get myself out of that nasty habit. My hope is that Code Club will be a place where everyone who values good code can learn from one another and super charge their code reading skills.