Unsubstantiated Neural Ramblings

Flow vs. Work

I learned the piano during my school years. My piano teacher always emphasized that I should break down the piece as far as possible. It was crucial to only practice two to four bars one-handed and only assemble a section once I knew how to play the parts.

So, playing the piano mostly involved practice. I only performed a piece a couple of times during the piano lesson or to some audience. In the years with the piano teacher, I advanced my skills and completed pieces every six weeks.

When I went to college, I got a keyboard and continued playing. In five years, I completed about three easy pieces. Admittedly, I played for thirty minutes per day compared to one or more hours before, and I didn't have a teacher who would push me. I mostly enjoyed replaying pieces from the previous phase.

After graduating, I started a career in software engineering (while still playing piano). I applied my skills in Python and SQL to machine learning pipelines. The first years felt productive, and I implemented many features. It was effortless to select a requested feature, employ a familiar programming language and design pattern, and call it a day.

Eventually, I realized my programming skills were stagnating. To advance, I began exploring new languages and design patterns. For instance, learning some Rust or Haskell was a challenging endeavor. There were times it took an hour to get your code to compile, unlike quickly developing a feature in Python.

The experiences expressed in the previous paragraphs made me think about flow and work. Csíkszentmihályi's work on flow is particularly influential in the software community (e.g., How to get in the flow while coding and why it's important). It's a state of mind where people disconnect from the world and become immersed in creative and productive work. Through playing the piano and developing software, I learned more about flow and its downsides. I started to see flow as the application of existing skills. Being in flow means, however, there is too little advancement in skills. If I want to grok something, it is hard work. The kind of work that makes you want to clean your bathroom instead. To develop skills, one also needs to seek challenges, to enjoy the next level of flow once mastered.