Masha Reko - Apprenticeship Blog

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

Day 27: Self-Evaluation Revisited

I took one hour today to sort of reflect on what I’ve done so far, and maybe adjust my schedule accordingly. Yesterday I wrote about the importance of planning, but retrospectives are just as important, I guess. So let’s quickly dive into the famous six categories and see what’s going on in each of them.

Testing

I’d say I’ve made quite a bit of progress in the frontend testing area, which was something I did very little of in the past. Headless browsers turned out to be fun in their own headless way, and visual regression testing tools were quite straightforward and easy to use. I’ve also made some improvements when it comes to TDD, mostly thanks to our regular morning katas. I kind of understand what the idea behind it is (see picture bellow), however, I still wish I was more confident with “thinking small”; I can’t seem to get rid of jumping straight into the core of the problem instead of taking smaller steps towards the solution. Next week I will try to dedicate more time to this, with the help of a book called Test Driven Development By Example by Kent Beck (who, interestingly, was the guy who invented TDD!).

TDD

Software Design

When it comes to software design, I’ve been working on my least strong area, which is Functional Programming Design Principles. It’s all still quite fresh in my head, as I only started a few days ago, but that’s fine. I also did some refactoring through katas, which proved to be a more challenging task than I thought. There were times when I’ve spent hours trying to understand what the code is actually supposed to do, before being able to make even a slightest modification. I was quite happy with the results most of the time, though. However, one concern still remained:

Refactoring

Communication

Ah, my most favorite category of them all. As the matter of fact, I did make a step or two towards getting better at it. I did my first apprenticeship talk last Friday, which turned out better than I expected. Overall, I think I’m getting better at the whole talking thing; at the very least, I am getting a tiny bit more relaxed. Which is awesome. This blog also helps me to express myself when I can’t do so by speaking, and it’s been quite an enjoyment to write it every day. In the future, more talks await. And more blog posts of course.

Social Skills

Agile Methods

In this category, I mostly tried out some practical stuff, such as pair and mob programming. Both turned out to be a bit less productive and a bit more fun than I expected, but that might just be my first impression. And also I noticed how I suddenly forget how to type when people are looking at me (but that might be more related to the above category). I am planning to start reading a couple of books on Agile and Lean software development, but I might save those for the Business phase, when I start visiting different departments.

Mob Programming

Learning

Here I mostly focused on my new programming language, which is Scala. As I mentioned a couple of times before, I’ve been working on my 99 Scala Problems challenge, where I’ve reached number 63. It’s going a bit slower than I expected, but only due to having other stuff to do at the same time. However, this week I’m giving another chance to the Functional Programming in Scala book, as I believe I’m finally ready for it. I’ve noticed while doing the katas that I’m getting much better at the whole functional programming paradigm, so I guess it’s time to put that to a test. Of course, I will be continuing with my 99 problems whenever I catch some time. All in all, I am really starting to like Scala (I know I will regret saying that soon enough).

Tail Recursion

Tools

And finally, tools. I went back to my precious Docker last week and did a bit of a revision on its basics. Hopefully in the next weeks I’ll find some time to dive a bit deeper in it and try out some more advanced stuff. On the other hand, I’ve been kind of neglecting bash again. I guess it just doesn’t reason well with me. No matter how much I try, I can’t find it in me to like it, and that’s that. Which is not to say that I won’t continue trying. Currently I am reading this Learn Bash The Hard Way book. I like doing things the hard way, so who knows - perhaps this book does it for me in the end.

Bash Script

It’s been really cool going back to my self-evaluation matrix and seeing how much I’ve improved in just one month. This apprenticeship program has been very rewarding so far, and hopefully it will continue to be so. I will do my best to keep it up, as always. Anyways, enough with planning and retrospecting. Time to get back to work!