When I heard the term, I thought it should represent a self-reliant developer who could build anything in the computing stack. One such as Chuck Moore or Niklaus Wirth who designed the CPU’s, built the board, designed a language, implemented a compiler, implemented OS/drivers, implemented apps, and could do Internet or distributed systems to some degree. I had learned a lot of that at one point with analog/digital hardware, some aspects of OS-level coding, and protocol development remaining. I hoped to learn those to eventually become what I’d describe as a full-stack developer.
Then, I found out what it meant. My skepticism that there were a bunch of Moore’s or Wirth’s these days was warranted. Instead, they know about a lot of “webshit.” They’re web developers with some server administration experience. The articles and job ads should’ve just said web developers w/ server administration followed by specific technologies. (sighs) I still want to be a real, full-stack developer one day, though. :)
Who can really call themselves full-stack? How many people can:
My skills cover a reasonable spread, but one person doing all of these things is not a good path to delivering quickly.
So, I’m going to be a little contrarian here (surprise), but I’d suggest that anybody who doesn’t know how to at least fake each of those things is a junior developer. I’m also going to point out that the “visual design” stuff is purely optional for delivering value–the rest isn’t.
That being said, I think we need to get over the idea that knowing the “full-stack”, from being able to build and provision your machine from parts all the way up to showing an interactive database-backed web page on a screen, is somehow anything other than baseline.
If you can’t do everything a little bit, you don’t understand the job at a senior level. No if’s, and’s, or but’s.
Also, one person doing all of those things can be remarkably efficient. Go try a product spike or a hackathon if you want proof of that.
If you have a good understanding of software systems, I think you should be able to learn everything quickly with a bit of reading except for design, which to me feels like a different skill set.
Visual aesthetics and its design share remarkably many meta-properties as with doing mathematical proofs, finding clever optimizations in programs, and understanding systems and protocols.
I also agree that once you’ve spent more than about 1.5 years doing web development, you should be able to do this level of work at some basic level. Ofc, racking a server isn’t quite as common today, thanks to VPS and cloud providers, but being able to go from machine to Website is table stakes for webdev, not some crazy mystical skill.
That being said, Android/iOS skills I would likely not include in a definition of Full Stack, but that is me personally.
I’m currently working on a side project solo and have definitely found this. I’m also not sure where is the best place to find people who are willing to do paid work on a side project for limited hours to fill my skill/time gaps (mainly around frontend stuff). But it has caused a huge delay in delivery.
I’m kind of confused by programmers who aren’t interested enough to try to understand everything from the pixels to the transistors. That’s why I’m in this game!
It means you don’t write the kind of code that appears in the hero image of the article.
This article strays into “no true hacker” territory for me, including the nonsense absolutely needing to code in your spare time to be any good. Thankfully it doesn’t invoke the angry spirit of michaelochurch by mentioning “passion”.
I’ve only ever understood full stack to refer to the client and server sides of web application development, typically in connection with coding bootcamp grads who are expected to be able to deploy an app to the web and make it do something useful in a browser after a short time spent learning the basics of one stack. There’s no need to belabor the definition with a bunch of extraneous cruft just because you’re angry about the kids all over the lawn. A useful screener question I’ve asked in the past to determine if someone fits the bill as a junior full stack developer is: “A web page is slow! Why?” Good answers involved some awareness of what happens between the client and server and suggested working backwards from the browser to find the cause. Bad answers invoked low-level networking crap as the first explanation and once even veered into the weeds of Network Neutrality. Elusive hacker credentials were not expected or wanted.
What “full-stack” means to someone who has been in computers for 30 years: you can take the OSI Model, throw a dart on it, and wherever the dart lands, implement the layer for your app.
All you kids need to learn the OS Model.
I’ve been forgetting to comment, but this article (https://www.destroyallsoftware.com/compendium/network-protocols/97d3ba4c24d21147) hitting HackerNews reminded me to ask: where would you go to learn the OSI model if you had to relearn it?