Masha Reko - Apprenticeship Blog

What we have to learn to do, we learn by doing. (Aristotle)

Day 15: New Week, New Challenge

With most people gone for InnoDays this week, the office is emptier than ever before. Even though I miss the usual noise and banter, people calling each other from opposite ends of the office, and the unavoidable lack of coffee mugs, it is nice to have some peace and quiet every once in a while. Besides, it is a perfect atmosphere for silent reflection and planning.

I had a meeting with my menthor Periklis the other day, where we mostly talked about my current progress in Scala. We both agreed that I may have overdone it in the past two weeks (with concurrent reading of two different books and all). As usual, I wanted way too much, way too fast. Didn’t leave much time for the things I learned to fall into place. Well, nothing new to see there; I guess my tendency to do that is something I am still failing to escape from, after all these years of studying.

Thankfully, it’s still something that can be easily fixed.

Therefore, before diving into more complex things, I decided to stop for a moment and exercise what I’ve learned so far. I had a choice to either work on a small “pet project” or do katas. Since it became clear that I don’t quite understand the concepts of slow and small, there was a realistic danger of having my “pet project” grow into a huge beast that I won’t be able to contain. So I opted for katas. However, in order to make it more interesting, I created a challenge for myself: solve 99 katas from this page (in as much time as necessary).

Honestly, I love challenges like this. It is the only type of competition that I thoroughly enjoy. Competing against others has always been a huge NO in my head. I have always been of opinion that it is better to stand with people, than against them. Therefore, I try not to measure myself against anyone else, but myself - and the person I was yesterday. These challenges provide me with a way to do that, in more ways than one.

So every once in a while, I find an oportunity to create a challenge like this for myself and see if I am capable of completing it. Actually, it’s not even about completing it; here, unlike in functional programming, the value lies in side effects, and not in the end result. A challenge like this gives me a target to reach, but - as strange as that sounds - it does not make that target the ultimate goal. Of course it will give me a sense of success once I complete all 99 katas, but the code I produce will be more or less unusable. Probably no one will ever look at it again, including me.

But if after completing this challenge I get to feel more confident, and start writing better and smarter solutions - that is the only outcome that matters.

Stay tuned to see how it goes :)