A topic that came up in conversation recently was in regards to learning programming. We all come from different backgrounds which leads to everyone having a different view of everything.

One of the most interesting points I realized was something I vividly remember from my childhood. I was in 7th grade teaching myself how to program in GW-Basic. My father had given me an Atari programming book and I had set out to see what this was all about. I learned GW-Basic was almost the same thing, so it worked. I had to write my own line numbers and had nobody to ask questions.

The biggest project I thought I could accomplish at the time was a hangman game. It was going to be awesome. It would support colors, but because doing anything past 3 letter words would be complex, I decided to limit myself to just 3 letter words.

I started by writing out every 3 letter word I could possibly think of. I compiled this list and set out drawing the person on the screen. Everything worked well.

But the code was 35kb. It was an insane amount of code for basically nothing. What happened was that I wasn’t aware that you could reuse variables. I was a 7th grader so we hadn’t dove much into math. It didn’t even really click that programming was just math.

So here I had built a functional hangman game that supported every single 3 letter word there was. And yet, every single guess, every single failure, I was declaring a new variable.

When it comes to doing things like programming, always keep in mind that what’s obvious to you is not obvious to everyone else. Your knowledge is based upon your experience in life. You’re missing out on a lot of things other people have experienced, and they are missing out on things you’ve experienced. You’re no better than anybody else.

What’s obvious to you may not be obvious to someone else. When they feel something is completely obvious, that means you’ve done your job.

comments powered by Disqus