| I'm reading all those "full stack" topics and can't help but scratch my head. What does it describe? Is this some common basic term I'm actually missing? To me full stack would start way down at the hardware design and end just when the computation has finished and (possibly) persisted to disk. A vast field that I can't possibly hope to learn in a lifetime. Dear HN please enlighten me |
This term really caught on with people who develop for the web because there actually is a divide here: some people really prefer the front-end work (JS/HTML/CSS), some people prefer the backend work (sysadmin/app logic/data stores) and some people prefer both.
So basically, if someone says "full stack", they likely mean that you can develop and run the entire product, not just a part of it.
Having said that, I strongly encourage everyone to go deeper. Learn some C. Figure out the difference between a function and a syscall. Understand what the kernel does and how it works (whichever kernel you happen to use). Write a toy libc. Program for a microcontroller (try adding RAM to a microcontroller circuit for added fun). Play some Minecraft. Write a bit of assembly. Create a data store. Develop a JS framework for DOM manipulation. Create a toy programming language. Write a malloc implementation. Write a kernel module (maybe a driver to that microcontroller device you put together). Write a web server. I find that the more of this kind of stuff you do, the more aware you become of what `display: block;` will do and how to structure your code better.