2022 update: this advice still applies in 2022. I’ll update anything if it gets outdated 🙂
I’ve been programming professionally for almost 15 years now, and I frequently get asked how to get started coding. But as I am an old geezer that got started in a different time (we had to FTP uphill both ways and in the snow!), so the story of how I got started is more trivia than advice in 2021. However, there’s never been a better time to learn coding than right now. Job demand is on fire, and coding is something you can teach yourself to do with only discipline and a few months of dedicated time.
This blog post is an attempt to have an evergreen answer to “how do I get started coding?” rather than answering it over and over again. I’m only giving you my experience and opinions, for free, no strings attached (so you can all stop asking me!).
why learn to code?
Coding has a huge number of benefits:
- High pay. Depending on your city, you can reasonably expect to start at $50–70k as a beginner, with full benefits. And within a few years easily make 6 figures.
- No credentials. No degree is required, and most coders are self-taught. All that’s needed is practice and tapping into your local coding community for support & guidance.
- Job security. Once you get your foot in the door, expect to never have to worry about employment for at least the next 20–30 years.
- You can still follow your passions. Coding isn’t some boring mathematical job that robs you of creativity. Nowadays every industry needs coders. So whether you’re passionate about animals, art, music, astronomy—you can actually code for any business! Think of coding as a gateway to working at your dream company.
“ok… so what’s the catch?”
You might be wondering why people aren’t flocking to all become coders, and saturating the market. If the grass is so green, why does it seem so hard to get started?
The answer is complex, but from my perspective here are the biggest reasons why coding is so elusive to many:
- There’s no definitive starting point. Coding is rapidly-evolving every year, and there are many different disciplines within coding. The materials get outdated constantly, and it’s easy to drown in the competing information on learning to code (yes, even this blog post may get stale! But you can use this as a current marker for now).
- There are gatekeepers. You’ve probably heard the stories of toxic tech and rampant lack of diversity. Unfortunately, there are many people in the industry that want to keep newcomers out because it’s so good right now. But you know what? Those jerks can kick rocks because you (yes, you!) deserve to be here more than those dumbwits. And I believe in you.
- The “continual learner” mindset is hard to learn. I’d say this is the biggest mental barrier people have to coding. In school, you’re taught that once you know something, you know it. You repeat it, and practice it. You may even have a job now that you feel you mastered. With coding, there is no mastery, only continual learning. This can be discouraging, feeling like you’re always “behind” or “dumb.” I’ve been doing this for almost 15 years and I still feel dumb constantly. But once you stop trying to attain “mastery” and instead become enamored with learning and discovery, you’ll start to grasp what it’s all about.
so, where do I start?
My recommendation, being a web developer myself, is to start with web. In my opinion, web development has the lowest barrier to entry, greatest diversity of job titles, some of the highest pay, period, and is in the most demand right now.
Compared to web, your other options include game development and data analytics. I don’t recommend starting with game development because there are far fewer open positions, the industry is rife with burnout, and the learning curve can be much steeper. I don’t recommend data analytics either becasue it requires you learn programming and statistical analysis at the same time. Data Analytics also has far fewer positions available (only certain companies hire this role).
Anyways, to start, you only have to answer 2 questions for now, which I’ll guide you through:
- backend or frontend?
- which programming language?
⚠️ Notice how programming language isn’t the first choice? This is a common pitfall new learners fall into: not being sure which language to start with, and where it’ll take them. That’s why the backend vs frontend question is vital to answer first!
backend or frontend?
Let’s fast-forward to applying for your first job. You’ll apply for a position as either a backend or frontend developer. So it’s important to pick one, and stick with it until your first job. You can always change your mind later! But the quickest path to coding is committing to backend or frontend in the short-term.
Frontend is a little easier to explain than backend, because it’s what you’re seeing right now! Frontend developers manage what the users see. This means handling user interface, interactions, text inputs, animations, loading, and even the design of the website. Frontend requires a keen eye for design, and a very visual mindset.
Probably when most people think about websites, they think about frontend. But frontend is just the tip of the iceberg! Sitting behind what you see is a massive, complex machine of servers, and networks, and databases, and a ton of amazing engineering that makes the internet possible. If frontend comprises the visible part of the web, then backend is the invisible.
You may like frontend if you…
- …enjoy art, design, and typography
- …love animation
- …have an interest in psychology & user experience
Conversely, backend is what you don’t see, but powers everything. It’s the massive iceberg under the water holding everything up. If you are new to programming, there are probably entire layers to the internet you didn’t even know existed, and it’s all backend.
Backend developers manage servers, databases, deploying code, and even automating things to make things simpler.
You may like backend if you…
- …enjoy logic and organization
- …want to create lightning-fast experiences
- …have an interest in puzzles
If you’re unsure which to start with, I generally recommend backend as a default, and frontend only if you are a visual person.
Now, mind you, frontend isn’t the “creative” choice—they’re both creative and both equally challenging. But not all creativity is visual, much like art vs music.
So now that the backend vs frontend question is planted in your mind, you’ll want to learn a bit more about what you’ll need to learn to apply to that first job. We’ll cover that in part 2!