3 ms·
My personal take on it is that junior/mid-level/senior/etc. are driven less by pure technical knowledge (someone can have encyclopedic knowledge of a piece of t
by ubernostrum 9y ago
My personal take on it is that junior/mid-level/senior/etc. are driven less by pure technical knowledge (someone can have encyclopedic knowledge of a piece of technology and still not be "senior"!) and more by how you think about things and affect others around you.
A rough breakdown would be:
* Junior: your focus and what you think about stays mostly on the piece of code you're currently working on. You should be able to answer questions about what you're doing, and explain how the code works.
* Mid-level: your focus is a bit broader. Now you're thinking more about a bigger chunk of a project, and several developers' efforts on it. This is where you should start being able to talk not just about what is being done or how, but also a bit about why. You may start being expected to pair with others of your level, or junior to you.
* Senior: again your focus is broader. Now you're thinking about entire projects/teams, and while you still do and must write code for those projects, you also spend an increased amount of time identifying things that slow or block everyone else, and putting in effort to speed up or un-block (for example, you might develop reusable libraries or solutions for common problems the team is running into, allowing everyone else to get work done faster).