how to get a job coding in 2021, part 2
Picking up from part 1, your starting point for coding comes from answering 2 questions:
- backend or frontend?
- 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):
- ✅ Go: A fantastic programming language that is rising quickly through the ranks. 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. But best of all, Go has an easy learning curve while still teaching good habits!
- ✅ Elixir/Phoenix: Technically Elixir is the programming language, and Phoenix is a framework built on Elixir. But Phoenix is so powerful and fun to use, it might make sense to start there! Phoenix is already in wide usage, and is growing in popularity.
- ✅ 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.
- 🤷 Ruby on Rails: Neutral recommendation: Ruby on Rails is still in demand, but less today than previous years. Much of the Rails community has moved on to Elixir/Phoenix, and I think that’s the better investment today.
- ❌ Java: Even though Java is in wide usage today, I’m seeing more companies move away from Java to newer technologies like Elixir/Phoenix or Go. Java is still widely-used in Android world, but for web, backend devs seem to be moving on.
- ❌ Python: Django was a great Python web framework that had its time, but I see Python for backend becoming more and more obsolete. It’s a slow language that makes it hard to build high-performance scalable architecture. It’s great for hobby projects and data analysis. But for backend I think Python will fall by the wayside.
- ❌ PHP: avoid. This is a strong opinion here. Even though PHP is extremely popular, and powers many websites, I recommend not learning it as a first language. It is very easy to fall into bad habits, and there are too many PHP tutorials to separate the good from the bad.
There are hundreds of other languages not listed here that you can look more into. But other languages may be more niche for web dev, and you’ll find it harder to start there.
backend next steps
So, say you have picked a language to try out, and want to get started! What do you do?
- Attend meetups! Attend any in your area you can find. With COVID, many are online, so you can even attend remotely.
- 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. - Find a beginner’s tutorial in your preferred language. Click on the links above to find some good starting tutorials.
- 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!
- Watch YouTube tutorials on your language of choice. You may find the explanations helpful!
- 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. - 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.
- Learn HTML. Simple, right?
- Learn CSS. Now we’re cookin’!
- 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?
- Attend meetups! Attend any in your area you can find. With COVID, many are online, so you can even attend remotely.
- 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. - 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).
- Push your site to GitHub so others can see (employers will look at this)!
- 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.