|
I really liked this comment by @stray [0] from a similar Ask HN from a few months ago. That thread was titled "Ask HN: What makes a Senior Dev". Mistakes, rewrites, late nights, firefights, and deadlines.
Core dumps, memory leaks, hardware faults, and plain bad luck.
Big O, data flow, always learning -- or out you go.
Manager metrics, schedules hectic, methodology hegelian dialectic.
Taking the heat, feature creep, open office, uncomfortable seat.
Holy wars, revolving doors, carpal tunnel, all you can take? There's always more.
Fucking suits, random reboots, and the ever present "thousand language stare".
Oh yeah, pressure -- lots of pressure. And time, time, time.
Metric shitloads of time.
Time, man. You gotta do your fucking time.
[0] https://news.ycombinator.com/item?id=11341567 |
mrmekon [1] gave an excellent answer:
It depends on when and why I'm defining it, but my guidelines are more based on how they work than what they know:
* Junior developer - Will not produce much business value if left alone, and may produce nothing at all. Requires supervision.
* Intermediate developer - Will produce something if left alone, but not necessarily what the business most needs. Needs minimal supervision, but defined goals.
* Senior developer - Will produce immediate business value if completely ignored.
The domain and language don't matter for these, really. A Senior Go developer is going to produce immediate business value if you suddenly throw him/her into a Lisp team, too. Just slower.
Between the two answers I think they have it covered. Now some businesses will call people senior after they've been there 5 years, but they might still be a junior in capability.
[1] https://news.ycombinator.com/item?id=12557542