DEV Community

Discussion on: Calling all Full-Stack Haters

Collapse
 
dexygen profile image
George Jempty

I have 20 years web development experience, the first half of that being what we today call full stack. For the most part, if you were a web developer in those days, you were a full stack developer. So much for the argument that "full-stack development (is) a “myth”, a “lie”, or a “scam”" -- just go back 10+ years.

Collapse
 
psihius profile image
Arvids Godjuks

10 years ago the knowledge you needed to do both backend and frontend (PHP, JavaScript, HTML, CSS) was so much smaller. These days just doing markup of HTML & CSS is a huge field. I work with people who do that specific job in 1/10th of the time it would take me and they know things about browsers and their issues that I never did or will because you have to be really working that field full time.
A front-end JS framework these days is a big thing, to any proper marketable and applicable to the job tool you need a year or two to really become good at it. The issue is - I do not have that much time to do that if I also work backend, dealing with server scaling issues and trying to keep up with the business needs. Also, I can do 2 to 5 times more efficient job on the backend than the frontend anyway and the company literally will lose money if they put me to work on the frontend. I'm fairly capable to adapt in a month, but it will take me multiple years to really properly learn the tools and get up to speed with someone who does frontend full time.

My issue with full-stack terminology is when this is applied to Senior (and I mean proper Senior positions with experience of 7-10+ years under the belt) where it is clear you need a specialist in the field. But for some reason, they still look for full-stack so you get ignored by the HR just on the fact you are a backend developer.

Collapse
 
dexygen profile image
George Jempty

The knowledge may have been so much smaller, but the tooling was far worse (Venkman for Javascript debugging, ugh), or even non-existent (no console)

Collapse
 
tobiushirogeri profile image
Alex B. • Edited

Amen! I've been coding for more than 15 years. Back then you HAD to be a jack of all trade.. and don't forget, GitHub didn't exist, stackoverflow neither, we learned to code by reverse engineering code, you know, the hard way!

Collapse
 
dexygen profile image
George Jempty

Hell we didn't have an easy to use Javascript debugger unless you include Venkman, ugh. To solve an issue with math going awry in a grid in 2001, I kept moving an alert (no console either) further and further along in the code until I pin-pointed it: passing values beginning with 0 to parseInt. I don't even know about documentation, but I did have the one and only good book on Javascript at the time, Flanagan's Definitive Guide. Nevertheless, that's a half week of my life I'll never get back.

Collapse
 
scott_yeatts profile image
Scott Yeatts

I'm wondering if the entire issue is a generational one. The folks who remember the times that full-stack was the pinnacle, and the newer developers who hear about it from those guys and immediately say "What? No, that's not possible, it must be a lie".

The older guys have all these skills, but it took 10-20+ years for proficiency, and the younger guys (validly) don't see the same path available to them as specialization has spread out and become more defined over time.

The 'hard way' that Alex is talking about doesn't exist anymore, and without it the guys that are (validly) proud of themselves for the hard work they did to get where they are want to tell people about the experience, while the guys that are (validly) proud of themselves for choosing a specialization and being very good at that, think the "uphill both ways in the snow" kind of talk sounds either like we're crazy, or we're lying. Because they've never experienced a world where that would or could happen (and that's a GOOD thing, because it means the developer experience is getting less obscure and more inclusive... and not at all a knock on newer developers)

Just a thought. I'm not well read-up on this latest schism hahaha.

Collapse
 
thejoezack profile image
Joe Zack

Really great insight, I hadn't thought about how different generations might think about the subject.

Collapse
 
spencerdoak profile image
Spencer

Completely in agreement with this view. Frankly, though, I think it's highly problematic to have a generation of developers -- a generation which I fall within, I might add -- who specialize in just one side of the equation, or, worse yet, in just one particular technology/framework. While I would never try to argue that developers should be equally pro-efficient and competent in all sides, every developer should at least have some experience with all sides. I generally hate doing front-end web-development and I would much rather write a back-end system, but I do at least have experience writing front-ends. Possibly more important, though, my experience is not with a particular framework, but rather writing my own CSS, HTML, and Javascript from scratch for a live, commercial system. Furthermore, I had to administrate my own Linux server and database for that. I would never want to go back to it, but I have found the experiences I gathered from doing it to be invaluable in implementing solutions, debugging through problems, etc.

The absolute worst thing we can do as an industry is churn out a generation of developers who ONLY understand one framework/library. Frameworks come and go. Chances are that while ReactJS or Angular might be popular today, they won't be the hot, trendy libraries in 10 years. Having true developers who understand the full-stack is absolutely essential to the longevity and health of the industry.

I will take that claim one step further, though, it's not JUST about understanding the back-end (e.g., NodeJS) and the front-end (e.g., React): developers really need to understand the underlying fundamentals of computer science. Don't fully understand how your application runs on top of your selected OS? Get a book and start poking around on the machine until you at least understand the gist of it. How else will you know how to thoroughly investigate and track down the cause of a production outage? Don't understand how your database actually stores data? Get a book and start poking around. How else will you know why your database model is not scalable due to the amount of data you are storing?

In my opinion, the lack of understanding the fundamentals is at least partially a result of coding camps that give you a two week intro to some language/framework and promise to take you from totally inexperienced newbie to professional. Sure, they might teach you enough to land a job writing front-end or back-end code in the language of choice, but you never learned the underlying principles that power that technology, or how exactly all the pieces fit, so once the industry moves onto a new hot, trendy technology, these developers will be fighting one another for whatever jobs remain until eventually even those dry-up.

sigh it seems like the industry is moving in an unhealthy direction right now, and the attempts to criticize full-stack developers as being liars and frauds only further reinforces this assessment.

Collapse
 
tobiushirogeri profile image
Alex B.

Agreed,
Miyamoto Musashi said it best : You must understand that there is more than one path to the top of the mountain.
(Miyamoto Musashi, A Book of Five Rings)