TIL #02: Continuous improvement and Scala basics

One of my colleagues often advocates the practice of continuous improvement: a dedication to making small changes and improvements every day, with the expectation that those small improvements will add up to something significant (James Clear). If you resolve to make marginal gains to improve by just 1% every day, this will soon compound into impressive growth.

Compound returns are one of the most powerful forces you can utilise. One example of this is Moore's Law, which has seen computer processing power grow exponentially over the past 55 years. I recently read something which puts that into perspective: if you applied the same rate of improvement to the 1971 Volkswagen Beetle, it would behave like something out of a sci-fi movie today: it would be able to travel at 300,000 miles per hour, it would cost around $0.04, and one tank of petrol would last you a lifetime of driving.

I've decided to try applying continuous improvement to provide some more structure to my own learning habits. By sharing my progress, I hope to gain some accountability for my results.

This week I got off to a good start (maybe cheating slightly) by taking advantage of some training opportunities at work – I completed a three-day Essential Scala course provided by Underscore. In order to prepare for the course, I familiarised myself with the Scala syntax and core concepts by completing the Lightbend Scala Language Professional training online. Some of this was familiar since I've done some statically typed functional programming before, but it gave me a good base of knowledge to build on. Having spent the last year programming almost exclusively in JavaScript and Ruby, I'd forgotten quite how useful it is to have type safety by default.