
I have been thinking about the so-called Fullstack Developer role lately, and I wanted to get some things off my chest.
I don't like the term. It ...
For further actions, you may consider blocking this person and/or reporting abuse
I've been in this game professionally since before the terms 'backend', 'frontend', and 'full-stack' even existed. Everyone used to do a bit of everything (server, webserver, database, front end, back end, desktop apps, system utilities, etc.)
I've been writing code for 38 years, and doing it as a job for about 26. I just consider myself a developer. It's really best to not pigeonhole yourself. Learn and practice anything you find interesting - financial or career advancement should not be your goal/motivation.
It's testament to either: the declining skills of developers, or to the explosion of over-complexity that has gradually taken over and plagued our industry - that these roles have come into existence. I suspect the latter.
After ten rich years in the software industry, I've learned this:
About 95% of so-called fullstack developers are bad at CSS/HTML, and many of them treat this tech as a "bonus" or "nice to have".
In other words, only like 5% of fullstack developers are "genuine fullstack developers".
Specialization is healthy for our industry. The complexity of software is increasing rather than decreasing. It will be disastrous more often than not to naively believe a single skillset in a single person is sufficient for that complexity. Professional programmers should push back on the false idea of the full stack developer.
I have had rather heated discussions with supervisors on this very subject. Full-Stack is indeed almost universally just a label for (in my experience primarily frontend) developers who dabble in "the other side" just enough to get by. Backend developers tend to refuse work on the frontend - at most, they'll hack something in that just about works and then claim to know just how "easy" frontend is, and thus why backend is worth so much more. It's a silly notion and it reinforces some heavily unbalanced attitudes. Especially when, in turn, frontend developers are expected to do their own backend work because reasons.
To me, Full-Stack is an entirely different skillset, and specifically addresses two important architectural aspects: In-depth understanding of the communication between backend and frontend (i.e. front-facing API design, which a great lot of people are awful at), and in-depth knowledge of both frontend and backend. A full-stack developer is not just a "jack of all trades, master of none", they're sufficiently experienced in multiple parts of the stack equally. Juniors do exist, but they're approaching their education and training vastly differently from single-aspect juniors.
There's something to be said for experts in either backend or frontend, obviously, in that they may have an easier path to further depth in their field than full-stack developers, but the skillset they develop also requires such depth. Whereas full-stack developers tend to work shallower and instead have a skillset that more easily enables deep dives where needed.
In summary: Full-stack developers make better architects, but single-aspect developers make better programmers.
I agree with this part in particular.
Yes, I have full-stack on my resume and some of my profiles. But you'll notice that if I use the term at all, I almost always put either "full-stack web developer" or "full-stack JavaScript developer" because I am comfortable referring to myself as such while still keeping a straight face. That doesn't make me a "full-stack developer" nor a "full-stack engineer".
Quite frankly, I think web/JavaScript developers and software engineers are two completely different categories with minimal overlap. Some might disagree, but I don't consider myself a software engineer and I'm okay with that. It doesn't make me better or smarter than you and vice versa.
I think the T-model is probably the best learning approach overall, but it's also perfectly fine just to be exceptionally skilled in only one or two languages or frameworks. Some companies may pass you up, but eventually someone is going to notice your skill level and decide that it's worth it to hire you because you can outperform the others, even if it costs them a little more.
fullstack = backend + frontend. It doesn't mean he/she can do everything, but willing to work on both side. The label is stucked in the industry, especially the job market. So yeah, you have to accept that fullstack is not equivalent with the master of everything.
Nevertheless, the usual demand is that this fantastic creature is
In fact we have CV-masters who aren't even advanced in anything.
I don't completely agree, there are devs working on smaller/simpler apps or sites and they just do "the whole thing" (backend and frontend), often even as a solo dev. Not every app or site needs a complicated frontend which requires a "specialist".
Maybe the term 'full stack dev' is overvalued and more glamorous sounding than it deserves, but I do like the (old fashioned?) idea of a competent dev who can "do the whole thing" including analysis/design, coding, testing up to rollout and even admin.
P.S. neither backend nor frontend are generally "easy" or simple in any shape or form, and with bigger and more complicated projects you're often indeed better off hiring specialists in either of the two areas
That is true, specially with founders who have to do the whole thing without the need of specialists to get going. I think in this context (and the one you advocate for) is more an attitude than an aptitude. With that, I agree.
It should be rather the t shaped model, for example I'm backend dev - I know and use ddd/even sourcing/cqrs (those terms are usually unknown on frontend or for js devs) on my backend side. But I can do the proof of concept with js, react etc. Am I a fullstack?
If your boss is over 40 he probably is a full stack developer. We bring specialized branchs to the software industry because we had no talents. In the 2000 we started to have specialized workers, to get them rapidly on the market. Instead of hiring ingeneers, we started hiring will stain low qualified, what we irocanicly call "a specialist". Enjoy the mc donald's inside ;-). The purpose of coding is just to make an hardware working. If you start telling mysql has to be studyed for 30 years, for sure you should review your skills...