Ask Questions

I've been teaching programming for Girl Develop It now for about 3 months. I've been loving it, because I'm secretly a teacher deep down underneath my programmer shell. If programming is my ethnicity, teaching is my calling.

 The unexpected benefit of teaching has been to help my own confidence when coming to a part of the country so steeped in engineering talent that you feel you're the only one who might have to ask a question now and again. I've realized the tricky bit about asking questions, however. It takes an enormous amount of confidence. 

Admitting that you don't know something, or don't quite understand it is really difficult. You feel that it calls into question things you DO understand. The problem with this, and something you have to remember when asking whether or not you understand something, is what the baseline for "understanding" actually is. "Understanding" means different things to people in different stages of their careers. Depth is a very relative thing(xkcd link) - something that's deep to you isn't deep to someone who's entire life revolves around a narrow slice of your profession.

Last year, Simon Collison wrote a piece called Maturity and the Weight of Learning. In it, he discusses a number of topics- namely, culling and surrendering, and the immature view of tools. Many young developers start with a host of very powerful tools, and so learn web development (and other forms of development) with a "top down" perspective. These tools make you feel powerful, and they abstract away the need to understand how they work - but they are built by human beings, with faults, and break down around the edges. Leaning on them in the beginning is fine - but as you get out towards the edges of the Kingdom of CRUD, you start to notice a need for you to get to your feet in shifting sands. It is here that most developers grow their wings- or turn back and toil in the overcrowded kingdom.

Simon's piece talks about the responsibility we have as craftsman, to learn, to ask, to be ashamed we used a tool without understanding how it worked. This is hard, but it is doable. It is part of accepting the mantle of craftsman - this title is not free. The prescription is to admit your own limits - knowing where they are is the first step to breaking them.

A final note - I assure you, those who have taken upon themselves the title of craftsman, and who are considered so by their peers will never look down on you for trying to learn. Ridiculing someone for not knowing a thing is the biggest indicator of personal insecurity.