Embrace Your Inner Stupid!
One of the classic engineer mistakes is the belief that we can do anything. We understand the basics of electricity, we bend computers to our will, and anything else, well, seriously... how hard could it be? We're Smart.
And we are a pretty smart bunch, both developers, engineers, and those in similar fields. We can figure out nearly anything, given time. The trap we need to carefully avoid is believing what our mother's believe about us: that we can do anything.
Once you step back, it's pretty easy to see. Being an expert car mechanic doesn't make you a brilliant brain surgeon. Or vice versa. In other words, expertise doesn't map quite as well as most of us like to think it does. (There's a great lesson to be learned here about why we should show our software to our customers frequently, but I'll leave that for another day.)
This is why learning new things can be so frustrating. We work our way up the ladder in one area, become very competent, then something new comes along, and we're suddenly stupid again. I know that I really don't like feeling stupid, and avoiding feeling stupid is a very natural response. But it's an urge we've got to fight.
The Dreyfus Model of Skills Acquisition is something I learned about from Andy Hunt. He talks about it a bit in his book Pragmatic Thinking and Learning: Refactor Your Wetware and in a number of his related talks.
The Dreyfus model tells us that when we learn something new, we require steps. Think about a recipe book. The measurements are in very precise quantities, and we need that level of direction as beginners.
As we progress as cooks, we move on to "season to taste." Think of Emerill. Does he measure with teaspoons?
We do the same with technology. As we advance, we stop following steps and learn to move with more freedom and fewer rules. One of the harder things for an expert to do is to learn how to translate their vast experience back down into steps for a beginner. It's usually quicker for them to just do the work themselves instead of explaining how the work should be done.
What does this have to do with stupidity and feeling foolish? Learning a new technology and skill always pulls us off our sure footing, and moves us back to a level of requiring steps. Our pride chafes against the unfamiliar restraints. We're smart! Get out of our way and just let us work!
The biggest deterrent to your career is that impulse. Never be the developer who uses the exact same toolkit for the rest of your career. If you don't learn how to improve your craft, and your toolset, every year, then you've given up. You've settled for mediocrity, and the relative safety of working within your area of expertise.
Stretch out this week... find something new, something that takes you outside of your comfort zone. Embrace your inner stupid!
Here are a few ideas to get you started!
http://en.wikipedia.org/wiki/Test-driven_development
http://tryruby.org/
http://clojure.org/getting_started
http://memcached.org
http://en.wikipedia.org/wiki/NoSQL
http://ironruby.net/
http://rake.rubyforge.org/
http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/
http://www.ubuntu.com/
http://www.linuxmint.com/
http://www.virtualbox.org/
How do you embrace your inner stupid?
Jared Richardson works at Logos Technologies As a recognized expert in the software industry, Jared has worked with both start-ups and software giants. He's been involved with various open source projects, with roles from contributor to founder. Jared co-authored the best selling book Ship It! and Career 2.0, and founded the Agile RTP user group as a local outlet for the agile community in North Carolina. His personal blog is Agile Artisans
Jared is a DZone Zone Leader and has posted 42 posts at DZone. You can read more from them at their website.
- Login or register to post comments
- 10854 reads
- Printer-friendly version
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)










Comments
Byju Veedu replied on Fri, 2010/06/11 - 2:47am
Jared Richardson replied on Fri, 2010/06/11 - 8:42am
in response to: byjupv
Tim Chen replied on Fri, 2010/06/11 - 2:29pm
Avi Yehuda replied on Sun, 2010/06/13 - 3:46am
Hi Jared, I agree with every word and especially the with the conclusion.
I see more and more programmers which are fed up with learning new technologies and especially new working methods.
They excuse themselves by convincing themselves they have a lot of experience so they must have seen everything there is to see.
I guess that to be above average software developer, your hunger for improvement should be higher than your ego.
Walter Bogaardt replied on Wed, 2010/06/16 - 1:29am
Jared Richardson replied on Wed, 2010/06/16 - 7:16am
It's a balancing act, I admit. We can't learn every new thing that comes along, but if we settle down and stop learning, we have a problem just as bad.
Jared
Alec Clews replied on Mon, 2010/06/21 - 9:43pm
It's not just programming skills that need to be extended -- their are other things that make us more useful because they help us a) Understand the value we are delivering and b) Have better conversations with our colleagues, because not all of them are developers. Some examples
Jared Richardson replied on Wed, 2010/06/23 - 9:39am