© 2019 Tim Buchalka
  • Tim Buchalka

What Is a Full Stack Developer? | Pros and Cons of Web Developer Roles (Part 3)

This is article three of a three-part blog post series that I've done on web developers. So, if you haven't read yet the last two posts, check out part one here where I talked about the role of a front-end developer. After that check out part two here where I talked about the role of a back-end developer. In this post, I wanna talk about part three which is about the third type of web developer, and also get through the pros and cons of all three and hopefully end up with a recommendation or give you some ideas at least on which area you should specialize in. So, let's get started.



Let's get stuck into this and talk about the third type of web developer. Again as a recap, first type is the front-end developer, second type is the back-end developer and the third type? The full-stack web developer.


Now the full-stack web developer basically knows the front-end and back-end, and they know that really well enough to be able to actually code solutions for both the front-end and back-end. Now most web developers probably know front-end or back-end really well if you've already been doing web developing for a while but have general knowledge of the other side, if that makes sense and you need some basic information on each side anyway to be able to code either the front-end or the back-end.


For example, a back-end developer needs to know what a front-end developer effectively needs access to, so what information from the database or whatever, and the front-end developer typically needs to know how to access that information from the back-end. Now the full-stack web developer, well, they know both sides well enough to engineer solutions. It's a difficult thing to get into and obviously to get to the stage of being a full-stack web developer, you need to go through the process of being a front-end developer and also a back-end developer because, in fact, that's what you're doing: you're engineering solutions and you're knowing both areas pretty well.


So, if you're starting out, what area do you feel like you should focus on? That would be a question you're probably asking yourself. Well, front-end development, if this helps, is probably easier to get started with and still pays pretty well. Now a back-end developer is harder to do well within my experience but pays better typically than what a front-end developer position would pay.


Now the full-stack web developer pays really well, more than both front-end and back-end if you truly are like a full-stack developer and not just a jack of all trade. In other words, if you're actually a web developer who knows a bit of a back-end and a bit of the front-end, and you're claiming you're a full-stack web developer, well, that's probably not really a full-stack web developer. That's just someone who knows a little bit of information about both, and you probably will not get the type of position you're looking for.


A full-stack web developer really is someone who knows the technology really well both at the front-end and back-end and they are the type of people who've built themselves up, learnt their trades, so to speak, and specialize in that. They're the ones who'll be paid really well, so keep that in mind.


So basically, in terms of full-stack web development, for solo developers, that's typically an area that they can get started in. If you're out there and you know, maybe you've got like one or two years experience or even just starting out for the first time, it's not uncommon when you start your first job to be thrust into the role of a full-stack web developer.


As a typical example, you might get a job at a very small business or take on a freelance opportunity and they haven't got an IT department, and they want you to engineer a solution. So basically, you'll be thrust into the role of both a basic and full-stack developer because you'll need to understand and engineer a solution and do both the front-end and the back-end, but on a smaller scale than setting up perhaps a large project. That's a good area to start out with, and you'll learn the basics and be able to build yourself up from there, but then after that, because you've been through both the front-end and back-end, you may or may not decide to specialize in front-end or back-end.


Given the range of technology, it's hard to actually know everything in terms of a full-stack web developer, so if you're wanting to become a full-stack web developer because you know that it pays really well, there's a lot of things to learn and continue learning and that's because things change a lot over time. Obviously, the full-stack developer might know HTML, CSS and JavaScript as an example, and perhaps in the back-end, you've only engineered one solution in the past, and perhaps you've decided to specialize using Java on the back-end, and maybe a specific framework like perhaps the Spring Framework. So that's basically one area of the back-end that you're specialized in but as you'll probably find when you start getting out there in the real world, there's lots of different tools in the back-end. We've got Node.js for example, C# there's lots of other solutions for the back-end so a full stack web developer by it's very nature is still gonna be someone who doesn't know everything about every framework or every technology because there is just to many to master.


So you'll still need to make a decision as to where you're gonna specialize knowing that there is any particular framework that you can specialize on initially but keeping in mind that as your experience grows, you'll find moving to another framework it's really just a matter of learning the in's and out's of a specific framework and it will actually make a lot more sense as you move forward. So because you got the basic information about the back-end process when you move to another framework, it becomes easier because you know a lot of that framework is gonna be very similar. There's basic functionality that exists in all framework so you just really need to learn the syntax and the framework, the API calls etc., to basically engineer that solution. All right so that's full-stack web developer.


So let's talk a little bit in general about the pros and the cons. Well, they all pay pretty well so keep that in mind that as a web developer, the pay is pretty well whether you are a front-end, back-end or full-stack web developer. The full-stack (probably you figured out now) would take the longest to get up to speed with and probably does pay the best depending on if you truly are, as I mentioned, an expert or you know if you're just someone who's a jack of all trades and knows a bit of both. You're probably not going to be getting that really high level pay that a true expert is gonna get but that's probably quite reason to expect anyway that an expert is gonna get paid a lot more.


The front-end (I think I mentioned before) is probably the easiest to get started with. Probably in general - and I'm generalizing a lot here - it is the least paid or the smallest amount of money will be paid to a front-end developer but still pays very well. I know lots of people who've specialized and spent their career as front-end developers and have done really well. So don't think that I'm sort of looking down on front-end or saying not to specialize in that because that's certainly not the case. Back-end developers sit somewhere between the front-end developer pay and the full stack web developer.


With that said, now what do you think you should focus on? Or what am I suggesting you should focus on? Well many developers when starting out in a career (and this certainly happened to me), you tend to fall into a specific area, so you don't get to choose, you don't sort of go into your first job saying I'm going to be a front-end developer. For arguments sake, I mean it can happen. My suggestion is to try out the front-end and the back-end and get a feel for them. Get a feel for how you feel about them and see which ones you like the best.


I mean it's weird but for me, I'm a full stack web developer and I started out that way because I fell into that years ago when I was in engineering solutions as a solo developer and I needed to know the front end and the back end. So that's how I started out being a full stack developer and because I really enjoyed the technology and understanding new technology, I was continually learning new things, new skills, for me that was great, that was perfect. I like engineering solutions, I like working on the front-end and the back-end but given a preference for me, my preference is definitely the back end. So I actually liked the back-end web development a lot more than the front-end but again that's where I started out and I fell into that.


From your perspective you will need to make a decision as to which one you enjoy the most and which one you think you're gonna be the best at and you won't really know that of course until you get started and actually start trying to get out. So the thing here is, I don't want you to think that you have to move towards the goal of being a full stack web developer. Some people might look at that and go "Well, that pays the most and yeah I'm going to go for that". You don't need to do that and it's not for everyone because it's going to take a lot of work for you to get up to the level for you to truly be an expert.


Again, a lot of people that I know have specialized in front-end or back-end and have done enough and it can certainly be enough. I certainly would recommend this, that for a lot of people it can be enough for a very rewarding and well paid career so don't think you have to do that. The full stack web development positions there (if you decide that is something you want to focus on), keep in mind that technology is moving ahead at a rapid pace and if you are a full stack web developer you need to keep up with that at both the front-end and the back-end so basically it's a lot more training for yourself to keep up with the technologies because you certainly don't want to fall behind with technology. You need to keep your skills current, to maximize your career options.


All right, so good luck with it all and just remember that you can also swap to the other side in the future. So if you try say front-end development for three months or six months or whatever or take some training courses or whatever it is and you don't enjoy it for whatever reason, the skills you learned from that period of time will still be useful and you can always switch over and go to in this case, to the back-end development and try that out as well. You can take those front-end skills that you've learned and that will still be useful from a back-end development point of view and of course vise-versa if you decide that. So good luck and I hope that you achieve your goals in becoming a web developer.


All right, so I hope that helped. If you've got any questions feel free to leave a comment and I'll get back to you.