Expectations

Reading time ~2 minutes

So far the plan is to ease me back in to ruby (before fully immersing me in it)

I started off with a simple code kata, Coin changer. TDD, of course! I paired with my mentor, Jim Suchy.

This was extremely useful, just working through the steps with Jim reinforced to me the practical application of red - green - refactor cycle. And how cruicial it is to follow through with it, even if some little steps might seem obvious and unnecessary.

Just recently I watched a video, where Jim Weirich is solving the Roman numerals kata live and explaining each step. While pairing with Jim (my mentor, not Jim Weirich :) I realised that he was guiding me into using the same approach. This is a basic approach where you derive the result by first letting repetition in your method to become very apparent, to the point when it becomes easier to see the pattern before you make that further step and make the method more succinct by refactoring.

So that was fun and I completed the kata with a sense of great satisfaction that from the very get go I am practicing TDD - a default way of writing code at 8th Light. Of course, I did not expect any less and it is a great feeling when reality lives up to your expectations!

After completing the kata I was ready to move on to the next task - the set up of this blog. But there was an unexpected interjection from Mateu, a fellow apprentice.

Mateu and I both started apprenticeship on the same day, and I am really glad that there is someone else here who is going through a very similar process as myself at the exact same time.

We both worked on Coin changer separately, so when on the next day Mateu asked me about how I solved the kata, it was cool, but I didn't want to spend too much time on the discussion, because I wanted to make sure I am getting other stuff done too.

But he didn’t just want to see the code, he wanted me to talk about it, he wanted to see my commits (!!!). He wanted to see the whole sequence of changes that I made. We discussed my steps, and it really allowed me to ponder and realise how each step inevitably forced me to solve the problem in one way and not the other. And how accidental complexity creeped its way into my code at times and how it prevented me from arriving at the solution even sooner.

This interjection reinforced the mental process of how to drive tests in a way that would help me guide myself into the solution. Unexpectedly, reality exceeded my expectations!

My next challenge is to solve a Mastermind game in Ruby and there will be no expectations, none...

PS Mateu actually wrote a blogpost and recorded a screencast of his solution to the Coin changer kata. Check it out!

Express blog posting

Published on June 05, 2015

Micah's cohort

Published on May 27, 2015