4 ms·
Add them on and some people still fit the definition. You're right, I think; compilers, machine code, operating systems, every single part of the computer down
by calinet6 13y ago
Add them on and some people still fit the definition.
You're right, I think; compilers, machine code, operating systems, every single part of the computer down to the silicon (really, understanding the germanium doping that allow the transistors to work) including the electrical engineering, then the physics, and even chemistry that allows it to happen—that's really all part of the "full stack."
I think the true 21st century Renaissance Man (or Woman!) will have a broad generalist understanding of the entire technological craft, beyond even that which he needs to know to do his work. Will he ever need to understand the properties of silicon to make a web site beautiful? No. But he does anyway.
That's the point: the breadth of knowledge for the sake of it.
Having the knowledge and respect of every part of the stack allows you to know what you're doing in a way very few people can. It allows you to say Yes to so many more opportunities, to find the correct answer to thousands of possible questions if only by knowing the right person to talk to. It's the musician's flexibility of being able to play jazz and classical—it opens new doors and makes you better at both, in some unquantifiable way that no one quite understands.
So, put them on the list, and we'll talk Abstract Syntax Trees and A/B UI testing in the same sentence. Do they ever touch? Only at such a distance as to be nearly inconsequential to each other. But somehow, it makes you better at both to understand exactly how you get there from here.
- gngeal 13y agoYou're right, I think; compilers, machine code, operating systems, every single part of the computer down to the silicon (really, understanding the germanium doping that allow the transistors to work) including the electrical engineering, then the physics, and even chemistry that allows it to happen—that's really all part of the "full stack. I think the problem is that people avoid these things because they think that they are complex. I'd argue that they are not: it's just that the SW ecosystem commonly used in practice is all too bloated which may create this impression. (HW as well, compare x86 with something nice, for example MIPS :-)) Many people would probably be surprised how small and simple can many useful things actually be. (Also, I have a growing suspicion that the complexity of the current HW/SW ecosystem is partly driven by their independent development, and partly by having to implement legacy stuff - case in point, you need a complex GPR allocator to generate efficient x86 code, and you need complex register-renaming HW in the CPU to actually process x86 code quickly. Simply raising the GPR count and redesigning the ISA would alleviate both sources of complexity. I'm growing increasingly fond of all those 1970's/1980's actual "full-stack" projects.) Oh, and what computers use germanium doping? I'm not conversant with current technological processes, but the last time I checked, most microelectronic components used mono-crystalline silicon for bulk stuff, SiO2 for insulation, aluminum or copper for wiring, and P, In, As, Ga etc. for channel dopants. Is there some new heterogeneous SiGe technology in use that I'm not aware of?
- calinet6 13y agoAh well, you know, jack of all trades master of none ;)