While blog-surfing tonight, I came across this entry on Inside the Machine. This has me thinking…

What’s the most fun you’ve ever had… programming?

I think for me, one of my more fun projects was taking part in CodeFest ’99 at OOPSLA, during my sophomore year of college. I was part of a team that had to implement a coffee machine design from the DesignFest team.

So… what made this project fun?

  • Working on a team: I had two other people who I had to work with that I had never coded with before. We hadn’t really prepared for our trip, but we knew that personality-wise we’d be fine together. But do personalities always line-up to coding styles? Surprisingly, in this case, they did. We were able to work together quite well. We figured each other’s strengths and weaknesses and were able to cover pretty much everything amongst the 3 of us.
  • Learning a new language: In the few days that we had to implement the design, I picked up enough Java and Java Swing to be able to run with it. If I get to learn a new language while doing something interesting, that definitely makes programming more fun for me. And yes, we did choose the language because of the coffee-Java relationship.
  • Taking on other challenges: Besides learning Java, we also had to work on changing our code towards the end, when they decided to implement more features in the coffee machine. Other curveballs were thrown throughout the conference, but I think our team handled them well.

That event made quite an impact on me, in ways that I can’t fully explain here, but it meant so much to me, that I figured when I returned to developer life, I would return to OOPSLA. This year, I will be doing just that, heading to Nashville at the end of October to participate in DesignFest at OOPSLA. This time, I look forward to being on the other side and putting my design skills to the test and seeing other people’s design styles. I haven’t seen much in the way of CodeFest mentioned, but I hope that it happens, as it was a great learning experience that I will always remember.