2020-08-12

The day I fell in love with computers

Light bulb

I'm not sure how old I was when I fell in love with computers, but I remember what happened that day. I must have been nine or ten years old and was writing my first program on my father's Apple ][. Before that day I had only used computers for gaming which I had enjoyed very much, but this day changed everything.

The Apple ][ had the BASIC programming language installed, and the first program I wrote was something I copied from a piece of paper my brother had given to me.

1 PRINT "NICOLAS"
2 GOTO 1

I had changed the name to mine, the piece of paper had my brother's name on it. Back then I didn't know any English yet, and I didn't know the words PRINT or GOTO before writing the program. Running the program produced this output:

NICOLAS
NICOLAS
NICOLAS
NICOLAS
NICOLAS
NICOLAS
NICOLAS

The screen immediately filled up with my name, which was surprising, and my name kept being printed until I interrupted the program. OK, cool, now I had an idea what PRINT did.

My father was watching me and told me that it's better to use bigger line number increments to make it easier to modify the program in the future. The line numbers in BASIC were not just a visual aide like they are in modern editors and languages, they were part of the program. If you wanted to add instructions to the middle of a program later you needed some free line numbers. Taking my father's advice I modified the program:

10 PRINT "NICOLAS"
20 GOTO 1

The program did not execute as I expected, it only displayed:

NICOLAS

There must also have been an error message, but I don't know which BASIC variant I was using or what the error said, and it must have been in English anyway so I didn't understand it. You may have seen the problem immediately: on line 20 it's not possible to GOTO line 1 because it doesn't exist. Ten year old me was puzzled, but it only took me a few moments to make an educated guess at fixing the problem.

10 PRINT "NICOLAS"
20 GOTO 10

The program ran again.

NICOLAS
NICOLAS
NICOLAS
NICOLAS
NICOLAS
NICOLAS
NICOLAS

In this moment I had a profound experience and gained an understanding of what computers are: Computers are very stupid machines that need precise instructions and can execute them incredibly fast. Being able to control such a machine felt very challenging and very powerful, and after many years of professional experience I still enjoy the challenge of making computers do what I want.

Incidentally I had also fixed my first bug, deduced the meaning of GOTO and its argument, and I had gained an understanding of what loops are. What a productive day!

Many years later I had a similar experience again when I was using a Linux Desktop for the first time. After a few painful years on Windows I had finally found an operating system that put me in control of my computer, switching to Linux was a natural choice for me.

0 comments

Reply

Cancel reply
Markdown. Syntax highlighting with <code lang="php"><?php echo "Hello, world!"; ?></code> etc.
DjangoPythonBitcoinTuxDebianHTML5 badgeSaltStackUpset confused bugMoneyHackerUpset confused bugX.OrggitFirefoxWindowMakerBashIs it worth the time?i3 window managerWagtailContainerIrssiNginxSilenceUse a maskWorldInternet securityPianoFontGnuPGThunderbirdJenkinshome-assistant-logo