code-for-a-living October 5, 2020

Play the long game when learning to code.

Aspiring coders tend to take one of two types of learning approaches. The first involves trying to learn syntax as fast as possible. The second emphasizes understanding above all. It may take longer, but I hope to show how it's better in the end.

Learning to program can be brutal. You don’t know if you’re learning the right things and there just seems to be so much content to learn. Most of us don’t have the time to spend several years trying to nail down programming fundamentals. 

Chances are, you’re concerned with how long it will take you to learn how to code. You feel this pressure to learn as much as you can in as little time as possible. You want to get away from your current role, or lack thereof, and make your way towards finally landing a job that pays you to code.

Aspiring coders tend to take one of  two types of learning approaches. The first approach involves trying to learn syntax as fast as possible. People who use this approach copy and paste their way to completing projects and whiz through courses and tutorials. Unfortunately, many people burn out learning this way and ultimately cannot apply what they’re learning to real world problems. 

The second learning approach emphasizes understanding above all. People who use this approach play the “long game” with learning how to program and aren’t in a rush to learn every bit of syntax. They learn at a methodical pace and ensure they understand each programming fundamental before moving onto the next.

In this post, I’ll take a look at both learning groups and break down the pros and cons of each. By the end of the post, I hope to show you why opting to play “the long game” with learning how to program is the faster, more effective learning approach.

Learning fast will do you wonders (but some harm too)

One of the best parts of learning how to program is that there are a multitude of resources to help you along your way. The internet is chock full of free online courses, video tutorials, and communities of people ready to help point you in the right direction. It’s only natural to want to take advantage of these resources in as efficient a way as possible.

Learning to code fast has its perks. You’re exposed to a vast array of programming concepts and you get the feeling of making a lot of progress in a short amount of time. With so many online resources available, you could complete several tutorials and projects in the course of a day. The biggest perk might be that you can start applying to jobs faster and then land a job offer. 

When I first started to learn how to code, I made it my life’s mission to complete two beginner’s Python courses and finish three different fullstack development projects. I went from printing ‘Hello World’ to writing functions, classes, and register files in a matter of months. I felt like I was learning a lot and well on my way to landing a job. 

However, I soon realized I had to slow down. I started interviewing for programming roles and I failed every technical interview. When interviews didn’t work out, I tried taking W3Schools’s Python quiz and failed miserably. The reality was that I was settling for the short-sighted joy of “completing” courses and tutorials. 

Many aspiring programmers fall into the very same trap I just described. They copy and paste code without understanding it or mindlessly “complete” courses and tutorials. If you can understand and apply what you’re learning, then by all means keep “learning fast.” If you can’t apply what you’re learning, then I recommend you slow down. Start to prioritize understanding and test yourself by trying to solve problems outside of your learning environment. If your course or tutorial is taking you through how to write a for loop, try writing another one with different numbers or naming conventions.  

Learning to code at a rapid pace will expose you to a ton of different concepts and you may even get to interviews and job offers faster. But don’t “learn fast” at the cost of not understanding what you’re learning. When you get to technical interviews, you’re going to be asked questions that test for your understanding, not just your ability to regurgitate syntax. If you prioritize understanding now, you’ll solve interview questions with success and show interviewers you’re ready for the job. 

Play the long game as you learn

If you want to make real, lasting progress in your programming journey, you should embrace a “long game” mentality as you learn how to code. This may mean taking longer to understand a programming concept rather than moving on to the next concept. You may not get to interviews as fast as somebody who’s “learning fast,” but you’ll have a much better chance at acing technical interview questions than someone who’s simply regurgitating syntax. 

The best programmers embrace a “long game” mentality. They aren’t in a rush to memorize every bit of syntax, but instead, focus on real, sustainable progress. They know each programming concept builds off of another one and they don’t move on to another concept until they’ve understood the current one. 

As I was learning how to program, I kept looking for a magical point of arrival where I would become a legitimate programmer. I was in a rush to reach self-imposed benchmarks because I felt like I needed to learn how to code and land a job as fast as possible. That feeling of legitimacy never came by way of completing courses or memorizing syntax in a frenzy. Rather, I started to feel a sense of legitimacy when I began to embrace the “long game” of becoming a programmer. I started to focus on understanding what I was learning and applying my knowledge to real world problems. Concepts like recursion and data structures made more sense because I spent extra time trying to understand control flow and computer memory. 

Realize the “long game” isn’t so long

If you’re committing to a lifetime of learning, why not start now? Start building a solid foundation of programming fundamentals. Each concept will build off the last, and you’ll be glad you took the extra time to fully understand a concept before you move on to the next one. 

Others who are “learning fast” may get to interviews faster than you, but their odds of acing technical interviews and landing job offers won’t be as high as yours. You’ll have spent the extra time building your programming foundation and you’ll be able to apply what you’ve learned to problems outside of your learning context. 

So yes, focus on understanding the concepts in front of you and don’t worry about rushing through the process. Commit to a lifetime of growth and embrace the “long game” of learning how to program. 

Tags:
Podcast logo The Stack Overflow Podcast is a weekly conversation about working in software development, learning to code, and the art and culture of computer programming.

Related

newsletter October 16, 2020

The Overflow #43: Simulated keyboards

Welcome to ISSUE #43 of the Overflow! This newsletter is by developers, for developers, written and curated by the Stack Overflow team and Cassidy Williams at Netlify. This week, we’re coding for the long game, learning the difference between cats and not cats, and translating our favorite JRPGs into English. From the blog Play the long game when…