How to get a job coding in 2022, part 2
Updated Oct 2022
Picking up from part 1, you have picked a discipline of backend or frontend, and are now wanting to pick a specialization. For beginner purposes, we can tie specializations to programming languages, as you’ll need to be able to say you’ve worked with 1 programming language to start applying to jobs (which we’ll get back to later).
There are far too many backend languages to list here. But based on my experience working with web companies, I can provide some general recommendations for starting out:
- ✅ Elixir/Phoenix: Fun to write, modern, has a great job demand, and gets you dabbling in almost every aspect of backend. This gets my top pick of best language to learn starting today.
- ✅ Go: Go, a.k.a. “Golang” is growing rapidly year over year, and more positions are opening up all the time. Go is “lower level” than Elixir/Phoenix. This means everything takes longer to write, but the end result will be about as fast and efficient as it can possibly be.
- ✅ .NET: I know the least about .NET. But I do see a lot of job postings for .NET devs, and it has a strong community which translates directly into jobs. I’d lean towards the other choices being better unless you wanted to keep the door open to developing Windows apps one day in the future (or you just love Windows in general).
- 🤷 Rust: Rust is my pet language that I love dearly, and I use it as much as I can. But for beginners, I can’t recommend starting with it today only because the job demand needs to increase.
- ❌ Ruby on Rails: Ruby on Rails is still in use, but its growth has stagnated and many Rails jobs are only for maintaining existing infrastructure. But even those companies are looking to migrate to Elixir/Phoenix as soon as they can, so you might as well skip a step and learn that instead.
- ❌ Java: Java is a dinosaur that is being taken out of web backends left and right. Java for Android development is its primary use these days, but even that’s being replaced by newer technologies like Kotlin.
- ❌ Python: Python for a web backend is obsolete. Python is still a staple when it comes to data analysis, statistics, and modeling, and should be pursued if you’re only doing that. But for backend, its days are long gone.
- ❌ PHP: Avoid. High competition, low pay, and PHP teaches horrible programming habits.
After poking around on a few sites, and possibly reading some tutorials, you’ve picked a language. Now what?
- Attend backend meetups. This is essential. You meet potential employers, you get plugged into people that can help, and there’s usually free food. And they’re actually pretty fun.
- Get plugged into your local dev community. Search for
[my city] developer Discord. It’s a place to ask questions and share knowledge in between meetups.
- Start with the basics. Consume all the beginner tutorials you can.
- When you’ve got the basics down, practice problems on Codewars. Start with the easiest (8 kyu).
- Watch YouTube tutorials.
- Start your first project. For backend, try and build a REST API using your chosen language. Google search for
[language] build REST APIand see what all it entails.
- Post code to GitHub. You’ll need a GitHub profile to apply to jobs, so might as well do that now.
- First, learn HTML. This is the foundation of the web, but it was designed to be simple to use. So this shouldn’t take too long.
- Next, learn CSS. You can learn this alongside HTML.
- Lastly, learn a JS framework* such as React, Vue, or Svelte. My recommendation for beginners is Vue as it’s intuitive, powerful, and has a ton of great learning resources.
* Note: you’re welcome to learn normal JS before tackling a framework. But just know that you’ll need to know some framework to apply to jobs, so starting with a framework is a shorter path. Just as you can drive a car without understanding how it works, I view JS frameworks the same way—they just get you from A to B faster. Sure, understanding all the parts will make you better, no doubt about it. But I don’t see it as essential, and you can always develop that deeper knowledge later.
After finding some stepping stones to learn all of the above three, here’s what’s next:
- Attend frontend meetups. Especially in the beginning, this is essential for career growth. Meet employers as well as peers that are great resources for mentorship and learning.
- Get plugged into your local dev community. Search for
[my city] developer Discord. This is how to stay involved with the local community in between meetups.
- Create your personal site. Make a blog, about you, interests, etc. (like this one! See? I practice what I preach!). Employers will ask you for your site (inspiration).
- Post code to GitHub. Employers will look at this when you apply for jobs.
finally: landing the gig
So, having dealt with disciplines and specializations (programming languages), the last piece of advice I can give is to search for jobs (for both backend and frontend).
Read the posting. Look at the requirements. Look at the expectations and experience needed. The more job postings you read, the better you’ll understand what employers are looking for, and how you should spend your time preparing for those roles.
When you are starting to feel more confident in your abilities, just apply (even if you only meet half of the requirements). Interviewing is a skill to develop, same as programming. In fact, there are even ways to train for this. The more comfortable you get applying to places (and getting rejected), the more power you hold in the workforce. Because as much as your employability is determined by your programming ability, it’s equally determined by your interviewing ability.
By now, hopefully you’ve been exposed to the core questions involved in navigating a tricky career path. But the tough part is over—you now have a much better sense of what you don’t know. And whittling that away is now your job.
Good luck in your pursuits! And just now that there is a bright, beautiful, (well-paying) career at the end of this road for you. And it’s closer than you think.