Becoming a better developer (it's not just writing more programs)
I asked on Twitter today something I’d been talking to at lot of friends about – how does someone become a senior developer? How do I know what I should be practicing? What qualities should I be looking for in mentors?
The best answer I got was this blog post: On Being a Senior Engineer, by John Allspaw at Etsy. I am mostly writing this so I can remember go back and read that repeatedly. It talks about
- taking and seeking out criticism and
- non-technical skills and
- estimates (eeep! so hard!) and
- doing tedious and boring work and
- raising up the people around you (“generosity of spirit”) and
- making tradeoffs explicit when making judgements and
- empathy and
- cognitive bias and
- so much more
But you should just go read it.
I’ve also been thinking about this tweet by @seriouspony:
Myth: to get better at x, just do a lot more of it (writing/skating/coding, etc.) What/how you "do" X matters far more than how much/often.
— Seriouspony (@seriouspony) November 25, 2013
and how it’s easy to get stuck in a rut and keep doing the things you’re comfortable with. I’d like to not do that.
A few other things people linked me to that were interesting:
- Engineering Management by Yishan Wong
- Kate Matsudaira on leadership
- This programmer competency matrix has some good categories for purely technical skills
- A repository of job titles by Urban Airship
- a software engineer title ladder
- Joel Spolsky on compensation and titles