“Oh the Fail I’ve Known”
“Hurry up and lose the first fifty games” – Zen Koan, quoted by Adam Keys in his talk
My notes of Adam Key’s excellent, inspiring talk from RailsConf 2008 about learning and failing. His talk lived up to the expectations from the conference schedule description.
Fail is transitive
Example: Active Web Services is not that great because of SOAP (or as one of the Rails-Core members said “Using SOAP is like eating glass”)
You only learn by falling down
You can get to the point where you are OK in hockey, in which you skate around and get the puck and don’t fall down. But you can’t play hockey well without falling down. Getting back in the fray is what important. You were hockey pads so you can get get back up and get back in the game. Adam said that with the pads on he would dive into the thick of it, throw himself on the puck.
There are two types of learning. 1) Books, others, knowledge 2) By doing it yourself. The latter is harder but much more rewarding.
Iterate on the things that you aren’t good at. Set yourself up to rapidly try different approaches until you get it right.
Make bigger mistakes
Golf is like programming. There is a positive feedback loop based on confidence. Adam was starting up golf again after a hiatus. He found himself using the short clubs which were easier to use but not as powerful. He realized “I need to make bigger mistakes” Might as well make that one big shot, big and impressive. Try the larger clubs, not doing well at it.
Once you get into coding, the feedback loop, it’s easy to get going. Tip: Start day with small bug fixes (go to bug tracking, ta-da, done!) Set yourself a little goal – see how fast you can get it done.
The grass is greener on the other side – it must be great. You’ve just got to get there to try [the other side]. Example: Pragmatic Programmer – learn a new language every year. You really only learn the important bits by doing. New languages, APIs, customers, problem domains.
Get outside of your bubble, technological comfort zone. Adam goes to PHP, Dot.Net conferences. His friends who are in the bubble ask him why.
You always need to be looking for greener pastures but double check that the pastures you thought were green really still are.
Know enough about the domain so you can communicate, don’t need to be an expert. Example: Know enough TCP/IP to talk/communicate to web server guy. Be able to have a conversation with enough knowledge to carry on a useful conversation.
People “hacks”
Study and apply “How to Win Friends and Influence People”. Check your ego at the door. They don’t care who is right, just want progress. Ego is a big source of problems between people. Most of the times when there is conflict, ego is involved.
Practice kindness. Have a kindness surplus every day – so when have a bad day don’t bounce.
Those who annoy you usually annoy you because they mirror some aspect of yourself. 1) Work on being able to deal with that aspect 2) Learn how to work on that aspect within yourself. For #1, Use a buddy as a level set. When you have a bad day, the best way is to talk to a friend. Someone uninvolved who can make you laugh about the silly issues at the project/work.
It’s hard to be an apprentice to Kathy Sierra, David Thomas. But they can still be a passive mentor. You can read and absorb their stuff so you can adapt their values/sense to your own.
Leave a Reply