I'll take Heinlein for $1000, Alex, and Hanselman for $800

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.

-Robert A. Heinlein
That's always been a favorite quote of mine and, though I can't say I can do ALL of those (yet), it's one that I take to heart.

Scott Hanselman had a good post up yesterday called Please Learn to Think about Abstractions, in response to Jeff Atwood's Please Don't Learn to Code and Zed Shaw's rebuttal Please Don't Become Anything, Especially Not A Programmer, in which he makes a point very similar to Heinlein's:
Everything is a layer of abstraction over something else. I push a button on my Prius and the car starts. No need even for a key in the ignition. A hundred plus years of internal combustion abstracted away to a simple push button.


I think everyone should learn how to think and when to dig deeper and should be able to do it in a welcoming and friendly environment.

Learn how to question how things work. Learn that everything new and simple hides something large and complex. We are all standing on the shoulders of giants like Newton, Tesla, Kettering, Berners-Lee, and on and on.

You can choose to live in a world where things just work, or you can choose to dig a little. You don't need to learn to code, you don't need to be an expert in everything but know that you can learn. You can learn a little or a lot. I don't think the Mayor of New York needs to know how to code, but it'd be nice if he knew a little about DNS and a little about HTTP
I come across this phenomenon, the "Let the professional handle it" mindset, quite often. Hell - I used to have that mindset to a degree. It's definitely a lot less work to just call the plumber or the electrician or buy your way out of a problem, but it certainly doesn't help you prevent it next time. But if you don't try, you'll never learn. Then the next time it happens, you'll "call the professional" again and still be no better off.

To Scott's point, and Zed's, I'll take a ton of bad code over no code at all if it means that someone is learning a new way to do something, learning how to think a bit differently, or trying to solve a problem themselves.


May 19. 2012 06:48

Hey, glad to see your keyboard is working again! Wink

In general, I agree: people are either unable or unwilling to learn about what they're working on, or afraid to look stupid and ask. Digging in and getting your hands dirty is the only way to really learn something.

The only exception to this - when it is time to call a pro - is when you either absolutely can't accept a delay in fixing, or are in a situation where attempting a fix yourself might well cost more than you can afford in the long run. (e.g., replacing a well pump. Not hard to do, but screw it up and lose the pump head and your fix-it bill just went through the roof.)


May 19. 2012 07:46

Agreed, ZerCool! A cost/benefit analysis should always be done and, if the situation warrants, call a pro. At least then it's a conscious decision reached after thinking the situation through.  I'm usually willing to spend a little more doing it myself because I find the experience and gained knowledge worth the extra price.


May 20. 2012 13:58

Nice to see you back and you make good points. While we’re on the topic here’s my favorite Heinlein quote - “Women and cats will do as they please, and men and dogs should relax and get used to the idea.”


May 20. 2012 18:14

That's a fantastic quote too!


August 31. 2012 04:17

Great to see you posting humour again Smile

This quote by your reader is spot on :
Digging in and getting your hands dirty is the only way to really learn something.


Comments are closed