So you’ve decided that backend development is the career for you - congratulations!
Many self-taught coders have a hard time deciding between all the various options, but it’s so much easier to learn effectively if you have a clear goal, like backend work, in mind.
Backend developers are just one of many kinds of “programmers”. Back-end developers build and maintain the systems that store, process, and secure the data used by websites and apps. This is in contrast to front-end developers, who control everything you see and interact with directly in your browser or on a mobile app. Backend developers concern themselves with servers, while front-end developers work on clients.
Some of the most common job titles for programmers include:
Front-end developer
Back-end developer
Mobile developer
Game developer
DevOps specialist
Data Scientist
According to Stack Overflow’s last developer survey, backend developers in the US tie for the highest median salary of this group: $150,000. If you enjoy working on problems that involve algorithms, data structures, natural language processing, databases, or distributed systems, then backend development might be for you.
Many people assume that because backend developers typically need to have a better understanding of computer science fundamentals, that’s it’s harder to get an entry-level backend position, and as a result, they start educating themselves on front-end technologies.
I think this is a mistake.
Just because CS skills are often a requirement for backend positions, it’s almost never the case that a CS degree is required. If you take the learning path I outline below, there’s no need to go back to university.
Follow these steps in order - there are plenty of places you can learn backend online effectively, some of the resources are paid, and some are free.
Learning simple coding syntax is actually super fun and you can get up and running immediately. Your goal should be to understand the basic syntax of one or two programming languages. JavaScript and Python are great choices. You should be learning simple concepts like:
Your goal here is to understand why we need backend developers at all! I’d recommend actually doing a couple small, simple front-end projects so that you can understand the role a backend server plays in an application.
This step might take a bit longer - your goal here should be to learn computer science fundamentals. Go deep into some of the most common algorithms and data structure concepts. Backend interviews are often full of questions on this topic. As a backend developer, it will be your job to make sure that the company’s servers are running code that’s fast and performant.
Almost every backend server in the world uses one or more databases to store information. The architecture of most web backends looks something like this.
I would recommend becoming familiar with a SQL database first, probably PostgresQL. After that, get familiar with some of the NoSQL options, but I don’t think you need to be an expert on them.
Next, you need to pick a language or two that you want to specialize in. For example, I’m primarily a backend Go engineer - but I dabble in Python and JavaScript. By specializing, you will make your job search easier for yourself. Companies want experts in the areas they’re hiring for - not a jack-of-all-trades. Here are some projects you can take a look at:
Finally, you’re going to want to actually deploy some projects! This is how you show employers as a self-taught dev that you know what you’re doing. Unlike a front-end developer, as a back-end developer, it’s less about a pretty personal website and more about the code itself. In order of importance you should work on the following things:
README.md
files on your top 3 public repos
Not only will deploying your projects make your online presence appear more attractive to potential employers, but it will give you practice that will be necessary for your jobs moving forward. What’s the use of a backend developer if they don’t know how to deploy their code to a live environment?
If you’re starting from zero, it will probably take you anywhere from 9 months to 2 years to learn backend development thoroughly enough that you can land an entry-level position. Of course, it will be different for everyone, but if you can put in a good 10 hours each week, I think that’s a solid estimate. The good news is, that’s faster and cheaper than going back to university for 4 years. The hardest part is just sticking with it.
The big secret to landing a backend job as a self-taught developer is to build an amazing online presence that flaunts your work. As we mentioned above:
Once you’ve done that start applying to jobs! Use every job board you can find, and try to apply only to jobs that are specific to your area of expertise - e.g. “backend go developers”. Try to find niche job boards if they exist, I really like the Golang cafe, for example.
Most importantly, do not stop learning and building!!! I’ve seen so many developers think that they’ve successfully “learned to code”, and they shift gears entirely to their job search. Look, it only takes an hour or so each day to submit a bunch of job applications. You should be spending the rest of your free time continuing to build. The more you learn and build, the easier the job search gets.
Good luck!
Also Published here