Monday, December 7, 2015

What I Learned From My Commodore 64

Today, retired to a box in my garage, my beloved Commodore 64 awaits my decision on its ultimate fate. That contraption, archaic by today's standards, changed my fate.

Engaging a child in any endeavor requires grabbing attention and stimulating the imagination. Whereas computers are ubiquitous today, 30 years ago they were novel. Remember how smart phones were rather uncommon a few years ago? And how everyone wanted one, first just to have one, then to use them for what they could do: games, videos, and everything ENTERTAINING! Now consider how most of those writing programs for smart phones are in general much younger than the average software engineer. It's not accident. These young whelps found their imaginations engaged by the new and exciting smart phones, so they dove in to learn more about them and to figure out how to make the phones do what they wanted them to do.

That was me 30 years ago. Does that make me an old fogey now? In some ways, I suppose, since my imagination did not get as an engaged with smart phones. That is partly due to my age, but also partly due to not having the time to indulge since I also have children and other activities that I actively pursue. But back then, I did.

I loved how I could play my favorite games on the Commodore 64, games like Jumpman, M.U.L.E., Olympic games, SportTime Soccer, and the amazing Alternate Reality series. Those certainly engaged my imagination. Then I discovered that BASIC was built right into the computer. I could write my own programs and make the computer do what I wanted it to do! Those small programs would mean nothing to anyone else, but they meant everything to me.

This is what I learned from my Commodore 64:
  • Save frequently.
  • Make backup copies.
  • A bug is not so bad, but if that bug ruins my work or fun then you and I are done.
  • Copy protection reduces customer value and satisfaction.
  • Plan for future change. Leave gaps between your line numbers.
  • Any program of significance cannot be kept entirely in your head.
  • REM only useful comments. Fix them if they are wrong.
  • A hole punch can do amazing things.
  • Know your variables.
  • Debug statements might be the only way to figure out what is going on.
  • Good graphics do not make a good game.
  • Good music can make a good game great!
  • Read other people's code.
  • Adjust to how other people write their code.
  • Adapt other people's techniques to your own style.
  • You can create any data structure in any programming language.
  • Memory is precious.
  • Be very careful where and what you poke.
  • If all else fails, power off and start all over.

No comments:

Post a Comment