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.
🔗 There isn’t a right answer, but there is a better one
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?
🔗 Which do you like more? Front-end or back-end development?
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!
🔗 There are more back-end positions out there
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.
🔗 Back-end positions pay a bit more
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.
🔗 The tech stack for front-end is smaller
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:
- 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.
🔗 The competition for back-end positions is lower
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.
🔗 Front-end work will give you more exposure to users
One 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
As I mentioned at 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!