Last weekend I participated in the Global Day of Code Retreat here in Austin. I was impressed at the diveristy of participants, the overall good nature of those there, and what I was able to learn even while pairing with relative beginners.
When I got there, there were 3 women and 3 men in the room. By the end of the day there were about 6 women and 10 men. At least 6 of the participants grew up in foreign countries. It was, for a computer meetup on a Saturday, a fairly diverse crowd. I was impressed.
We started off by pairing on the Conway’s Game of Life problem. Initially we did no tests (intentionally) and just cowboy coded it. We got pretty far, but it was difficult to verify results by hand. We ended up spending a lot of time figuring out how to display the board. We progressed through several exercises: No loops, 5 lines of code limit, tests-first, no objects, and behavior/rules oriented approaches. Every exercise had some level of frustration, but they were all enjoyable and I learned a lot.
By far, the most frustrating part of the day was having to delete your code. I did so, but I was surprised at how attached I became to a set of code in 45 minutes. How much more likely am I to become attached to an implementation I’ve worked on for 3 weeks?
I also learned a lot from doing the “no objects” exercise. It was incredible how fast we were able to implement once constructing objects was out of the way. I was amazed at how much it pointed me toward Functional programming paradigms like filters, etc. And it made it much easier to see what kind of object to create rather than coming up with some idea of what should be before you created it. When I got home I CMD-Z’d my way back to this exercise and examined and refactored it. I know that’s against the spirit, but I really enjoyed it and learned a lot from it.
All in all, a great day. Good food and good fun and good learning. Hope to do a virtual code retreat sometime soon either with coworkers or random pair partners.