While attending Flatiron School, and during my time of job searching, I’ve made my way back to insights and practices I had during my time as a musician. Here are 10 lessons I learned from playing music for 10 years.
1. Practice the fundamentals.
As a band kid, this meant practicing my scales during every session. It also meant practicing exercises like overtones in order to improve my sound. I had several books dedicated to basics like this that I would play through a little bit every day. While it doesn’t sound like much, this type of practice opened the door to me playing a wider range of difficult songs in various key signatures, as well as made me a better sight-reader.
When it comes to coding, practicing the fundamentals should mean that we don’t dismiss the simpler aspects of our chosen programming languages. For example, even though I’ve already learned the basics of JavaScript during bootcamp, I’m currently going through another JavaScript course on Codecademy. The things that might have slipped my mind, or not been as important during the fast-paced environment of bootcamp, are now solidifying themselves in my mind. I’m being reminded of techniques that make coding easier or simpler.
Fundamentals in coding can also be overarching concepts that apply to many languages, such as concepts related to Object Oriented Programming. Studying these concepts will make learning other OOP languages that much easier.
2. Take it slow.
When I would practice as a band kid, I would take competition music and slow it down to about half the suggested tempo. This allowed me to focus on the smaller details such as correct articulation and dynamics. I found this especially helpful on more technically difficult pieces, ones that required me to play more difficult patterns at a faster tempo. Going slow helped me gain muscle memory as well.
With coding, we should start creating projects that are relatively simple. This doesn’t mean that we have to only follow tutorials or not start our own projects because we feel we don’t know enough yet. It just means we should save anything that feels overly complex for later. Starting with less complex projects will allow us to give ourselves the time to hone the basics. For example, I’m currently coding my personal website, and I’ve chosen to do it from scratch. As a result, I’m getting the chance to really understand some HTML and CSS fundamentals, learn more about accessibility, learn some design concepts, and get practice with making my site responsive - things I didn’t have time to focus on during bootcamp.
3. You learn from experience.
When it came to competing for Region and All-State bands, I didn’t know what I needed to improve on in relation to my competition until I actually competed for the first time. After competing, I learned more about skills that I needed to practice more, and how I handled my nerves in high-stakes situations. I was able to take the experience and come up with a plan to tackle some of the things that I faced in competition, such as how I would handle my nerves the next time around.
There are so many things we could possibly be preparing ourselves for when it comes to interviews, but we can’t do it all at the same time. Every time you go in for an interview, whether you do well or not, you learn what you do well at, and what you can practice more of. I’m currently making a point to practice at least one new algo everyday because of an interview where I struggled on a more difficult algo question that was thrown at me. Use interviews as a way to assess which skills you’ll practice more often.
4. Practice performing.
When practicing music, it’s easy to stop playing and start over any time you mess up. This is something you can’t do in competition or during concerts, though. I knew that if I didn’t practice performing, I would inevitably stop during competition if I were to mess up. And for me, messing up could be the tiniest blip. I had to practice what I would do in a scenario like this, basically putting myself into a competition mindset, so that I didn’t make these mistakes for the real thing.
You should do the same for interviews. Nerves are a common part of interviewing, but there are certain things we simply can’t do in the middle of one. For example, while it’s okay to think about an answer, it’s not good to pause for an extremely long time like you’re caught off guard or never thought of a particular question before. Practice what you would do in this scenario. In this type of practice session, tell yourself that you’re not allowed to pause for more than 5 seconds or so, and improvise if you truly can’t think of a good answer. Odds are, your answer is actually pretty good, but you’re caught up in a perfectionistic mindset. Answering eloquently in a high-stress situation will come with time and practice, but we can also make sure to practice common interview questions semi-regularly until we’re comfortable and happy with our answers.
5. Immerse yourself in the right environment.
In school, I would practice for several hours a day because I had nowhere else to be and pretty much nothing else to do. My mom was a teacher and started work earlier than my siblings and I started school. As a result, we were dropped off more than an hour early and waited outside of the band hall until the band director arrived. We’d then practice until we had to be in class.
I also didn’t have a car, so when I had an early release my senior year...I went to the band hall and practiced until I had jazz band rehearsal. Pretty sure I wasn’t allowed to be on campus during that time, but… no harm, no foul.
If you want to reach certain goals in coding, make it difficult to do anything but code (in a healthy way, of course - see my blog post on prioritizing your hobbies). You’ll be putting more time into coding without even thinking about it. As a result, your skills will increase exponentially.
6. Give yourself breaks.
Back in high school, I never allowed myself a day off from practicing. I thought that if I skipped a day, my playing would suffer because of it. This was a bit extreme. I couldn’t even skip practicing on holidays like Christmas. As a result of this over-practicing, playing the saxophone became more of a chore than something enjoyable.
We should especially make sure to apply this to coding. Technology is constantly evolving, so we are constantly having to keep up and learn new things. While this is great for someone like me who thrives on novelty and challenges, there can come a breaking point. Especially once we are in a work environment, we shouldn’t be coding all day and all weekend. This could cause burnout, and is something we should be careful about. Don’t practice to the point of not even enjoying the thing anymore.
7. Find a mentor.
My high school didn’t receive a ton of funding. As a result, I never received private lessons, which was a thing at larger schools. My family also didn’t have the money to schedule our own private lessons, so I did what I could with the resources available to me. However, when I got to college, I finally had the chance to sign up for private lessons. I learned so much, and realized there was still so much I could improve upon in my playing. Even small changes, like keeping my fingers closer to the keys, or slightly changing my embouchure for a better tone, could make me a better musician.
When it comes to coding, try to learn from mentors, and get different perspectives on how to solve certain problems. You never know what you could learn!
8. Don’t be afraid of being a beginner.
Try new things! We can’t grow if we stay stuck in our comfort zone. My very first blog related to coding was about what I had learned as a musician. At some point, I developed the identity of a “good” saxophone player, and it prevented me from wanting to venture out and learn new skills related to playing my instrument. I didn’t want to be bad at a new skill, which would interfere with that identity I built for myself. As a result, playing became boring because it wasn’t about having fun anymore. It was about being a “good” player. While increasing our skills does open up doors and that sense of accomplishment is a great feeling, we shouldn’t let some image of ourselves being “good” anything get in the way of exploring and learning new things.
When it comes to coding, don’t be afraid to break your code. If something works, see what would happen if you changed certain parts of your code. If something breaks, you’re learning more about why something works when it does. Take a look at my previous blog post about this topic called “If it ain’t got errors, break it!”.
9. Have fun.
Relative to my last point, as a band kid, I had to be careful not to get caught up in being a perfectionist, and playing music the “correct” way. I reminded myself why I continued playing the saxophone in the first place, which was because I genuinely enjoyed it. I also eventually made sure to experiment and be a little bit silly with my playing sometimes.
When it comes to coding, we shouldn’t be so caught up in improving that we forget why we chose this career path in the first place. Every once in a while, sit down and work on a project just for the heck of it.
10. Be consistent.
Way back in high school, I didn’t even realize when I was improving at playing the saxophone. So how did I get better when that wasn’t really the focus at first?
I was consistent about practicing.
Trust that if you’re being consistent about coding, even just writing one line of code a day, the rest will fall into place. You’ll continue learning, you’ll improve, and people will start to notice.
I hope this was helpful! I try to challenge myself to balance these types of articles with more technical topics, but these kinds of blogs are just so dang fun to write! So I hope you enjoyed it. What’s an activity that’s given you unique insights into your coding habits?
Top comments (2)
This is a great article and makes a lot of very good points. I really liked, "I had to practice what I would do in a scenario like this, basically putting myself into a competition mindset..."
That is definitely true. As a matter of fact cognitive scientists have discovered that the way people practice is what makes them pro or stay amateur. They discovered that amateurs would practice what they can already do, but pros practice the things they cannot do. There's a great book all about this called The Talent Code -- Greatness Isn't Born. It's Grown. Here's How - amazon link.
Thanks for sharing this. Really great.
Thank you! Adding that book to my reading list!