DEV Community

Cover image for Frontend vs Backend: Which One Is Right For You?
Molly Struve (she/her)
Molly Struve (she/her)

Posted on

Frontend vs Backend: Which One Is Right For You?

I have been asked many times by new developers what should I study and focus on when I am learning to code? Asking that question is the equivalent of a med student asking what area they should specialize in. There is simply no one size fits all answer. However, I would like to give some guidance and offer some of my own thoughts on the topic. Hopefully, if you are at the start of your career this post will give you a few things to think about.

Definitions

The first internal debate that usually arises when starting in software is where should I focus, the frontend or the backend? Before we dive into the characteristics of each specialty lets first define them.

Frontend

refers to the presentation layer of a website and how that interacts with the data from the backend. Think HTML, CSS, Javascript, Angular, etc.

Backend

refers to the data processing layer of an application. This is the layer that talks to the database and determine's what information gets sent to the frontend to be displayed. Think Ruby, Rails, Python, Java, etc.

Ok, now we know what they are, but how do you choose which one you want to work with for your career? Honestly, it comes down to personal preference and why you choose to become a dev in the first place.

Job Satisfaction

If you choose to become a dev because you wanted career satisfaction and you wanted to do something you enjoy, then my advice is to do both when you start. Dabble in the frontend and the backend, that way you can get a feel for what you enjoy more. Will it be more work? Definitely, but you will greatly increase your chances of finding a part of the stack you enjoy working with.

Within the frontend and backend ecosystems, there are still many specialties you can branch off and do which can be overwhelming. When you are starting, try to get a feel for the basics and don't worry too much about diving all the way in. Test out the water and see if either one really grabs you when you work with it. However, be aware when you are starting out that no matter where you begin it is going to be tough at first. I would say give yourself a year or two of working across the entire stack before you decide where you would like to focus. That will give you enough time to get over the initial "Wow, this sucks because it is hard" hump and into the time when you can really assess if it is a technology you enjoy working with.

While everyone has different tastes, you might find it interesting to see what languages and technologies other devs enjoy working with. The 2019 StackOverflow Survey looked at what languages were most loved.

Another advantage to working across the entire stack to start is that you get a feel for how everything works together. This can be immensely useful no matter where you decide to focus on in the future. If you have knowledge about how the other half works that will only allow you to create better code and interfaces within your specialty.

Lastly, when working across the entire stack you might decide you don't want to choose! You may want to work across the entire stack and be a fullstack engineer for your career. That is completely valid as well!

Salary/Stability

If your motivation for moving to a dev career was for the salary and stability it offers, then studying both might be a waste of your time. If you want to get into a career as fast as possible then do some research for the area you want to work in. Find out what the trends are in salary for frontend vs backend. Also, try to find out which type of dev is in the most demand.

I don't claim to know whether the frontend or backend is paid more, but there are some surveys out there that have tried to answer this question. Once again, we can look at the 2019 StackOverflow Survey which broke down salary of devs by type.

Global

1) Fullstack $57k
2) Backend $56k
3) Frontend $52k

United States

1) Backend $116k
2) Fullstack $110k
3) Frontend $103k

In addition, it broke down salaries based on technology. Here is a sampling from each of those surveys.

Global

  • Clojure $90k
  • Go $80k
  • Python $63k
  • Swift $59k
  • JavaScript $56k
  • HTML/CSS $55k

United States

  • Scala $143k
  • Clojure $139k
  • Go $136k
  • Swift $120k
  • Python $116k
  • JavaScript $110k
  • HTML/CSS $105k

It is important to note that these salaries and trends may be different depending on where you work and whether you are looking for a remote job or not. Definitely, do your research. It could be as simple as looking at job boards and running a search for backend and frontend technologies and seeing how many results are returned.

Why I Choose the Backend

I figured I would throw in here why I ended up choosing the backend in hopes that it might inform others when making their decision. I was seeking job satisfaction when I made the career switch to being a dev and decided to start out working across the entire stack. I worked as a full-stack dev for 3 years before I started to really shift towards the backend. What drew me to the backend was the cleanliness of Ruby. Javascript and frontend languages have always felt less organized to me. I also thrive on optimizing code performance. I love trying to find ways to make things run better and faster. The backend seemed to give me more opportunities to do that.

Finally, I am not a very visual or artistic person. Some people can look at a webpage and figure out how to lay it out and where everything should go. I never was good at that so the backend felt more natural and comfortable for me.

If you want more insight into other's opinions, check out this CodeNewbie Chat which discusses Frontend vs Backend web development. You can also check out the dev.to thread I started Tuesday asking people what part of the stack they choose to work in and why.

Nothing Is Forever

No matter what you decide to focus on, know that nothing is forever. If you go down one path and decide that it was the wrong one, you can always switch. One of the great things about software engineering is that it all fits together. Knowing a lot about one area will only help you learn and be better at another.

Top comments (24)

Collapse
 
msamgan profile image
Mohammed Samgan Khan

PHP is not even on the list. Its hurts aaouch...

Collapse
 
garthvador profile image
Quentin Caillaud

It's always like this in this kind of statistics... Well keep ignoring us, based on an opinion made many years ago and we will keep finding jobs easily while practicing a nice language !

Collapse
 
malwarebo profile image
Irfan

Yes man that hurts.

Collapse
 
ketoaustin profile image
Hannah (she/her) • Edited

This was a great article. I think about choosing to focus on one a lot, but it's not an easy decision. It feels like frontend changes at a faster pace compared to backend, which can make it feel more challenging. Also, from my experience, it's easier to improve frontend skills through personal projects while my growth as backend developer really happened working on production code.

Collapse
 
hamsterasesino profile image
Gabriel

To me it's all about the impact you can make over a period of time, while at the same time enjoying your work (which means spending 80% of your time reading code and not going bunkers).

I find Frontend applications to be short-lived in comparison with Backend ones. Many new websites work with Backend cores that are decades old.

I also find Frontend code to be much more messy and hacky. I don't know why, I guess JS has a double edge between expressiveness and just pure anarchy.

In general, when working with a medium-sized or larger team I dislike doing Front-end work. I really get the feeling of having too many cooks on the kitchen very quick. Yes, everybody codes the backend in a different way, but at least not in an altogether different paradigm!

However, I also like the 'indie' feeling of Frontend development and how easy and cheap is to prototype user-ready applications.

Collapse
 
jwollner5 profile image
John 'BBQ' Wollner

I detest front end work one browser update and all that work down the drain. Plus there's the whole relative positioning of components - too twiddly for me.

Give me a nice complex integration or database performance problem anytime

Collapse
 
__shadz_ profile image
Chardenal Matthieu

Both ?

Collapse
 
molly profile image
Molly Struve (she/her) • Edited

Yep! As I stated that is also an option 😊

Lastly, when working across the entire stack you might decide you don't want to choose! You may want to work across the entire stack and be a fullstack engineer for your career. That is completely valid as well!

Collapse
 
__shadz_ profile image
Chardenal Matthieu

My bad I've read the article too fast :( (or did I just read just what i wanted :o )

Thread Thread
 
molly profile image
Molly Struve (she/her)

hehe no worries! Been there, done that! Especially during the work day when I am skimming something fast

Collapse
 
dana94 profile image
Dana Ottaviani

I enjoy frontend, but I have to say I detest making things work in the IE browser. That's why I'm open to understanding back-end more for more opportunities.

Collapse
 
scottishross profile image
Ross Henderson • Edited

Do what we do: Depreciate support for pre-IE 11. They'll have to move eventually so may as well rip the bandaid off and let them realise what they have been missing.

Collapse
 
buinauskas profile image
Evaldas Buinauskas • Edited

I used to work with databases and data only for like first 4 years of my career, which kinda became boring. Then I started doing services and front-end. I love the change and my previous experience helps a lot now.

It's easy to understand complicated data flow, write performant SQL code be able to read execution plans. Lots of full stack developers lack this.

Collapse
 
molly profile image
Molly Struve (she/her)

Agree! We do an SRE rotation with our devs where one of them will come work on the SRE team for 3-6 months. It gives them a peek behind the curtain and teaches them how we approach code and performance. Then they can take what they learn back to their teams and apply it and teach others.

Collapse
 
denvash profile image
Dennis Vash • Edited

I think Most Popular Technologies are more relevant than "Loved" ones.

Collapse
 
consciousness_dev profile image
Ario Setiawan

I'd job on frontend now, but especially focus on 'engineer' site, i have no experience work with frontend on 'design' side, like do slicing web, or make web effect wonderful, i come from backend with minimal library such as jQuery & AJAX, PHP & MySQL background, then i straight to learn React, now i landed job on Frontend (Reactjs) Engineer, i love with performance than appearance, what should i do if i want learn backend ?

Collapse
 
franciscosuca profile image
franciscosuca

I didn't like the way you described both backend and frontend in the begining, but it was a good advice to say that you should start with both without diving in too much on the details at first (Been there...)

Collapse
 
malwarebo profile image
Irfan

I have the same reason as yours about being a backend dev. I enjoy writing services that are invisible to an end user, optimize things, make the hardware run faster and keep the data center cool.

Collapse
 
essteffan profile image
Stefan Cuculeac

WTF No PHP? thas that even exist? You must be joking

Collapse
 
yogeswaran79 profile image
Yogeswaran

Hey there! I shared your article here t.me/theprogrammersclub and check out the group if you haven't already!

Collapse
 
yuritoledo profile image
Yuri Toledo

So outdated the image data. Front-end is more than that.
Actually, with SPA, for example, we can do much MUCH more of application logic on front-end.

Collapse
 
thehumble_angy profile image
Ange Kouakou

Thanks Molly for the tips 😊