This past weekend I participated in my first ever Code Retreat in Fort Collins, CO. After all the dust has settled I can look back on the experience with both a good and bad perspective.
The way this retreat worked was each of us was paired up with another programmer and we tried to solve Conway’s Game of Life in the form of a working program. It was stressed that the goal wasn’t to complete the code but to analyze the process and experience each time.
We rotated pairs in this fashion 5 times and each time switched programming languages.
I had some interesting takeaways from this experience:
- .NET is still considered a second class citizen. I got the impression people still looked down their noses because I wasn’t running Linux and the latest version of Ruby/Python. Surprisingly enough when I brought my Java skills to bear it got a similar result but with more of a “bloated and inefficient” comment. However, maybe this was just the group I was with.
- I need to find projects at work where I can branch out into other languages to become a more “well-rounded” programmer. This ties into the above but is not *because* of the above. It is still my assertion anti-Microsoft or anti-.NET sentiment is born out of its cost versus its functionality. But I am a firm believer in “right tool, right job” and granted some of these languages might work better for certain problems.
- Visual Studio rocks, especially with ReSharper. Watching the other programmers refactor was a painful process with vi (although I’m sure super-expert vi gurus do it better, VS/ReSharper doesn’t force you to be an expert). If I were to transition I’d look first at IronPython or IronRuby to be able to use VS (although I DO know vi).
- Writing code, deleting, and then writing it again can often yield better results. Each time we approached the problem we got closer to the goal.
- Watching Python/Ruby coders do Test Driven Development helped me gel the concepts more and I will be taking that back into my work development.
Overall the experience was a good decent one. In the end I had a hand in creating the same application in Python, Java, Ruby, and Clojure. It was a great experience being exposed to that much diversity in code and syntactic sugar.
My only regret is that there wasn’t another .NET developer I could work with as we could’ve done something amazing. And, after further consideration, I’d make the drive to Denver or Colorado Springs for a better experience.