DEV Community

Cover image for Why you should become a Full-Stack Developer
Andrew Baisden
Andrew Baisden

Posted on

Why you should become a Full-Stack Developer

There are countless benefits to becoming a Full-Stack Developer. These days many companies tend to hire developers who can work across the whole stack. The more skills you know and the more experience you have the easier it will be to get hired. Gone are the days when you could comfortably sit back and coast through a job knowing a small set of skills. Nowadays you have lots of young aspiring developers who are super ambitious and devoted to absorbing and learning everything they can. You can't afford to become complacent as the industry moves so fast. Those who embrace change and stay up to date with new trends and technologies remain at the forefront and become the "go to" tech person to follow when it comes to learning. The same is true for people who prefer to stick to old ways of thinking and are afraid to leave their comfort zones.

https://res.cloudinary.com/d74fh3kw/image/upload/v1629793248/change_is_good_pxjtui.gif

Of course you can still be successful in the industry if you choose to remain as either a Front-End Developer or a Back-End Developer. But knowing both or at the very least having some exposure to them will not only put you in a higher pay bracket when you are looking for work. But it will also make you more versatile and open up new doors full of opportunities waiting for you to take them. This could be new jobs, connections, freelance work, conference opportunities, collaboration and so much more.

Future proofing your career path

The famous American business magnate, investor, and philanthropist Warren Buffett once said:

โ€œThe more you learn, the more you earn.โ€

This still remains true even today. I imagine that there are many developers out there who don't really want to add a new technical stack. If you have become really good at creating UI/UX and working on the Front-End then the thought of playing around with a database and server architecture could be seen as boring. And if working on databases, API's and Back-End systems is your thing then you probably would not get a lot of joy out of trying to get websites to look the same across all web browsers and figuring out all of those CSS quirks.

https://res.cloudinary.com/d74fh3kw/image/upload/v1629792842/back_to_the_future_lf9tl5.gif

But if you are open minded and want to reach new heights then adding more skills is the way to go. Nobody knows what will happen in the future the tech industry continues to evolve all the time. It is much better to have all of your bases covered so that you are prepared for anything that happens.

Rapid growth mindset

I was talking to another developer a while back and they were telling me that they don't know any JavaScript frameworks. They have years of experience and they are working as a Senior and yet they have never used a JavaScript framework before. I think this is a good example of why it's important to keep growing as a developer. There are kids who are still in school or just coming out of college who have a more versatile skillset than some Senior developers. And some even have successful products on GumRoad and ProductHunt which are allowing them to generate a passive income stream.

https://res.cloudinary.com/d74fh3kw/image/upload/v1629793094/youtube_university_vpd6pp.gif

In my opinion if you are an aspiring developer then you should go down the Full-Stack path as quickly as you can. In a few years you will surpass a lot of developers who are older than you. Better yet if age is on your side because you are a young and still in school. Then this is the best time to catch up with your peers and leave them in the dust a few years from now. Those who choose to grow prosper and those who want to go through the motions at the same level begin to stagnate.

Final Thoughts

I really hope that you enjoyed reading this article and learned something from it. As a content creator and technical writer I am passionate about sharing my knowledge and helping other people reach their goals. Let's connect across social media you can find all of my social media profiles and blogs on linktree.

Peace โœŒ๏ธ

Discussion (45)

Collapse
jonrandy profile image
Jon Randy

I still find it weird that these job titles exist. I've been doing this long enough to remember when everyone was just a 'web developer' who did a bit of everything

...and all of this was just fields.

Get off my lawn!

Collapse
thumbone profile image
Bernd Wechner

Sure, I remember those days. But things got complicated. Fast. And are complicated. And there's a LOT to know and keep track of in the delivery of web services now. The very thing that drives specialisation.

Of course there was never a day when everyone was just a web developer, you're letting your own narrow focus show through there. Around that time there many many IT pros, developers who had precisly zip to do with the web. Not many left of course (as in a huge portion of development is now on web services that was handled differently in past, even if it's on intranets).

Collapse
jonrandy profile image
Jon Randy • Edited on

Yeah - I was never just a web developer either, my focus was never narrow - that was just the job title - the work was essentially anything IT related. I was doing development professionally for almost 10 years before most of the stuff I was working on was 'online' and could exclusively be called web development (that was probably around 2004 ish) - before that it was desktop apps and internal business systems with some small forays into online stuff

Thread Thread
thumbone profile image
Bernd Wechner

Suspected as much ;-). But yeah, when it was young, the web was one thing indeed. HTML mainly, and then CGI and then Javascript and then an explosion of backends not to mention graphic design as well and more ...It's a new world .. and IT is as mature now as Science, Law, Medicine ... and more ... all fields so broad and rich that they are full of specialists with a deep narrow skill set and a minority of generalists who maintain a broad shallow skill base across the whole field and of course those in between who are specialists in one or two areas and mainytain a general overview as well. But essentially there is more to master and maintain mastery of now than the day is long and so no-one in the best at everything ... which was in fact possible in IT in up until maybe the 90s.

Thread Thread
petertorres profile image
Pete Torres • Edited on

Hey @jonrandy , I completely agree with you here. This "front end"/"backend"/"full stack" is what is generally considered Web development. To label backend as databases and APIs is an oversimplification. I haven't met many programmers that can explain the basics of DNS and routing, storage management or security/auth, let alone build out the pipeline to stand up all this software and infrastructure. I can sympathize that more of that responsibility has found its way back to the developer since these tasks can now be created and committed to source control. And for sure, the amount of tooling and frameworks available today to stand up a simple web presence "by hand" is a complicated affair, but the benefit of experience will tell us that all this is a repackaging of the old. I used to rag on distributed computing - it was called the mainframe then. "Who's going to pay for that when I have all this computing power on this desktop". Interesting enough, mainframe is as strong as ever. IT has always been complicated. What I mean here (and what I think @jonrandy and @andrewbaisden were sharing) is don't paint yourself into a corner with job titles. Those change faster than the technology they attempt to contain. Imagine yourself beyond a job title.

Collapse
hyggedev profile image
Chris Hansen

I've noticed some people who are labeled as full stack can probably, just as easily and comfortably spin up a full fledged server, API, CMS, database and create a fully responsive, cross browser compatible, tested and we'll designed front end. And then communicate the two. That there would be a ๐Ÿฆ„ If very skilled, can probably build a full featured web app in 1 day, ready to be used internally, or for the masses. But of course, an individual like that probably has years of experience.

Collapse
andrewbaisden profile image
Andrew Baisden Author

People like to throw titles around a lot. In my current job I was hired as a Software Developer thats what it says on my contract. But at work some people refer to me as a Front-End Developer.

Collapse
joeattardi profile image
Joe Attardi

The term "full-stack developer" is thrown around a lot. Most of the time it's an exaggeration or an outright myth. There's too much to know to be an expert on front-end, middle tier, and backend. In 15+ years I've never seen it.

Not sure why but this post also seems to focus way too much on getting ahead of others. It's also not true. If you specialize in front-end or back-end only, you aren't stagnating or letting others get ahead of you. And instead of focusing on "leaving them in the dust" you should try to help everyone succeed.

Not saying you shouldn't learn both backend and frontend. I have plenty of backend knowledge. But I don't think it's practical to be an expert in both. You're spreading yourself too thin.

Last point: Having products on Gumroad is a very poor measure of a developer's knowledge or skill level.

Collapse
rocketfever22 profile image
Ricardo Otano

Hello! I think you were saying I don't exist, hahaha!

My credentials: 10 years of experience, I started with plain PHP 5.4 + SQL, and a little bit of JavaScript. In two years I learnt AngularJS (V1) and Laravel. Since then I fully qualify as full stack developer, I don't feel my knowledge in front or back is behind those who specialize.

In my company of 23 employees only two of us are full stack. We can have a single page application (Vue or Angular) + backoffice + working api (Laravel) with a database, in no more than a week. We also configure servers to work in, but that part got really complicated since Docker+Kubernetes and we prefer to let it do to a DevOps.

We do a lot of MVP and also accelerate tickets that are much harder to solve when backend doesn't know about frontend and vice-versa (from days to hours).

Our only missing part are CSS/SVG animations or visual effects.

Maybe one of the reasons why people think we do not exist is also because we use to end up as Team Leaders/Tech Leaders/WhateverBuzzword Leader as we know what every stack needs.

Cheers :)

Collapse
diguifi profile image
Diego Penha

100% agree

Collapse
andrewbaisden profile image
Andrew Baisden Author

In regards to Gumroad I just meant that they have started their journey regardless how much experience they have. All it takes is one product good or bad to give them the motivation to keep going.

Collapse
dastasoft profile image
dastasoft

I agree with you but I don't particularly like the statement "go down the Full-Stack path as quickly as you can" I understand your point but having a good base is also important, maybe the nuance is that they start with front-end or back-end whichever they like the most but when they reach a certain level they are not afraid to "jump" to the other specialization.

It's fine to dive into front-end if you are back-end or vice versa, even if you still have a lot to learn in your field, but I think it's important to have a solid foundation in at least one of the two.

But in general I agree that jumping to full stack is valuable, especially for the person who will be able to make a whole application by himself.

Collapse
andrewbaisden profile image
Andrew Baisden Author • Edited on

In my experience I regret not looking into back-end earlier I was so stuck on only using the front-end and staying oblivious to anything back-end. I missed out on so many jobs because they wanted someone who knew the basics of SQL even though it was a front-end role and I refused to even think about looking at SQL back then.

I also thought that databases and servers were hard, too technically confusing and out of my scope. Now it just feels natural working on the back-end and switching to the front-end.

Collapse
dastasoft profile image
dastasoft

Yes, absolutely, I think the key point here is to know the sweet spot for making that jump, but as you're pointing out it's healthy to stay curious about the other field and try to at least get an overview of what's out there and what you need.

Maybe it's a bit easier to go from a back-end job to trying things out on your own in front-end than vice versa, because back-end without any previous experience seems like a black box full of magic. For front-ends SQL is one of the main concerns and for back-ends I think it's CSS :D

Collapse
diguifi profile image
Diego Penha

I like your post, but there's two things that suck about full stack and it's very important to mention, before telling people to go this path.
1 - It's a cheap way for companies to explore your job to the maximum, spending the minimum amount of money. You don't get paid as "front + back" dev (as it should, since you do both), you get a single salary that corresponds to "full". Good for them, bad for you.

2 - The chance is that people will start to become worse at specifics of front or back, people will have average knowlege, and thus, create average quality apps. It's important that full back and full front devs still exist, because focusing on a single stack makes it much feasible to be actually GOOD at what you do.

So if you're reading this and planning on go full stack, becareful not to become a shallow dev, with median/average knowlege on each stack. Always look foward to deepen your studies on specifics of some stack, because this will make you different from the rest, and actually an useful and powerful dev among the masses. Also, remember that being a full stack is great for companies, but means a lot of work, with no extra money, for you.

Collapse
andrewbaisden profile image
Andrew Baisden Author

There is a caveat here and that is freelancing. If you are freelancing as a full-stack developer then you can afford to charge more because you don't need to outsource part of the work.

Collapse
leouofa profile image
Leonid Medovyy

I agree. Being full stack will make you a better overall developer.

Some problems are best solved on the frontend, while others are best solved on the backend, and thatโ€™s why itโ€™s important to have a complete toolset.

If all you have is a hammer everything is going to look like nails.

Collapse
fjones profile image
FJones • Edited on

Importantly, make it an active choice. I see far too often either backend or frontend developers working on the other end, to speed things up or to simplify workflows, because they feel pressured to deliver or because the communication overhead seemingly outweighs the benefit of just doing it yourself. If you don't want to become a full-stack developer that is fine. I'd rather see the strengths of two team members used than you trying to make ends meet when that isn't your forte. If you do want to become a full-stack developer, be prepared to dive deep into a lot more than you would even as an expert in one field - figuring out how backend and frontend interact is its own specialty to educate yourself in.

And far too often I find backend developers categorically refusing to do frontend, while expecting frontend developers to do backend. Don't be that person. A good full-stack developer is more than just "kinda sorta knowing how to do that, too".

Collapse
andrewbaisden profile image
Andrew Baisden Author

Yes good to have a feel for both areas. Nobody says that you super be super proficient in both areas but at the very least you should know something. The tech industry has become far too diverse to just hide behind a niche and let someone else pick up your slack.

Collapse
jfbrennan profile image
Jordan Brennan

Good advice, but even this is somewhat outdated. Front-end, unfortunately, has become a specialization, and not a temporary niche kind of specialization that leads to a dead end as trends change, but a new specialized branch of the software engineering tree.

I say itโ€™s unfortunate because todayโ€™s excessive state of front-end which necessitates the specialization is a big accident brought on by people YOLO-ing npm and their frameworksโ€™ ecosystems. Like drugs, they know they probably shouldnโ€™t install another 2MB package or a third layer of compilation, but โ€œHey man, one more dependency isnโ€™t going to kill my app, okay?โ€ Then 12 seconds later FCP finally hits and yet another app has sadly overdosed alone in a dark corner of the web.

Letโ€™s un-specialize the frontend so we can all be full-stack and write some db queries again!

Collapse
thumbone profile image
Bernd Wechner • Edited on

Yeah, I'm full stack. But for other reasons. Mainly because I do most of my full stack work out of home, not from work. At work, I'm like most, working on the narrow field I'm tasked to, and that is relatively shallow, we have staff dealing with the stack around my little corner.

But at home, well, I have kept in service junk IT from work as servers that provide services to clubs and societies I work with and they are full stack by definition, including gateway and LAN which is broader even than full stack, maybe we should call that the full schemozzle? ;-).

And one of the drivers of course is a fashion and interest in getting away from the big players. That is Amazon, Google and their ilk out of data ownership and privacy concerns. In fact looking into using Google indirectly, mainly for cloud backups, but hoping for encrypted.

And so there's a Nextcloud here, and a few Django sites among other things running on a handful of servers.

The most common stack then that I work with closely isn't LAMP or MERV or any other funky fashion but LLUPP - an if you never heard of that it's because I made it up, but it's a thing and if it ever takes off, I was there first ;-)

And so it's a direct derivation of the LAMP acronym (Linux, Apache, MySQL, PHP), but uses better tech (Linux, Lighttpd, Uwsgi, Python, Postgresql) ...

Apache is a mystery to me. Every single benchmarking of Apache vs. nginx and lighttpd sees the latter two on par kicking Apaches ass on every single measure, no surprise for a web server that takes its name literally from an intentional pun: "A patchy web server" and that shot to popularity on the measure mainly of being FOSS. The nginx boom is a mild puzzle, given it's not FOSS but freemium, and lighttpd is FOSS and performs just as well on every measure (both are ground up rewrites). I'm guessing marketing and time to market maybe.

Truth be told though I use lighttpd primarily because I use OpenWRT on my routers as best I can, and it runs lighttpd, and fulls stack and all I still don't need to spend time on different web servers unnecessarily ... much rather I tend to add lighttpd support to exiting services (run Nextcloud and Django under it neither support it, they both support Apache and nginx so I'm on my own).

For the rest, well I just landed with Django over PHP and hence Python/Uwsgi as the framework and again while I have some PHP (Nexctloud is PHP for example) I bias toward Django services (host a club site under tendenci).

Collapse
huncyrus profile image
huncyrus

The only real reason is: just because most of the companies and customers are lazy and greedy, do not want to pay properly and have an expert for a problem, but feel it is better and more viable for paying only one person who are devop/sysop/frontend/backend developer instead of paying 4 person.

So in short: the only reason is because easier to find assignment/project/company to work to.

[tl;dr]
Cost effective: yes. Good solution: no.
There is no such fullstack person, who can work on all the fields on the same high level.

It is important to understand other fields than one or two? yes. Could a fullstack deliver great or awesome results: yes. Will be the same level as separate experts: nope.

Collapse
lexlohr profile image
Alex Lohr

Actually, the distinction between full-stack and front/back end is flawed, because these skills are neither binary nor the limit of what one could learn.

However, were looking at a dichotomy between generalization and specialization of skills. Widening your skill set has the benefit of a less narrow perspective, but comes at the cost of less depth of knowledge, whereas concentrating on fewer skills may lead to their mastery beyond what a jack of all trades could achieve.

If your goal is to do everything for a small company, that's fine, but if you want to score a job at a bigger corp, you'll be rather hired for depth than breadth of skills.

Collapse
drhyde profile image
David Cantrell • Edited on

You mean "someone who can drive photoshop and Javascript (both on the front end and the backend), isn't going to do much harm when given the root password"? That's not a full stack developer. A full stack developer could also debug the Javascript interpreter, tell you how to optimise your ORM's crappy queries, patch the kernel, and configure the routers.

But people who are skilled in the back-end stuff aren't going to waste their time with the latest fashionable hotness in rounded corners and Reactular frameworks. They're too busy keeping the internet running and having a life to learn some new temporary fad every year.

Collapse
rocketfever22 profile image
Ricardo Otano

To sum up: I prefer backend as you don't have situations as:

DEV - I'm focusing on fixing data inconsistencies so we don't have unexpected flaws in the project
CLIENT/PO - I know but the loading bar... could it be a little less blue?

That's what makes me run from frontend, hahaha!

Collapse
jessekphillips profile image
Jesse Phillips

I think you should be a QA developer. So many people avoid testing because it is executed as a repetitive task. And automation is just a massive maintenance nightmare.

But all of that is nonsense. A good developer will script out the repetitive tasks. They remove unneeded dependencies that cause the majority of "flaky" tests.

Being a QA developer means your solution is no longer a long list of feature requests, it is a solution to solve your problems, not someone else's.

And you get to learn so much. How the frontend works, how the backend works. And you can influence the design, but if you are not sure how to tackle some specifics, there is a developer there to show you the way.

Collapse
peerreynders profile image
peerreynders

It's peculiar how rarely the other direction of the "full stack" (relative to "Front End Developer") is explored (i.e. full-stack designer).

spectrum of design roles

From The spectrum of design roles in 2018

Collapse
ekeijl profile image
Edwin • Edited on

I'm seeing a lot of posts on Dev and Reddit with titles like "how much JS do I need to know to become a full stack/medior/senior dev?" - it makes me facepalm.

There is no "bar exam" to become a developer. It only matters if you can be useful to the company, it's supply and demand. It matters if you can solve the problems they are facing.

This stuff comes with experience and imo, experience is gained for ~80% by writing code, the remaining ~20% from studying (books/articles).

It is much better to have all of your bases covered so that you are prepared for anything that happens.

I think posts (and especially sentences) like these feed into the feeling/anxiety of junior devs that they need to learn a loooooooot of stuff before they are "worthy enough" of becoming a full stack developer.

Furthermore, I believe in a "T-shaped" model, where a person specializes in some area and has a more general knowledge about related topics. For example, a front-end developer that knows all the browser quirks to deliver a good looking, performing, accessible user experience and only has the 'need to know' knowledge about APIs and what not to get stuff done. Chris Coyier has written excellent articles about this.

Look at how insanely complex writing an app has become over the last few years - and this is just front-end. This is too much knowledge for a single person (maybe a single mythical unicorn) to learn and deliver quality results on all these areas.

I certainly support the growth mindset. I would suggest to focus on an area that interests you as a developer and learn just enough to deploy your app into production. For front-end developers, 'serverless' technologies and platforms like CodeSandbox and Vercel have made this stuff super easy. Then, you can expand your knowledge on a wider range of topics. I wouldn't say it is a must to learn "full-stack" from day 1.

Collapse
abhinav2127 profile image
Abhinav Jha

I think Full Stack developer is a limited profession. If you have certifications in cloud computing and able to work with cloud solutions you should be name Poly-Stack Developers.
If you think it's true share your views.

Collapse
imhotep111 profile image
Dr Imhotep AlBasiel

Coding has become like MMA fighting some jobs will take you to the ground on the background of a job you could stick and move on the front end Cabrillo reality as being able to decode from the ground or quote standing up front-end and back-end work together learning one I feel there is incomplete because people want developers who can do everything solution providers incoming mail you can have everything

Collapse
imhotep111 profile image
Dr Imhotep AlBasiel

Being at the valley for 21 years there are no real job titles disability too cold and use a w s and related services and figure out anything as to real title the reality of your family the more you know the more you can survive sure

Collapse
davidcolbyatx profile image
David Colby

I have to push back a bit on a junior who knows a JavaScript framework being a more versatile developer than a senior who doesn't. I'd bet on the senior building a really solid, extensible, and powerful application with their backend language of choice + HTML, CSS, and vanilla JavaScript. Especially these days with things like Laravel's Liveview (or Rails' Hotwire). JavaScript frameworks are cool, but they're not the only important thing in a web developer's toolkit.

Collapse
avinashvagh profile image
Avinash Vagh

Hey Thanks Man! It gives me a new perspective ๐Ÿ”ฅ

Collapse
mojetioluwa profile image
Dahvolee_2004

This is really inspiring for young developers like me who want to grow. Thank you for this write up.

Collapse
koladev profile image
Mangabo Kolawole

Well written article Andrew.

Collapse
icecoffee profile image
atulit023

I've seen so many articles saying that you shouldn't be a developer. It's finally good to see one where someone approves with my point.

Collapse
jwp profile image
John Peters

Knowing both doubles job opportunities. Can't match that on a front line craps bet.

Collapse
maxoralbay profile image
Max Oralbay

i just started to build php framework after i loved it for a long time :)

Collapse
imhotep111 profile image
Dr Imhotep AlBasiel

That's a very reAl

Collapse
timothy profile image
Timothy

I agree with most of the comments ๐Ÿ˜‹

Collapse
imhotep111 profile image
Dr Imhotep AlBasiel

In today's development environment and you have to figure out anything they need that's the job.

Collapse
tushar0107 profile image
tushar0107

Hi, I am a self learnt web developer. I want an internship. Anyone please tell me if I can send my resumรฉ directly to the company or should I find an HR or someone who can recommend me to his/her company. Please help, I am stucked at this point.

Collapse
andrewbaisden profile image
Andrew Baisden Author

Doing it yourself sounds like a better idea. Why leave your future up to random HR managers who could just ghost you or put your resume at the bottom of a pile because they think that you lack experience.

More success comes when you put yourself out there and go for it.

Collapse
tushar0107 profile image
tushar0107

That's not as simple as we talk. I too want to work independently. But money limits the dreams. I have learnt programming with mobile, I don't have a laptop, neither I can buy it now. That's why I am trying to first achieve a job and earn some money.