Global Day of Code Retreat 2015
Three years…
I finally attended my first Global Day of Code Retreat, GDCR. I first heard about it two years ago but I was out of the country when it happened (now that I think of it, I’m sure I could have joined another GDCR in another place…) Last year I started to look for GDCR around the same time the first time I looked, only to find out the date was moved up a month! This year I was lucky because the software craftsmanship meetup made an announcement! GDCR are quite elusive!
Honestly, I heard good things about GDCR from meetups I attend, but nobody really said what to expect. On the day of GDCR, I just brought my computer and invited a few coworkers. One showed up, which was important because nobody at work would have believed me what would happen at GDCR would be knowledgable and fun!
I won’t share what we did during the day, because the first rule of GDCR… just kidding, but if you have experienced GDCR, you know it, otherwise, it will be a nice surprise for you. Here are some thoughts I had from the day:
Personal insights from the retreat
Everyone will get a different experience from a code retreat, here are a few that stuck out for me.
No internet, no programming!?
One thing I have remarked on the past: it’s very hard to program without the ‘internet’ now. Well, I noticed all day that we rarely used the internet to look things up. Using the internet wasn’t required at all. That is definitely one practice I will be using more often in my day-to-day (or at least being distracted by looking things up on the internet during programming.)
Skill level across the board
The skill level of people at the retreat was very wide. Lots of new students of programming and senior programmers too. The facilitator said he only started programming a month before attending his first one! So don’t worry about your skill level.
You no understand my language!? No problem.
In our group, ruby dominated as the programming langauge (it’s very hard to turn
away a language designed for programmer happiness, especially on a weekend
coding retreat!) but in the room there was Java, C#, Javascript, Haskell, F#
Clojure, and more. Not everyone that knew the same language worked together and
that added interesting mix to pairs.
Editor love
There was a variety in tooling and in programming, that means: editors! My setup is very customized to the way I work and heavily oriented to keyboard input. As I run emacs on a linux virtualbox, the mouse is useless. When Connor paired with me, he works in vim the whole time, he had an enjoyable time to get going on my setup, especially with the last constraint. The room was full of different editors. visual studio, vim, emacs, sublime. I used sublime for a few sessions. That was nice to get out of my own space. The caps lock drove me nuts, but once i changed that to a control key, OSX’s internally mapped emacs keys actually made sublime more usable for me. love those secret OSX keys!
Power of pairing
Pairing is a great way to meet other programmers and learn from each other. All those ‘soft skills’ for a programmer really come in and there’s just enough of a challenge that you can see each other do some problem solving. Seeing how another programmer solve a problem is valuable in itself.
If you have read this far…
Definitely attend the next GDCR! It took me three years and I wish I did it sooner. If you have some time before your next GDCR, do some reading by getting the GDCR founder’s book: (Understanding the Four Rules of Simple Design)[https://leanpub.com/4rulesofsimpledesign]. Find a meetup group which you can interact with others. Look for meetup groups related to software craftsmanship.
Three things I learned from this experience:
- I learned that the game of life is HARD. I have observed the game of life as a screen saver before, but never put any thought into its mechanics. Now I realize through its simplicity there’s just enough complexity to confound pairs of programmers all day in any programming language.
- I was surprised that the final constraint got me through the furthest of the whole day. Maybe it was the great programmer I was paired with? Maybe because we were familiar with the problem already? I’ll find out if I have the same results the next code retreat.
- I will carry forward the practice of programming with constraints more often. Most of the time with work, time is the constraint. Programming the same thing over and over with new constraints puts a new perspective on programming.
Looking forward to seeing you at the next code retreat!