I would definitely distinguish between html / css / javascript and server side application code, be it in ruby or python, I just didn't think working on the server side application logic completed the "full stack".
To me full stack means you are into the systems a bit too and would be capable of setting up the stack itself (and perhaps enhancing it, or setting up custom batch systems), not just working effectively within a larger space provided by the application frameworks.
But perhaps I just have the terminology wrong? Full stack developer = someone who works across the application stack, and I'm thinking more of "systems" or "backend" engineer?
Yes, I do feel you have the terminology wrong. I consider myself full stack and I work with Rails, Django, etc. I have interviewed with many companies with the title "Full Stack Developer" and most of them have not expected the type of experience you are talking about. I think you are talking essentially about a Systems roles.
When you are full stack there's usually an assumption that you are "better" on one side of the stack and won't be strong at everything. So a back-end focused full stack developer would be better at the things you are talking about while a front-end focused full stack developer would be much stronger in Javascript / CSS. The main thing is that you understand how an app works end to end and can contribute / fix bugs across the stack.
The term "full stack" often only seems to denote someone with both front- and back-end experience; anything below the server application is often considered the domain of "operations".
I do think it would be nice if the term carried more meaning, but given most companies are running their systems on top IaaS/PaaS offerings from Amazon/Google/Microsoft/etc and tend not to care about things beneath the application layer until they're making more money than sin it's fine as-is for the time being.
They were talking about front end dev, backend dev, and full stack dev. Those distinctions are only applied in web development. Grandparent post thought full stack meant knowing about deployment and setting up deployment environment too which goes beyond full stack into the realm of operations.
Outside of web development I haven't heard about such distinctions like backend or frontend. There are application developer, system developer etc.
I call myself full stack and mean what you mean. I typically have to explain that when I say full stack I mean "literally full stack" as in I have a working level of knowledge with every piece of the system from hardware/kernel to networking to databases to application.
I do agree that when people use the term though they just mean "I can code in a backend and a frontend language".
>>when I say full stack I mean "literally full stack" as in I have a working level of knowledge with every piece of the system from hardware/kernel to networking to databases to application
That seems like an impossible definition to fulfill by most humans today, though. I mean, how "deep" do you take it? Pre-processed code? Assembly code? Object/Machine code?
Computers today (especially server-based systems) are so massively complex that I don't see anyone possessing working knowledge of "literally" the entire stack.
And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
> That seems like an impossible definition to fulfill by most humans today, though. I mean, how "deep" do you take it? Pre-processed code? Assembly code? Object/Machine code?
There is a lot of dumb jargon, misleading labels, and wrong analogies borrowed from other fields that are popular in tech right now. You can call yourself whatever you want, but if you have never used gdb and call yourself "full-stack," you are being pretentious.
> Computers today (especially server-based systems) are so massively complex that I don't see anyone possessing working knowledge of "literally" the entire stack.
I literally have enough breadth of knowledge to figure out a problem at any level of the stack from top to bottom with some help from google/books. And no, I don't mean finding it on stackoverflow/stackexchange and copying an answer :). This is what I define as working knowledge, that I know enough to be able to debug issues in the subject with help from resources which I also know how to access. Depending on my familiarity with the particular piece of technology and the difficulty of the problem this may take me anywhere from seconds to weeks. I don't just say this either, I have actively debugged issues at most "levels" of the linux application/OS stack throughout my relatively short career so far.
Basically, you give me a problem and I have the tools I need to figure out the solution or root cause without help from any other team members(though help can certainly speed things along). The only question is going to be time.
> And then there's the question of the depth of one's knowledge. I'd argue that the more you spread it out, the thinner it gets at each level of the stack, just by virtue of the fact that one has only so much time to spend on learning, practicing and keeping their skills up-to-date.
My depth of knowledge in each area shrinks and grows as I need to use it. As said above though, I have just enough depth in every area to "be dangerous" as they say. I certainly have more breadth than depth in most things but I match or beat my peers in depth on the technologies I deal with daily.
From my experience I would say that what you are describing at the end there is a full-stack developer. It's someone that works across the application stack, not setting it up to make use of it. Although many probably can, it's just likely not their responsibility.
Id say some one who is comfortable working at all the layers 1-7 ie be able to design spec and set up (or supervise the set up) of a small office network
To me full stack means you are into the systems a bit too and would be capable of setting up the stack itself (and perhaps enhancing it, or setting up custom batch systems), not just working effectively within a larger space provided by the application frameworks.
But perhaps I just have the terminology wrong? Full stack developer = someone who works across the application stack, and I'm thinking more of "systems" or "backend" engineer?