Code as a Second Language

In the summer of 1987 I was 8 years old. I will never forget that fact because that was when I came across a computer for the first time. Shortly after my father and I had arrived at my grandparents’ house on the countryside of Sao Paulo state, I was told that my youngest aunt had just bought a computer. For reasons I don’t quite remember, I was immediately interested.

"16K-BYTE RAM pack for massive add-on memory"

My aunt had just bought a second hand Sinclair ZX-81 and she was kind enough to entertain my interest in it. The ZX-81 was a particularly small machine, it looked more like an oversized calculator than anything I would call a computer. I was definitely not impressed at first. When she turned it on for me, I must also admit that I was rather disappointed when all I saw on the screen was a white background with a small black square in the bottom left corner with an uppercase “K” inside it.

ZX81 Screenshot

That is what you would see after turning on a ZX81. Riveting? Definitely not.

After another hopeful moment or two, I asked: “So, what does it do?”. Her answer would change my world.

She said: “If you write the right code, a computer can do anything you want.”

Wow! A machine that can do “anything you want” if you could only write the “right code”. Imagine the possibilities! It became immediately clear to me that I had to learn how to use it.

Unfortunately she was too busy to teach me, but she was kind enough to let me “play” with her computer. The truth is that she didn’t take me seriously at first. No one in my family did. It didn’t matter, though, for luckily I was already an avid reader, and like most 8 year olds, I had plenty of time on my hands.

The summer of 1987, I was told, was particularly beautiful. I wouldn’t know because I spent most of it inside. However, I believe it was a worthy trade-off because by the time it was over, I had a solid intuitive understanding of the basic logic underpinnings shared by most programing languages up to this date.

I remember feeling as if I had just seized the power of creation itself. Within the limited boundaries of the Zilog Z80 microprocessor I had absolute control. Considering how powerless kids feel in the real world, the experience was unquestionably empowering and life changing for me.

Back then, numbered lines were all the rage

However, the end of that summer posed a problem because I didn’t own a computer and I knew I couldn’t live without one. To make matters worse, in the context of the Brazilian economy in the late 80s, computers were expensive. Without a question too expensive to buy as a “toy” for an 8 year old.

My solution was to do what kids to best: use my imagination. Sure, I didn’t have a computer, but that would not stop me. I could still write code, and then I would execute it in my head, line by line, like a human computer.

I wrote countless programs, mostly computer games, all over my school notebooks. I would sit in the back of the room and read computer programming books instead of paying attention to the class. At that point I had lost all the interest in almost all school subjects other than math and creative writing. Luckily for me, I was a quick learner, in fact quick enough to learn everything I had to learn to avoid getting bad grades by studying the day before the exams. I knew school was important but I was just obsessed with exploring the potential of computers and everything I could do with them if only I could write the “right code”.

ZX81 machine code

Not my actual notes, but you get the idea...

I was nine by the time my father finally bought me a computer, another second hand ZX81. By then I had already become quite good at running code “in my head”. Using my supercharged child imagination, I was even able to play computer games of my own design by just imagining the code execution, and have fun while doing it.

Lamentably, my ZX81 was defective, unable to load programs from cassette tapes as it was supposed to. That meant that any code I wrote for it would be forever lost every single time the computer was turned off. It also meant that I would never be able to run commercial software on it. If I wanted my computer to do anything, I would have to always write the code myself from scratch.

This didn’t bother me because I was determined to learn how to “write the right code” to implement the multitude of ideas that populated my imagination. Defective or not, I finally had a computer to work with and that was definitely progress. The next issue for me was the fact that most of the ZX81 literature available was not in Portuguese, my native language. I had to spend countless hours reading programming books in English with a dictionary by my side. Painstakingly, word by word, I was able to decipher imported jewels of knowledge and translate it into code of ever growing complexity.

Machine code for beginners

Recursive autodidacticism: I had to teach myself English before I could teach myself Z80 machine code

It wasn’t long before I outgrew my first computer, but in a way the ZX81 will always be part of me. Thanks to my early exposure to computer logic, I became able to visualize code not as static commands in a text editor, but in a much more fluid manner. The best way I can describe it is as a form of acquired synesthesia. To me, computer code has always had a kinetic-spatial dimension to it.

My life became a blur after that. Technology changes fast and CPUs come and go with the seasons. Much sooner than I a was able to anticipate, the ZX81’s 8-bit architecture was nothing but a distant memory.

Relentless progress

Progress is relentless...

I entered the workforce early when I was 13 as an assistant teacher at a local computer school and had my first entrepreneurial experience, a dial-up BBS, when I was 15. After that I also held a couple of full-time development positions while working my way through a technical high-school program (computer science) in the evenings.

School was essentially a bore. While the instructors believed they were preparing me to compete in the real world, I was doing just fine without any help. At that point it became clear to me that I had a very different style of learning than the typical student and that the instruction provided by conventional schooling was not for me. That was when I realized that I was an autodidact and I didn’t need structure, I needed concrete challenges.

Not soon enough for me, but high-school was eventually over and I decided to postpone going to college to focus on my career. By the time I turned 22, I was accepting my first executive position at a software development arm of a large utilities conglomerate that employed over 400 developers.

To be honest, sometimes I wonder how different my life would have been if I had decided go to college instead of jumping right into the workforce. Unfortunately, I never felt as if I had a choice in this matter. I feel as if my life was short-circuited by my consuming passion for technology. Luckily for me, the outcome was positive. By the time I was supposed to be graduating from college, I was already managing multi-million dollar projects and flying around the country in the company’s private jet.

Now I finally understand that my passion will always be my most important credential. I always have been genuinely in love with the power and potential of human technology and I believe there is nothing we cannot accomplish if only we dedicate our minds and hearts to the effort.

Life is an all-you-can-eat buffet of knowledge.

The ZX81 at the Computer History Museum

The ZX81 at the Computer History Museum

Share this:
  • Digg
  • del.icio.us
  • Facebook
  • Reddit
  • StumbleUpon
  • Tumblr
  • Twitter