When I was a teenager, I wanted to learn guitar. My sister was in a Ska band and their guitar player seemed seriously cool. He would perform at concerts in front of all my peers. The music they performed was awesome. And I thought it would be so cool to become the lead guitarist of an awesome band. I convinced my parents to take me to Guitar Center to buy an electric guitar. I also signed up for guitar lessons from a guy who worked at Guitar Center, too.

At the time, one of my closest friends, James, also decided that he wanted to learn guitar. His parents got him an acoustic guitar, and he started taking lessons with a really talented teacher name Laurie. He attended Berklee College of Music, and he was also a professional touring Jazz Guitarist. He didn’t need to give guitar lessons. He just did it because he liked teaching. 

It’s safe to say that James’ teacher was better than mine.

My guitar teacher taught me things really quickly. We jumped right into chords. I started playing bar chords, and fairly quickly I could play most of the chords used in most songs. Given that most pop songs are made up of the same four chords, I was capable of playing some cool stuff with basically zero knowledge of music theory and no understanding of what actually made up a chord.

Meanwhile, my friend James was learning at the same time and was miles behind my pace.  He was doing things like reading sheet music, which I thought was absolutely silly and pointless. During this time, he built up a solid foundation in music principles, and it took him over a month before he started playing the chords I was playing.

But a short time later, James surpassed me.  

And not even by a little bit. He ended up miles ahead of me. When we would talk about music, he would say a bunch of things that I didn’t understand at all. Not only was he capable of playing pop music, but he also could play Jazz, Blues, Folk and more. To make things even more embarrassing for me, James was even composing songs of his own.

I was still playing the same four chord songs.  

When I went to my guitar instructor (the one from Guitar Center), I asked him about the stuff James was talking about. He told me that I didn’t need to worry about that stuff.  He recommended that I continue to focus my energy on playing the songs that I enjoyed instead of learning the fundamentals.

I asked James about his instructor Laurie, and shortly after found out Guitar lessons with Laurie were more expensive than the lessons from my Guitar Center instructor. But at this point, it was pretty easy to see why, so I convinced my parents to let me switch to Laurie.

I took guitar lessons from Laurie for several months.  He would teach me fundamentals and ask me to practice them. I would go home and practice my guitar, but I couldn’t break the habit of practicing the same 4 chords I learned before. Whenever it came time to practice the new type of work that Laurie assigned me, I’d lose motivation to play and do something else.

Eventually, I stopped taking guitar lessons. I never got further than the skill level that I reached after a few weeks of lessons.  And it wasn’t because I didn’t spend the time playing the guitar. Because I did. I was motivated enough to keep playing those 4 chords. But the motivation was fickle. When it came to pushing myself to learn the fundamentals that would unlock my potential, I lacked the discipline I needed. I wasn’t ever able to adjust the attitude I developed with the Guitar Center teacher, even after I switched to Laurie.

Guitar remained a big part of James’ life. He went on to play concerts to live audiences.

I haven’t touched a guitar in years.  

Most people have probably had a similar experience. Whether playing the guitar, trying a new sport, learning to code, or really attempting to do anything new. You’re motivated enough to reach a certain point in the learning process. But you’re unable to maintain that motivation and do things the right way, and it becomes really easy to just give up.

If you’re learning to code, avoid the mistakes that I made while trying to learn guitar.

After seeing how much better James got at guitar than me, moving forward I decided to take a vastly different approach to learning anything new. I dissected the key principles that he used to succeed at learning guitar and began to apply them to my own experience in learning other complicated things.

So when I started to learn how to code, I followed in the footsteps of James. And it made an incredible difference.

If you’re learning to code, make sure that you too follow in the footsteps of James.

Here’s a framework to help you do it:

1. Practice consistently.

James had a routine about how and when he would practice the guitar.  He didn’t leave it up to chance. He knew that he had to put in the work to improve his skills. So committed a minimum amount of hours he was willing to dedicate each week to learning guitar.

By making a commitment to a certain measurable amount of time each week, he put himself in a position where he needed to hold himself accountable.

So when you’re learning to code, make sure you practice consistently. This is the only way to continue to make progress and learn more every single day.

2. Practice things that are outside your comfort zone.

Rather than spending his time practicing things he was already good at, James worked at the edge of his comfort zone.  He worked on improving the skills that needed improvement, instead of working on the things he found easy. This meant that the things he found difficult eventually became easier and easier.

So when you’re learning to code, work on the edge of your comfort zone. Is there an aspect of coding that you feel like you don’t really understand?  Focus your energy here.

The developers who grow the most are the developers who take the responsibility they feel most uncomfortable doing. If you get the opportunity to work on a team, I’d always suggest volunteering for work that makes you feel nervous. It’s where you’ll learn the most.

3. Get a solid foundation in the fundamentals before moving onto the next thing.

James initially learned and mastered the fundamentals before moving onto more and more advanced topics. By having a solid foundation in the fundamentals, he gained a solid footing and was able to acquire more advanced skills much easier down the road.

In programming, getting a strong grasp of the fundamentals of programming is so important too. Learning things like algorithms, data structures, and how to perform computational transformations is so important when trying to switch careers. And it will serve you well in the technical interview process.

Don’t fall into the trap of trying to skip this step. You don’t need to jump ahead to the more advanced, flashy, cool technologies that are trending on HackerNews. There is time for this later on.

Don’t underestimate the importance of being a solid programmer who is able to deconstruct problems and use all aspects of the programming language they’re working in. A solid grasp of the fundamentals is the number quality of all in-demand developers.

4. Pick the right instructor

While I picked an instructor who was incapable of teaching the fundamentals because he didn’t have a grasp on them himself, James found someone with a depth of experience and knowledge at a deeper level with years of experience.

When it comes to coding, the best teachers are seasoned programmers themselves. These developers won’t let you skate by without getting a solid grasp of the fundamentals. They’ll push you to work outside your comfort zone, and they’ll be able to answer your questions from a position of knowledge instead of a perspective of not knowing better.

5. Become adaptable at your craft

James wasn’t laser focused on becoming a certain type of musician. Instead, he learned how to play multiple different genres. This is an essential trait in almost every field.

Technology is evolving rapidly. Given the pace of innovation in software engineering, it’s never been more important to be able to react to the changing environment. Rather than focusing on becoming the:

  • Best ruby programmer you can be.
  • Best JavaScript programmer you can be.
  • Best iOS programmer you can be.

Focus your efforts on how to be the best well-rounded programmer you can be.  It’s why the best programmers ultimately learn multiple programming languages (and are known as polyglot programmers).

Since technology is evolving rapidly the technology you learn today is less important than setting up the framework of teaching yourself new concepts as you go.

6. Most importantly, know that motivation by itself isn’t enough.  

The most common question that I get from people who are looking to transition careers into web development and launch version 2.0 of their lives is this:

“How do I stay motivated to learn everything I need to transition careers and become a web developer?”

The answer is this:

You don’t.

Motivation gets you started. But it takes discipline to stick to your path and achieve your goals.

Society glamorizes the role of motivation in helping you transform your life. It’s often seen as the secret ingredient that all successful people have.  

My thoughts? Motivation is pretty irrelevant. Lots of people have it. Discipline, however, is the number one driving force behind people who are actually successful. And it was the driving force behind James’ success to learning guitar.

Discipline is the mental fortitude of putting in the work that will help the most in the long-term, even if there are things that you would prefer to do in the short-term. The most successful people don’t have more motivation than you. They just act based on discipline, instead of relying on something that is inherently unreliable.

Now that you know what it takes, you’ve got this.  

Switching careers and becoming a web developer isn’t incredibly easy. But it’s not that complicated, either. There are a ton of structured paths to help you do it. You just need the right framework and the right amount of discipline to make it happen.

So, what are you waiting for?

Did you like this story? If so, then subscribe to our blog to get stories like this in your inbox.

AuthorKen Mazaika

Ken Mazaika is the CTO and co-founder at Firehose. Previously, he was a tech lead at WHERE.com (acquired by PayPal) and a member of the PayPal/eBay development team in Boston.

Leave a Reply

Your email address will not be published. Required fields are marked *