how to get a job coding in 2022, part 2

2022 update: this advice still applies in 2022. I’ll update anything if it gets outdated 🙂

Picking up from part 1, your starting point for coding comes from answering 2 questions:

  1. backend or frontend?
  2. which programming language?

Having introduced question 1 in part 1, let’s move on to question #2: programming language. As backend or frontend use different languages, we’ll address each discipline separately.

backend

There are far too many backend languages to list here, but I’ll start with my personal recommendations for 2021, in order (with some languages I’d recommend avoiding at first):

  1. Elixir/Phoenix: I’ve heard nothing but love and praise for developers of Elixir (programming language), and Phoenix (the web framework built on Elixir). If you want to pick something that’s fun to write and has a great job demand, you can’t go wrong with Elixir/Phoenix. It gets my pick for highest recommendation for most people.
  2. Go: Go, a.k.a. “Golang” (which is more searchable), is a wonderful programming language whose demand is on fire and only rising. Though it’s not the most popular backend language today, its rapid growth seems to suggest it may be soon. Droves of companies are moving from older systems to use Go because it’s well-designed, efficient, and has a ton of tools that were designed to make programming for the modern web simple and fun. But best of all, Go has an easy learning curve while still teaching good habits!
  3. Node.js: JavaScript for backend is called Node.js. If you are thinking about keeping the door to frontend open, this should probably be your choice. But if you are intent on purely staying backend, I think the other options are better.
  4. 🤷 Ruby on Rails: Neutral recommendation: Ruby on Rails is still in use and has its dedicated community, but growth has stagnated and its future is unsure. Many companies are migrating away from Rails in favor of Elixir/Phoenix, Go, or something else (with Phoenix being made up of a large diaspora of former Rails devs). Soft recommendation to avoid unless you have your sights set on a specific job that you know 100% is Rails.
  5. 🤷‍♂️ Rust: Rust is my favorite programming language, hands down. I love writing it, I think it is/will transform programming as we know it, and I am a huge believer in its future. I also think it’s beginner-friendly, which only adds to its appeal. But while I think Rust as a language is mature, in the industry at large it’s only being used today by experimental companies and early adopters. Job demand now and the next few years is impossible to predict. If you have an infinite timeline on getting into coding, Rust is definitely the long term investment, but I wouldn’t recommend it to people trying to get a job today (in 2022).
  6. Java: Java is essential for Android devs, but for the web I’m seeing more companies move away from it in favor of newer technologies. I’d recommend avoiding it unless you want to possibly go into Android development.
  7. Python: Django was a great Python web framework that had its time, but Python for backend is obsolete. Don’t get me wrong—Python is a wonderful language that has a bright future ahead of it in data analysis and some niche areas of programming like fonts and generative art. But since we’re talking only about the web, please do not learn Python for this purpose.
  8. PHP: avoid. Even though PHP is consistently top 5 most popular programming languages and will remain for a while, I strongly recommend not learning it as a first language. It is very easy to fall into bad habits, and you’re also competing with jobs with millions of other PHP developers, often with lower pay than other languages. Come back to it in the future if you really want to (but I’ve personally not met anyone that does).
  9. COBOL: no. Just, no.

There are hundreds of other languages not listed here, of course. If it’s a popular language (C, C+, etc.) and not listed above, assume it’s not used for web (unfortunately there’s not a dual-purpose language used for both web and game development, unless Rust becomes both!). There are also some other niche languages which are used for web (Erlang, Clojure, Elm, OCaml, etc.), but they are niche and I don’t recommend them for beginners because the path to landing a job will be very tricky. My recommendation is limit your starting point to one of above, and after getting some professional experience with one of those, then feel free to branch out.

backend next steps

So, say you have picked a language to try out, and want to get started! What do you do?

  1. Attend meetups! Attend any in your area you can find. With COVID, many are online, so you can even attend remotely.
  2. Get plugged into your local dev community. Search for [my city] developer Discord and join. Ask questions, and meet new people in the same boat as you.
  3. Find a beginner’s tutorial in your preferred language. Click on the links above to find some good starting tutorials.
  4. Once you’ve learned a bit, practice using a site like Codewars. Start with the easiest exercises (8 kyu). If you never practice programming, it’ll never click!
  5. Watch YouTube tutorials on your language of choice. You may find the explanations helpful!
  6. When you feel that you’re starting to get a handle on your language, work on a project! For backend, try and build a REST API using your chosen language. Google search for [language] build REST API and see what all it entails.
  7. Lastly, post code to GitHub! Landing your first job will require you having a GitHub profile, and code to look at. Can be big, can be small. Can be simple exercises. Just upload as much as possible to GitHub!

frontend

Good news and bad news: as a frontend dev, the good news is your languages are already decided for you: HTML, CSS, and JavaScript. But the bad news is that for HTML, CSS, and JavaScript, there are a million different ways to compose these, from JS frameworks to HTML preprocessors to CSS utilities. It’s a lot to learn! But as always, start with the basics.

  1. Learn HTML. Simple, right?
  2. Learn CSS. Now we’re cookin’!
  3. Learn a framework* such as React, Vue, or Svelte. My personal opinion is I find Vue to be not only the easiest to learn after learning HTML, but it’s also powerful, widely-used, and teaches good habits.

* Note: my advice to learn a framework first is considered controversial to some, with many recommended tackling plain, raw JavaScript instead. I advocate for JS frameworks in the beginning for the following reasons: there are more clear ways to accomplish things, it teaches good habits, the communities are easier to tap into, and most importantly, companies hire for frameworks so jobs are easier to find.

frontend next steps

So, how do you practice frontend?

  1. Attend meetups! Attend any in your area you can find. With COVID, many are online, so you can even attend remotely.
  2. Get plugged into your local dev community. Search for [my city] developer Discord and join. Ask questions, and meet new people in the same boat as you.
  3. Create your personal site—your blog, about you, your interests, etc.. You’ll need one to apply! Practice building your own site, and iterate on it (inspiration).
  4. Push your site to GitHub so others can see (employers will look at this)!
  5. Deploy your site online (this is the fun part!)

backend & frontend: landing the job

It’s never too early to start searching for backend jobs or frontend jobs. Even if you don’t apply, look at the requirements. Look at what’s expected. Search GlassDoor and the internet for as much info as you can find about their interview process. And when you meet half of the requirements, apply anyway (what’s the worst that can happen?). And above all, don’t get discouraged; landing that first job takes time!

I can’t say this enough: there is plenty of room for more coders, there’s never been a time to join, and you (yes, you!) matter, and would make the coding community better.