4 ms·
> The difference between a junior and senior engineer is really the difference in knowledge about what can go wrong, and that knowledge is fundamentally about
by bcrosby95 4y ago
> The difference between a junior and senior engineer is really the difference in knowledge about what can go wrong, and that knowledge is fundamentally about architecture and edge cases, not coding ability.
What do you define as part of coding ability?
You're making design decisions anytime you code things. Sometimes its smaller scale but sometimes it's larger. Edge cases and consequences of your code are abound in every line you type.
Trying to divorce these things from coding ability feels really artificial. If they aren't coding ability, what is? Raw typing speed?
- twblalock 4y agoThe difference is understanding the architecture at a higher level: how programs communicate with their dependencies, how to do resiliency and failover, how to scale an entire system of such programs, how to react when something is wrong in such a complex system, and crucially how to design your programs so they can behave as expected when things fail.
- still_grokking 4y agoAnd how do you program such complex software in the first place if you don't know all those things? Not understanding the architecture means not knowing what you do at all! If you don't know what you're doing you should be strictly prohibited form doing it anyway. Or else you will very likely cause damage. Or do you think it's viable that some programmers require constant hand holding with almost every line of code they write because they otherwise don't know what and how to implement anything correctly? The model "coding monkey" just does not work; as everybody knows…