So you want to get into web development, and you keep hearing about “front-end” and “back-end” positions. The question is, which should you learn first? As someone who’s held both front-end and back-end positions, and even been a hiring manager, read on and I’ll give you my thoughts.
To be clear, it’s the wild west out here. In tech, as long as you’re willing to put in the reps, you can teach yourself to code and get any kind of programming job that you want. However, your learning path and career trajectory will be much more efficient if you’re smart. And with that, we come to the most important factor when deciding whether to learn front-end or back-end first: Which do you like more?
Because you can start with either one, the most important question is “what do you enjoy most”?
If you like building user interfaces (buttons, animations, dropdown menus, that sort of thing) then you might prefer front-end work. On the other hand, if you like data, networking, clever algorithms, and systems architecture, you might really love a back-end role.
The beautiful thing about web development is that even if you specialize, you can always make a change later! Just because you start by becoming a back-end engineer, doesn’t mean you can’t become a front-end developer later… which is a good thing, because that’s exactly what I did!
If you’re a bit on the fence, maybe you don’t have a strong preference for data or for visuals, then the next things to consider have to do with the state of the job market. According to the last StackOverflow developer survey, 43% of developers have back-end responsibilities, while only 26% have front-end duties.
There are simply more back-end devs out there, which means there are more positions that you yourself could potentially fill.
Again, we can take a look at the latest Stack Overflow data to see that back-end positions pay a median of $150,000 in the US, while front-end positions pay about $133,000. I don’t think this is the most important data point to base a career decision on, after all, the numbers are fairly close.
It’s important to keep in mind that there are plenty of individual front-end devs who earn more than individual back-end devs, we’re looking at median salaries here. Again, money isn’t everything, and the numbers are close, but the primary reason we show up to work in the morning is for that sweet sweet cash, so you should be aware of this data. If you’re curious about how much software engineers earn in general, read more here.
One point in favor of starting with front-end development is that the amount of technologies you need to learn is fewer, at least by a bit. For example, the critical technologies and concepts for many front-end devs include:
Becoming a back-end developer is a bit more involved. You need to learn things like:
Golang (or another back-end language like JavaScript, Python or Java)
Databases, like SQL or Mongo
HTTP APIs, basic networking
Algorithms and Data Structures
Systems thinking and architecture
Basic devops skills, like deployments and infrastructure
I’d estimate that it takes about 25% longer to learn back-end development than front-end, but that’s a rough estimate. I believe it takes between 6-12 months to learn the skills you’ll need for a back-end job, so learning front-end can probably happen in as little as 5-10 months.
I wish I could find better data on this, if you know of a more quantitative resource I can cite here, please let me know . That said, at the last 4 companies I worked at, if we opened a position for front-end engineers we were getting 100+ applicants. Conversely, when I opened a position for my own back-end team, we would get about 20.
My belief is that due to the slightly shorter learning path to becoming a front-end dev, the majority of entry-level programmers go that route. It’s important to understand, because it means that if you decide to take a back-end learning path you’ll have a higher chance of placement at the end.
Once final point I want to bring up in favor of learning front-end development first is that as a front-end developer you’ll get to interact more closely with users and the end-product. There are 2 main benefits to this:
If you ever want to start your own company, you’ll already have experience with product design
You’ll have more chances to interact with the non-engineering side of the business
Like I mentioned and the outset, the most important thing when deciding if you should learn front-end or back-end development first is which do you enjoy more? What interests you? From there, I hope that some of this data can help you make the decision that’s best for you, your career, your family, and your future. Good luck!
Originally published here.