General Discussion

Jinman Kim
Jinman Kim
5,586 Points

Front End Developer vs Full Stack Developer

Hello Treehouse

I'm on the fence between being a front end developer and being a full stack developer. My plan was to become a front end developer first which will be faster to be in a working environment and progress onto full stack. Or I could give myself more preparation time and get right into full stack developer. Wondering if anyone has thoughts on this?

8 Answers

Victor Mercier
Victor Mercier
2,680 Points

This is a good question. It really depends of what you want to do. If you have good designing skills, choose front-end development but if you prefer to interact with databases, choose the full stack development.

Design has nothing to do with front end.

Michael Cook
Michael Cook
14,025 Points

jrs, design is a subject that frequetly comes up in Guil Hernandez's html and css courses. Design DOES have something to do with the front-end and many front-end developers also do design. I think you should check your opinions against some real experience and complete a track, then let us all know what you think.

Yes there are companies that take advantage if their employees and want them to do everything. Those are the ones to avoid.

Brendan Whiting
MOD
Brendan Whiting
Front End Web Development Treehouse Moderator 82,624 Points

Just for my two cents, I went through the Front End Techdegree. But I wish I'd done the Full Stack one. A few reasons:

  • I think most front end (HTML, CSS, vanilla JS) can be learned from tutorials. Backend stuff I needed much more mentorship, people to help me along the way with things like setting up a server, database, deploying to the cloud.
  • There are simple front end websites and there are complex web apps. A lot of people don't need to hire (many) developers to build their simple website - there are services like SquareSpace. If you want a complex web app (think Gmail, Facebook) you need armies of engineers who use frameworks like React. And to be a React developer, you need to have a handle on node and npm, so you're already partly in a full stack world. Also, these kinds of apps tend to have lots of AJAX calls at various points in time to different services. Some of those might be 3rd party services, but they also might be backend services that your team also works on. It's very useful for the same person to be able to jump back and forth between the front end and back end code. I was working on a feature today where we decided to rename some property for a value we were storing in redux that we get earlier from the server. I could just change it myself in both the front end and backend code. We have 8 engineers on our team and all of us are full stack, and we pair program and rotate through different parts of the code base. We don't work in silos where people are specialists in narrow areas.
  • Another thing is that not as much time is spent fiddling with pixels to make UI components look just right as I thought it would be. UI components, or at least CSS, are often shared company wide. We have a UX designer that provides us with mockups, so the design part isn't our responsibility. Even if we have to make something custom for our team, we do that work once upfront and then we don't have to touch it very often. A lot more time is spent on the logic of what data should show up where, how to handle different kinds of errors and complex business logic in both the front and back end.

I work at Home Depot now in the Checkout - Returns department, FYI.

Michael Cook
Michael Cook
14,025 Points

Hey Jinman, I think the best thing to do is just work through courses and see what gets you excited. In Brendan's role in a large company, he is expected to work in both ends of the web stack. But it depends on where you imagine yourself working, and what really interests you. Do you want to be an engineer working in a large company on large website incorporating ecommerce? Do you imagine yourself working for a marketing agency? Perhaps you imagine yourself being a freelancer, building websites for small to medium sized clients. There are a lot of different environments where web developers work, because the web is everywhere. I think for someone in your position who is still new to all of this, you're going to need to get your feet wet in a number of technologies first before you can really effectively answer the question of which level of the web stack you want to work at.

For me, I find making user interfaces and creating layouts, thinking about colour and typography and issues of design to be tedious and boring. That's just me though. I respect people who do well and with passion, but it just isn't my thing. I am better at conceptualizing how something should work and what it should do. So I am planning to be a full-stack developer who focuses more on the back-end. But it could be entirely different for you. And not all front-end work is about tinkering with layouts and designs. For instance, a lot of JavaScript developers work mostly on the front-end, but their time is spent making applications work, rather than tinkering with style and design.

There are three different tracks I can recommend for you. You could 1) try the Full-Stack Foundations track, which will expose you to HTML, CSS and JavaScript, but also Python and Flask for the back-end; 2) Front End Web Development; or 3) Beginning WordPress, which will teach you the basics of creating production-quality websites using WordPress. I highly recommend picking one of these and sticking with it as long as you can, until you either complete it or give up because you find it really boring. But each of these tracks will expose you to a major area of web development and help you determine where your interests lie. Good luck!

No. Choose ONE front end or backend. Full stack devs are terrible. EVen the one's that think they are great struggle at one end.

Michael Cook
Michael Cook
14,025 Points

Hey jrs, Brendan is a full-stack engineer at Home Depot. Feel free to regale him about how terrible he is.

stjarnan
stjarnan
Front End Web Development Techdegree Graduate 56,481 Points

Hi Michael Cook,

I too find it sad how this person is spreading views like these all over the forum. My guess is that this person has been fed outdated information or just likes to spread negativity.

Which is why it's so important with people like you and Brendan taking their time explaining things for those asking questions here.

Cheers Michael.

/ Jonas

Brendan Whiting
Brendan Whiting
Front End Web Development Treehouse Moderator 82,624 Points

You could argue a full stack dev is a jack-of-all-trades, master of none. There are trade offs there. But also benefits to being able to work on all parts on the tech for a product. Generalist vs. specialist. There are a lot of different ways to slice different skill sets into roles. Some UX designers are also front end developers. Some product managers also spend time coding. Being an expert at everything isn't possible. It's definitely useful to hire people who have very deep knowledge of one thing. But it can also be hard for team members to communicate with each other who don't have enough overlap to understand each other's work. And passing work between specialists takes time sending emails back and forth and having meetings that could be avoided it one person takes care of it.

stjarnan
stjarnan
Front End Web Development Techdegree Graduate 56,481 Points

Yes, and there is a huge value in that Brendan Whiting.

Some companies also have developer teams where the full stack part gets defined by how you can spend 95% or so of the time using your "core" skillset, whatever you want to master. But having that general view of how the rest of the stack allows you to fill in if there is a deadline, someone falls ill and so on.

And like you mentioned, communication is easier for a team if there is some overlap.

So I definitely wouldn't say full stack devs "sucks" or are "terrible" like Jrs wants it to seem.

/ Jonas

Jinman Kim
Jinman Kim
5,586 Points

Thanks a lot for everyone's input here. As I have experienced the basics of back-end with Microsoft SQL server and ASP.Net, I really agreed with Brendan that it may be much helpful with mentorship on back-end stuff. I am just getting into programming and have a lot to learn and experience. From there, I think Michael really got me when he said I need to get my feet wet in a number of technologies before making decisions. Full stack foundation track seems to be a great place to start for me in that sense and fall deeper into specific category as I go along. Thanks again for everyone's advice and hopefully I can provide some advice for others here anytime soon. Cheers!

Michael Cook
Michael Cook
14,025 Points

Jinman Kim you will do great. Especially if you already have some programming experience and you know that this is something you want to do. Let us know if a few weeks or months what you've built and what language/framework/technology you decided to make your main focus. stjarnan I agree with you. Treehouse has a really great forum community, pretty much the best I've ever seen. But still, there will be some people who have negative opinions to spread.

He would absolutely be terrible at one end or the other like all full stacks. Here's the thing, there's so many moving parts and so much to learn. In no possible way because of this can a person become an elite level fs dev. You can absolutely become elite level focusing on one end though. But trying to have it all, front, back, ux, ui it isnt going to work no matter how much you fool yourself. You take say a ruby opening. The person who has been laser focused on that over the person jumping around like lazer cat, will smoke that person in talent and be more in demand. Every. Time.

We dont have a dev shortage. We have a shortage of good devs. And the wanting to have it all mentality is part of the reason.

FOCUS and NICHE down. Companies want masters. There's too much between front, back, and ui/ux to be able to master all three.

Michael Cook
Michael Cook
14,025 Points

jrs0801, you have been on Treehouse now for over two years, and you have four achievements. That's fine, you do you. I'm sure you have your reasons, there's no judgement. At least not until you start stating opinions as if they're gospel and insulting peoples' jobs. At what point are you going to master a skill yourself? I might actually be inclined to listen to you if I had any indication that you actually know what you're talking about. You have almost no points, you have no Github account linked, I have never seen you link a project or some code to show. I have only seen strongly-stated (borderline insulting) opinions, and ones that don't appear to comport with reality at that. For one, being a full-stack dev in no way implies mastery of all levels of the web stack, and your claim that companies want people who specialize in one single thing and do it really well may be true in some cases, but in many cases it isn't, especially not for junior roles which are generally the sort of roles Treehouse aims to prepare students for.

Since you have such strong opinions that you aren't afraid to state boldly, I think it would be perfectly fair for me to challenge you to prove to us that we ought to actually listen to you. Let's see some code you have written, a project you have done, or something to demonstrate that you aren't simply regurgitating carefully-selected opinions from the internet and can actually speak from experience.

stjarnan
stjarnan
Front End Web Development Techdegree Graduate 56,481 Points

jrs0801,

Like Michael mentioned, no one implies that a full stack developer is an expert of everything.

And while you can have an area of expertise as a full stack dev, it's definitely more usual with the generalist kind of full stack dev. But you make this sound bad, which is so far from reality.

The full stack dev can in some cases be seen as a support kind of person, having the ability to fill in where there's a need. Small and big companies see great value in this. Some people also take great pride in this role, and you're currently acting like if they were stupid for that.

Full stack developers also make great leaders, having a general overview of how the dots connect in an application is a great quality as a leader. That person might not have the expertise of every single area but have enough knowledge of the pieces to be able to understand the problems and complexities the team might come up against and how to prevent some problems from even arising. I am not saying you have to be a full stack dev to become a good leader or that all full stack developers become leaders. I am just mentioning one of the often forgotten parts of full stack developers.

Saying that this is not valuable for companies is odd.

No one here is saying anything against experts or the need of them. But your view of how "Terrible" full stack developers are, or how "They are all bad" is just sad because it's so far from reality.

/ Jonas

Nope stjarnan. Im actually trying to help people.