3 ms·
To me, a junior is someone who doesn't know what or how much he doesn't know. From either a technical or a practical/logistical perspective. A junior might also
by cauterized 10y ago
To me, a junior is someone who doesn't know what or how much he doesn't know. From either a technical or a practical/logistical perspective. A junior might also be someone who doesn't know how to find answers when she does recognize something she still needs to know.
A junior will either get paralyzed by being unsure where to start, or will confidently plow through a problem creating an enormous mess of unstructured code until he gets stuck either on a hard part or because his creation is collapsing under its own weight.
A mid-level engineer is aware of how much he doesn't know and also knows and uses techniques to remedy that situation. A mid-level engineer can't yet do everything on his own, but he knows that. The best mid-level engineer knows when to go to Stack Overflow for details on how to use a library, and when to ask a senior teammate for design or architecture advice.
A senior can be trusted to work almost entirely unsupervised. She still doesn't know everything, but she's had enough experience in how not to do things to be able to write maintainable and extensible code on her own. She may still run her choices by a colleague for a sanity check, and she still needs to google anything from a method signature to workarounds for a library bug to tutorials for a new framework. But she's capable of producing excellent output even in professional isolation.
And job titles mean nothing. Apparently in the iOS world, if you're not entry-level (as in fresh out of a 6-week boot camp) you're a "senior". Which is ridiculous. Not to mention making hiring actual experienced people impossible.