I’ve been doing it wrong

When I was in 8th grade my brother and I would spend hours building ad hoc robots out of K’NEX and Legos which we would place in the hallway, one at each end. At the flick of a switch they would crawl towards each other and, just like the truth about life, mine would win, his would win or we would have a stalemate.

We took those colored blocks and folded them around our imagined goals and solved problems, like how to build a KNEX thingy that would protect an egg falling the 8 feet from our roof onto the concrete walkway.

Many years, and yolked up walkways, later… I step out of a seminar quite frustrated.

Josh Linkner, author and entrepreneur, was the speaker, and he was quite an interesting guy. In the hour long presentation I learned a number of things:

  • Ask Why at least 5 times
  • Be willing to fail
  • Avoid Groupthink
  • Be aware of the things that hold me back
  • Courage needs to be Encouraged, along with responsible risk
  • Sticking with traditions blindly can be bad for business
  • Creativity can be grown…

An interesting quote was shared on metafilter last year, which I think fits in quite well.

Many people have said kids should learn how to program. They usually bring up how this helps them think logically. They don’t point out that it also helps them fail over and over and over. The failure is unambiguous, and you can’t argue with it. Your program doesn’t compile. And that’s clearly because you were wrong about something. No matter how sure you were that you were right, you were wrong. Day after day after day.

But the thing is, the goals are usually simple and achievable, so you get it right in the end. So it’s not soul-crushing failure.

And when I fail, it’s not like, “Ho-hum. I failed again. Whatever.” Often, my whole world turns upside-down, at least briefly. “I KNOW I did that right! There MUST be something wrong with the compiler!” But, no, I’m wrong again, today. Just like I was yesterday. Just like I will be tomorrow, even though I will think I’m right.

And it never gets lets up, because as you master one programming problem, the next one is harder.      Direct Link

Building an application provides a nice set of challenges, and as is shared here – they always change. We are always reinventing the wheel, developing something new or trying to make our algorithms more efficient. The problems that programmers solve are notoriously more difficult to solve, and as much as I hate them, they are derivative of mathematical proofs. Usually we have a direction or goal, but the road we take is not often well known.

This field is all about why, it is all about avoiding the popular opinion, courage is rewarded immensely and traditions are explicitly disregarded. Off the bat – in order to be a developer in CS these days you have to be able to get out of the majority of this stuff because it is mandatory.

Eh, this is more a vent about what I learned upon reflection than a discussion about it. I have been asked to get his book, I may… may not. I haven’t decided yet. This is the third step toward being inducted into Sigma Alpha Pi, may the force be with me.