Rowan Merewood (@rowan_m) was talking about building better developers, these are my notes from his talk.
Hints, tricks and stories to help improve as developer.
"I am a tool" - I need to improve myself. We already do a lot of good stuff - hang on to that. We don't have to become a superhero, if you try and become the best at everything you will burn out.
Your editor is part of you
This is where you spend most of your time. It's the connection between you and your code, you don't want to have to think about it. Tools are there to achieve goals, you are a professional and your tools are complicated in order to do a complicated job.
Read Neal Stephenson's "Hole Hawg" - Vim is the Hole Hawg of editors. Try vim-adventures.com.
Some things you get better at just because you use them, other things you have to practice how to get better at. Kata - deliberate, controlled and repeated.
Code Kata - Dave Thomas. Simple problems you should be able to solve in under 20 minutes then throw away and solve again the next day typically using a different approach. When you come across these problems in the real world you just know how to solve it.
Master your craft
Dreyfus model of skill acquisition:
- Novice - knows the area exists.
- Beginner - can follow instructions.
- Competant - most professionals are here.
- Proficent - really good at this, know why you are doing things and can mentor.
- Expert - zen level guru stage who is the person of last resort and you won't necessarily understand what they did.
(These are the Con X skill levels.)
Measure what matters
To understand what you need to do you need a metric. Measure systems, don't measure people. A metric helps you achieve a goal, don't chase the metric if you achieve the goal. If you get your metrics wrong you can encourage counter productive behaviour.
T shaped people
Valve software employee handbook is amazing. Introduces the T shaped person who has a broad range of experience but one deep speciality. The broad range of experience allows people to understand others in the team who are specialsts in their area.
Not the sharpest tool
If you're the smartest person in the room you're not going to learn anything. John Carmack from id Software's Q_rsqrt function - he didn't write it, it had been handed down via several generations from an acedemic paper. Brian Hook's "Smart guy productivity pitfalls" - took him a while to find his own boundaries but then he became much more productive.
Adjust your attitude
"The Dude abides." Being passionate and authoritative does not mean you have to be an angry asshole. Linus Torvalds is famous for going off on one, sometimes can be misjudged. Elizabeth Naramore "Uncomfortable" - if I'm uncomfortable going somewhere I'm not going to go there.
Speak out and be heard
Understand the type of people you want to interact with you. Being rational and accepting does not mean giving up your principles.
- Attack ideas not people
- Deliver bad news early
- Lean to say "no"
- Ask the dumb fucking questions
Join the community
You can be a hero - just not on your own. Contribute to the community in any way you can, it doesn't have to be writing code.
Enjoy what you do
This is a career, a profession, a life-style choice, not a 9-5 job.