September 18, 2012

It's like this:

I was trying to explain to a friend why programming is intense.

I don't think programming is hard. Can you read? Awesome. Can you follow basic logic? Sweet! Are you super detail oriented and like to work hard? .... and that's where people give up.

For example, let's make a turkey sandwich.

Easy enough, right? Bread. Turkey. Maybe some condiments.

In programming though, it would be: Do you have a turkey? is it dead? No? Kill it. Is it dead now? Cook it. Oh, you don't know how to cook it? Let me instruct you. Okay, turkey is dead, and cooked. Is it sliced? How many slices do you want? Do you want that on top of the bread?

OH THE BREAD? Do you have bread? No? What about wheat? Great. Now grab the yeast, and some water, and knead and let it rise and bake it for so many hours, and on, and on, and on.

With every program you write, you're starting from scratch, unless you have written something previously and can recycle it, in which case, it would still need tweaking.

So, while yes, I can really make one heck of a turkey sandwich, I have to be able to make the WHOLE THING, not just grab whatever's at the store and trust that it's good for me...

And that's pretty much the best analogy I could ever write.