Leetcode Mediums
Practicing Scales
“What is it you do to train that is comparable to a pianist practicing scales?” is a fabulous question asked by Tyler Cowen (no relation). I’m not a musician, I don’t really understand the mechanical benefits of playing scales.
But I think part of it is practicing isolated fundamentals. There’s no nonsense. No trying to figure out which note comes next. Just play the next note.
Leetcode Medium
Leetcode Mediums allows practicing the fundamentals. Solving medium level problems require small programs of 5-100 lines without nonsense. No worrying about libraries, testing, or centering divs. Easy problems are usually one liners (not bad for language trivia!) and hard problems usually involve algorithms unused in daily code or “clever tricks” which also rarely comes up in daily code.
If you have a different way of practicing scales as a programmer, post below or send me a confidential email.
I don't know if we can conflate these two things. Scales build muscle memory, so you can add the creativity without thinking about the mechanics later. It also builds endurance and awareness of how to manage your body's efforts, like an athlete training. Programming isn't about doing the same thing over and over, but about developing insights and new knowledge. Can you get better at writing the same, or similar programs over and over again, absolutely. Is that what we do? Not so much. If they're similar we copy and paste, or we find that we'll do the same thing more than a few times and write tools to help.
Maybe a direct comparison to scales is a math test with 100 problems in the same space. Is that effective at helping you learn a basic math op better? Or once you have the concept after the first 10, does it bore you and you tune out?