Deliberate practice is a super power.
Practicing scales helped me improve my Python fundamentals faster
Fourteen years ago I was a freshman in high school band. I was terrible. Easily the absolute worst performer in a group of over 200 students. Saying I played an instrument would be generous. At the time, I made sounds on a saxophone. Bad sounds.
I remember hearing other students my age play and wondering how they performed so well. It seemed so effortless. They were talented. Naturally talented. I certainly could never play like them.
My life changed in that first year of high school band. My parents couldn't afford to purchase private lessons for me, but an amazingly influential teacher volunteered to teach me for free. I didn't know what to expect.
Through his teachings, I learned just how powerful deliberate practice could be. I rapidly went from the absolute worst performer in my high school to being one of the top performers in my state for Jazz performance.
College Years: Back to the basics
I felt great about my music abilities in high school. I felt like I had good control of my instrument. I was good at improv. I was hungry and excited for the next step.
In 2011, I started studying music education at The University of North Texas, or UNT. UNT is the largest music school in the US. The competition was extreme, and the talent bar was high. World-class musicians come out of this music school. People were serious about practice at UNT. They had whole buildings dedicated to practice rooms.
I quickly figured out that I was outclassed again. Almost all people who had been in the music college for more than a year had a certain mastery of their instrument that was a different level than what I was accustomed to.
In college you’re required to continue private instruction for your instrument, on top of all of your other music classes. In high school, we’d spend the bulk of private instruction time learning new charts, practicing improv, improving tone, etc. I expected more of the same.
I was wrong.
In college I spent the bulk of private instruction time on the basics. Practicing scales.
Scales
When you first learn an instrument you practice scales. You don’t really understand why though. You progress for some years and scales remain a staple in instruction. The way we played scales in high school was haphazardly, lazily, and just to get it done. It was never impressed upon me the importance of why mastering them would unlock another level of musical ability. I knew my teachers thought they were important but I never grokked why.
Out of high school, I could easily play all my major and minor scales. I thought I was “done” with scales so to speak.
At UNT I was taught new ways to practice scales. Instead of starting and ending at the lowest root note for that scale on my instrument, I was taught to play the scale all the way to the top of my playable range, then down past the starting point to the bottom of my playable range.
This was much more difficult. It took a few months of long and consistent deliberate practice to get this down.
After learning my scales through the whole range on my instrument, I had to practice different tonguing patterns on the same set. Different rhythmic patterns. Different volumes. The variations continued. It was a mountain to climb but I did it one day and one practice session at a time.
I wrote out a practice schedule with my instructor. I wouldn’t practice the same thing too often. We spaced it out. Now I know we were doing a form of spaced repetition, a powerful learning tool for mastery.
I’d spend a few hours every day practicing scales. Then a few hours practicing repertoire. It was monotonous at times but cathartic in a way. It felt great progressing.
Fluency
After a few months of this type of practice I began to notice change. My instrument felt different in my hands. Learning new music was an order of magnitude easier. Sight-reading a piece of music felt natural. I could see and feel the patterns come off the pages as my eyes moved across them. I was more confident in my abilities.
Everything got easier. My tone sounded better. I was more expressive. My volume was more dynamic. These weren’t skills I was primarily focused on when practicing. They were secondary, and sometimes non-existent, in my scale practice.
So what happened?
I got out of my own way. I made room for the music to be practiced, and not the syntax. There is a whole order of other important considerations beyond just playing the right notes at the right time in music. Intonation, volume, attacks, and more.
I no longer had to think hard about moving my fingers. I could focus on making the music. The syntax was no longer in the way.
These days, I write software for a living, and I want to focus on making the software, not the syntax.
Software
There is mental overhead in thinking about syntax. Of course, we have IDEs, google, autocomplete, and even AI generated code completion (like Kite). Having to think deeply about syntax is flow-breaking. I want to think about higher level items and not focus on syntax.
To do that, I have to focus on syntax first.
When I started learning programming, I learned syntax. I quickly moved into building things. Learning about API’s, git, back-end development, front-end development, HTTP responses, CSS, build tools, CI/CD, etc. There was so much to learn.
If I needed to remember how to loop through a dictionaries values, google was just a quick click away. I never focused on really remembering the core language.
I remember a lot of Python syntax already, but in the same way that I thought I had mastered scales in high school. There is still mental overhead.
I’ve recently taken the same strategy with Python that I did with scales at UNT. I’m practicing syntax deliberately. I’m learning and remembering different patterns and combinations that happen often. Built in list methods, dictionary methods, list comprehensions etc. I’m taking time in the morning to practice deliberately.
It’s hard to know what to work on sometimes though, I don’t have a teacher like I did with music. Did I really master all the list methods? Do I REALLY know the ins and outs of dictionary methods? How can I track this? Will I remember this in a month?
That’s the problem I’m trying to solve with Deliberate Python. I’m building an application that helps developers master Python fundamentals with deliberate practice.
More to come.
If you’re interested in deliberate practice, improving programming skills, and developer productivity, go ahead and subscribe. I’ll be writing here regularly on those topics.
In the meantime, tell your friends!