8 answers
Asked Viewed 415 times Translate

Which Web Developer role or Stack is higher in demand, Front-End, Back-End or Full-Stack? Why?

This question intrigues me since I've believed that back-end has always had a higher barrier to entry to the mathematics behind it, and front-end being for those who have a knack for design, making front-end usually more popular, however, with varying responses on the internet I'm slightly confused. Any professional input to clear the confusion regarding this would be appreciated. #technology #career #web-development #computer #computer-science

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you
100% of 10 Pros

8 answers

Updated Translate

John’s Answer

Honestly, I wouldn't worry too much about which specific skill sets are in higher demand as you start learning how to program. Anecdotally, I would say there is probably more demand for frontend engineers, but there are also a lot more folks competing for frontend positions, to the point that it's probably easier to get a backend job at this point. But that's the sort of thing that shifts and flows over time, and varies regionally as well, so I don't think it's a good basis to choose what sort of programming you'd like to learn.

Instead, I'd recommend that you try out a lot of different things, and see what you actually enjoy. There is a fair range of different sorts of frontend jobs, and a _huge_ amount of variation in backend! Some backend roles do require a lot of mathematics -- if you're building a distributed database from scratch or handling extremely high volumes of traffic, for example, some mathematical background is going to be very helpful. Others really don't! If you're designing service architectures and APIs for services that only see modest traffic, or integrating existing services and products to work together, for example, you'll do fine with arithmetic and maybe a little basic algebra.

The experience of working on all these things can be very different, so try as many different things as you can and see what you like. If you find something you really enjoy doing, you'll probably learn it better and faster, and that enthusiasm will come through as you're interviewing, too. Plus, you'll have a job doing something you enjoy!

Thanks for the answer! I appreciate telling me which variation of back-end would require more math, I was having trouble having to visualize how math would be involved. Overall, my plan is to probably get started with front-end, and work my way to back-end since that is where my interest lies. All the best! Aun M.

100% of 2 Pros
100% of 1 Students
Updated Translate

Nick’s Answer

Hi Aun,

I'm going to directly answer some of the questions & assumptions you have in your question and then answer generally with some advice.

"I've believed that back-end has always had a higher barrier to entry to the mathematics behind it"
In my experience, the barrier to entry for frontend development is lower than backend. There's a bunch of reasons why this is but I won't go into that in my first take at answering your question. I believe full-stack development is a similar or higher barrier to entry because it requires working knowledge of both backend and frontend.

Since the barrier to entry for frontend development is lower there are more folks competing for those entry-level frontend development positions at companies.

As I have experienced in my career, learning programming in any domain (backend development, frontend development, data layer, etc) is helpful.
I'd suggest start where you are comfortable and eager to learn and go from there. Starting in one area (ex: frontend) doesn't block you from learning another area of the stack (backend or data).

Honestly, I think it's valuable for most working professionals to have a foundational understanding of programming. I know folks that aren't "professional programmers" that use their knowledge of programming to help enhance their day-to-day jobs (ex: gathering and summarizing data for a report or creating prototypes to enhance a workflow or aspect of their job.

Here's a few, free, high-quality resources if you're looking for learning some foundations:
- Frontend foundations I'd recommend Khan Academy's Intro to HTML/CSS (https://www.khanacademy.org/computing/computer-programming/html-css).
- Programming foundations I'd recommend Khan Academy's Intro to JS: Drawing & Animation (https://www.khanacademy.org/computing/computer-programming/programming). This is a good first step for backend development and introduction to programming in general.

Feel free to ask any followup questions. Best wishes on your programming journey Aun!

I appreciate the answer nick, it was very well written! I plan to learn frontend first since you can see results much faster, but I will definitely try to learn the back-end as well. Also, I want to thank you for the resources! I'll definitely check Khan Academy out, he's already saved me quite a couple of times in chemistry and math! I'll be sure to ask more questions if I stumble upon them, as you seem to be quite knowledgable in the field. Thanks again for the encouraging answer, and all the best! Aun M.

100% of 1 Students
Updated Translate

Tony’s Answer

I work with college students who do 6-month "Boot camps" at the University of Arizona to learn full-stack programming skills. I break it down as follows:

Full Stack is good for people who need fast prototypes, proof of concepts, demonstrate ideas. In the case of the Boot Camp, four students work together to develop a quick 6-month prototype.

Front-end is good for people who are designers, graphic artists, and people good at "User Experience". In larger efforts, there are often tams that focus on the front-end.

Back-end is good for people who are focused on performance and efficiency, high availability, resiliency, compliance with government regulations and so on. This is a behind-the-scenes job that does not involve working with end-users and is more focused on understanding the underlying technologies of the hardware and systems platforms.

Plenty of jobs in all of these area, but different personalities will prevail in different areas.

Thank you for your answer! Would it be a good idea to learn full-stack programming so one has the skills to quickly prototype and demonstrate ideas, and then specialize in either frontend or backend? I'm going through FCC and they seem to be teaching both, which I absolutely don't mind. I would like to focus on the back end in the future though. Once again, thank you, and all the best! Aun M.

Aun, correct. Start with "full stack" so that you can appreciate all of the aspects of the job flow. Then if you specialize in front-end, you understand what back-end people do, or if you specialize in back-end, you can appreciate how to work with front-end designers. -- Tony Tony Pearson

100% of 1 Students
Updated Translate

Charles’s Answer

Okay - so most of the answer are true, demand for various stacks ebbs and flows over time. You can find specific answer online - just Google "popular" front-end or back-end stacks. https://javarevisited.blogspot.com/2019/01/10-web-development-frameworks-fullstack-developer-should-learn.html

On the front end React based solutions are very popular.
In the past - for mobile development - you would dedicate your self to a single platform (Apple/Android) - and become an expert at the native tools.
Now their are "combined" frameworks, like Flutter - that allow you to develop for multiple platforms at once.

On the back end Node JS is seeing a resurgence.
It also is helpful to have a sound understanding of back-end databases SQL, MySQL are core - and an understanding of how to structure them and distribute them for high availability.

However - specific technology knowledge is secondary - you need to be able to analyze and solve problems - understand root causes and create clean, modular, re-usable code in any area. That is priceless.

100% of 1 Students
Updated Translate

Nate’s Answer

Hey Aun,

Everyone's answers so far have been spot on so there isn't much to add on that front.

I would like to add that when getting into the field theres I also was worried that I might be learning something that isn't relevant or won't be in demand. One resource I found helpful was taking a look at the Stack Overflow Developer Survey, they do it every year and it can be a good snapshot of what Software Engineering looks like right now.


It may be information overload but I think there is a lot of great information around what technologies are currently being used, and what being a developer looks like today.

Thank you so much! I have no idea what I would be doing without career village! This is actually something I have thought about for a while, but didn't take close attention to it, as my way of thinking was that learning any technology would help me ground fundamentals which I could use no matter how much technology changes, but in some cases, it is very helpful to get a snapshot of the relevance of the material your learning to compare it to what's accepted or popular. Once again, thank you for the answer, and all the best! Aun M.

100% of 1 Students
Updated Translate

Adam’s Answer

Personally, I think the distinction between front-end, back-end and full-stack is fairly arbitrary. There are differences in technologies, of course, but the overall principles guiding your work are the same between each. The important, and hard, stuff like readability of your code, automated testing, monitoring, and UX all matter the same irrespective of which section of the stack you're in.

It's a common misconception to think that only front-end engineers need to think about the usability of the things they build. It should be at the forefront of your mind even as back-end engineer. Working on the backend, you'll be building APIs that others consume. APIs have ergonomic characteristics, much in the same way that a UI does. Equally so even if for classes that you write that other programmers will have to interact with.

My advice is to start with whatever you enjoy the most. Learn it deeply, and know that if you later need to work on a different section of the stack you'll discover that most of the same principles apply.

Thank you for your answer! That's a very interesting response that makes sense actually. I always thought that one would have to switch gears and forget the principles which were used in frontend to then focus in the backend, but you might be right. Right now I'm focusing on the frontend, so I guess we'll see how those skills transfer over to backend! Thank you again, and all the best! Aun M.

100% of 1 Students
Updated Translate

Suman’s Answer

Both Front end and Back end has its own strength and challenges.

You truly state that for becoming a front end engineer, you should have an aptitude of aesthetics part of things and have a little bit artistic approach, but on the top of that you should have a good hands-on knowledge of UI stack.
To start with you can do from HTML, Javascript, that is actually the mother of UI. From the last few years, there are big changes happened in UI world, with newer libraries and a more template-based approach are giving a whole new dimension to UI.
UI engineer some time plays are a very vital role in an organization as they get a chance to kick off new products from - concept to marketing to Development skeleton to actual product. They often work closely with - product team and have very good cross-team visibility, which you often missed with back-end roles.

But again, as a backend engineer, you develop the soul of the product. You are someone who gives life to the product.
You write very complex, highly optimized solution to the problem. You may or may not get much publicity, unlike the UI engineer. Often you stick with your own product. But once you grow and become more senior you can give cross-product consultancy.
What I believe backend engineer needs little more on the technical, mathematical than the UI side.

Overall both are very exciting areas of work.

Updated Translate

Alex’s Answer

As a technical engineering manager who manages teams across front-end, backend, and full-stack - I urge you to focus more on understanding general engineering techniques, problem solving, and then getting experience in the area you personally find more fascinating. For example you may find being able to work with backend more interesting if you like to break down problems into bit-size services and execution pipelines. Or you might find building workflows, UIs, and working with platforms more interesting.

For example platform work gets you experienced with particular frameworks and that depth is something you may not see as much with backend development.