Any programmer who can’t recite the fallacies of distributed programming from memory should not be permitted near any kind of networking code.
Any programmer who is permitted to program networking applications (c.f. #1) should be required to only use a network environment (for work and personal use) that is high load and low reliability while doing so.
If you don’t have used-in-anger knowledge of everything from an HDL to a formal theorem-proving language, plus the entire spectrum in between, you should not call yourself a “full stack” developer. The stack is much deeper than you can imagine.
If you don’t know everything from network PHY to high-level networking abstractions you should not call yourself a “full network stack” developer. Network stacks are also much deeper than you think.
Any programmer who can’t recite the fallacies of distributed programming from memory should not be permitted near any kind of networking code.
Any programmer who is permitted to program networking applications (c.f. #1) should be required to only use a network environment (for work and personal use) that is high load and low reliability while doing so.
If you don’t have used-in-anger knowledge of everything from an HDL to a formal theorem-proving language, plus the entire spectrum in between, you should not call yourself a “full stack” developer. The stack is much deeper than you can imagine.
If you don’t know everything from network PHY to high-level networking abstractions you should not call yourself a “full network stack” developer. Network stacks are also much deeper than you think.