CodeMash 2009: Day 0

Today was the CodeMash Precompiler and I’m glad I came early.  The precompiler, just like CodeMash itself, was a mix of longer sessions on a variety of technologies and languages.  What made the day different than the rest of the conference was that most of the sessions today were half day or full days sessions rather than the hour long sessions most conferences have.  Plus, today’s sessions were generally VERY interactive.

I was torn as to what to go to today, but given the spirit of CodeMash I choose to go to the Ruby 101 session by Jim Weirich and Joe O’Brien (two big names in the Ruby World).  The session was organized as a self-paced set of exercises that  emphasized testing and taught the basics of Ruby.  They called these exercises Koans (a koan is a short story that Zen masters used to teach their students) and each koan consisted of a set of tests on a particular topic.  For example, there was a koan on arrays.  When you ran the ruby file each of the tests would fail.  You would then step through each test and correct it to understand how Ruby worked.  This turned out to be a really great way to approach teaching the language.  I really enjoyed the session.

The format reminded me of the PowerShell in Action book where the author stepped through an example and wrote it in a way that you could be running PowerShell off to the side and try each new concept. For someone who learns well by doing this was a great format.  If you are interested in getting a hold of the koans you can download them from http://onestepback.org/download/rubykoans.zip.  Note that the file may move as Joe and Jim planned on having the content improved and posted with an intro.  Watch their blogs (linked above) for more information.

After lunch the Ruby 101 session continued, but since it was a self-paced approach I figured I could do the rest of the koans on my own (while I wouldn’t have access to Jim and Joe to answer questions like in the session, I knew I could abuse Leon with any issues I ran into). 

Speaking of Leon, he was presenting a TDD talk so I hit that in the afternoon.  I’ve been writing unit tests for a while, but I was hoping to get some insight from the talk (or the attendees) regarding questions I had with some of the theory or edge cases of testing.  Leon did an excellent job going over the basics while dodging many of the religious dogma.  During the session Leon had the attendees pair up and do some unit tests on any given domain that they wanted to.  For this part of the session I ended up pairing with Rick Kierner and Phil Japikse.  I was able to discuss the questions I had with Phil and Mike Eaton as well.

It was a great day!  Looking forward to tomorrow.