One of the first things to examine as you begin learning about computers is naturally the reason driving you to do so. Is it curiosity? A desire for power? Social status? Income? A deep need to author, to create?
When I was little, I was always fascinated by people using computers. By pressing buttons (and sometimes, by moving a small plastic brick on a cable with three buttons), computer users were able to change things. They knew how to "go places" without physically moving; how to solve problems in a seated position. It was a restful, potent, mysterious thing they did. And I wanted to do that too.
The first computer I got my hands on was a TRS-80 Model 100 – the original laptop. The last, and favorite, machine that Bill Gates personally worked on, the "trash-80" was an amazing little machine. It booted instantly, had no hard-drive, and contained no real productive software (would you use a computer today that couldn't permanently store anything internally?) besides some simple note-taking and calendar(ish) features.
But there was BASIC.
I was fascinated by the fact that I could give commands to the computer, and it would listen to me. I was aware that computers had to respond when a user interacted with it (something that M$ Windows threw out as 'old-school' later), but captivated by the fact that I could tell the computer how to respond when other users were at the keys. Trisha and Megan (we were all about 7-9 years old back then) were probably so sick of me asking them to guess endless sequences of numbers and passwords I coded into my little programs. That's actually about all I did for a while:
I created code for the sole purpose of challenging them to "break in", with their only reward being my respect and a terse "Success" message at the end.
Sometimes it was easy, other times it was boring. Heh heh. But I was tickled pink at their efforts... What could that next 10-digit number possibly be? ;]
Of course, eventually I shared with them my dirty secret – you can always see what a hard-coded password is if you can just get hold of the source code. Press the right function key, or type "LIST" at the prompt, and you've got my sneaky plans all laid out for you. But I gave that knowledge at a price – now they had to create sequences for me!
We also played hide-and-go-seek.
Three events boosted my confidence and curiosity immensely.
- Having discovered that the secrets were in the source, I was quite naturally curious to see everyone's source code, and learn how they did what they did.
- I got hold of a book with line after line of printed code, and painstakingly copied the ones I could understand. (If I couldn't change it myself, I didn't want to run it).
- QBasic, DOS, and the use of a hard drive on the super-advanced 386 opened a world of graphics (mostly colors and line patterns), system exploration, and the ability to return to multiple .bas files over and over without fearing loss of code.
This computer knew how to play Rock-Paper-Scissors!
I played and played, and studied and studied, the code this man had written from scratch. Sadly, the code was lost when the batteries ran out and the trash-80 could no longer keep it in RAM. But not before it had made an indelible mark in my life.
As a homeschooler, I was (and still am) armed with the tools needed to be a good hacker. Self-study, self-motivation, and an absence of the herd-mentality that many public and private schoolers must overcome.
But enough about me. Hopefully you now understand a little about my motivation(s) in writing code - to create, with a child-like fascination. What are yours? What motivations drive you to learn, understand, and grow your skills with computers?