For me, coding comes with a pure joy of creation that, although I’ll try, can’t be put into words.
Almost two decades later, I can still remember the first piece of code I’ve written and made me feel like a mini-God. By that time I had “the microbe of computers”, as family and friends called it.
I already had it for a couple of years from one of my cousins, Oliver. The contagion happened during one of my childhood summer holidays.
I spent the summer holidays at my grandparents, in the Romanian countryside. At that time, student summer holidays were 3 months long. They always ended in a blink of an eye.
My cousin brought his computers with him to his parents’ house. He had two of them: a black one and a white one.
The black one was an older HC model, which I can’t recall, though it was a computer that needed audio cassettes for loading programs onto it. He told me that he was recording programs broadcasted from TV in dedicated TV programs.
Imagine, for a second, people starting their tape recorders in front of a TV that is emitting weird sounds. The same kind of sounds you’d get if you’d answer a phone when someone faxes something. I guess some of us will never experience that too.
The white one, HC 2000 was the star of the show. It was a computer from the HC series. This was a series of Sinclair ZX Spectrum clones produced in Romania from 1985 to 1994. It had an MMN80 CPU, an impressive memory of 64Kib RAM and it also had a floppy disk!
He was amazed that I, a 9-year-old, could name and identify the transistor terminals. This was something that his faculty colleagues had difficulties in doing.
I could have played forever!
Back to reality after a short summer dream, I knew what I wanted, and that thing was a computer. I also knew that was something I couldn’t easily get, poverty being the main obstacle.
A couple of years later Oliver lends his, now obsolete, HC 2000 to me. It was missing the floppy disk, but it had a manual with some chunks of code. The code was written in the BASIC programming language. I also got from him a bag of audio cassettes with games recorded on them.
We had a spare black&white TV and a cassette player. That was all I needed.
After many attempts, due to corrupt audio tapes, I managed to load a game and play it. And play it. And play it. Until my parents had to set rules for not overusing the, now addictive, new toy.
I remember copying, out of the manual, a piece of code that created a functional analog clock on the TV screen. I was thrilled by the result. At the same time, discouraged by the pages of code that I had to copy without much understanding.
After about two weeks my cousin asked me to return the toy.
And it was gone.
I started buying computer magazines and spent hours and hours reading about computer components, games and software tools, imagining what computer I would like to put together.
I also went, with friends, to gaming lounges and play games over the network. Gaming lounges were places where you’d pay by the hour to play, at that time, ripped off games. I remember pulling a couple of all-nighters during that time. We went there and played games for the entire night.
I talked all the time about computers. My sisters refused to talk to me if I was to talk about computers.
My parents decided to take a loan from a bank to buy “us” a computer. After a lot of compromises and a stack of paperwork, I finally got a computer.
The joy of creation
My computer was mid-level. Nevertheless, it had everything a modern computer has. The obvious input and output devices: mouse, keyboard, and CRT display. A floppy-disk was still a must and CD-ROMs were not that common, but affordable. So mine had these too. It also had dedicated 4 Mb graphics and sound cards. There was a small HDD and enough RAM. All these plugged in a decent motherboard with a 500 Mhz AMD processor. Pretty good for 1999 and a bit better than the HC 2000 I was dreaming of just a couple of years before.
I still had rules in place for not overusing the new toy. My parents wanted the best for me and all I wanted was to spend every moment using my computer.
When I wasn’t allowed at the computer I practiced typing on my keyboard’s box. That box had the image of the keyboard printed on top of it. My goal was to type fast without looking at the keyboard. This is something achieved after some years of practice.
After about one year I went to college. My computer addiction almost made me fail the admission exams. I managed somehow, by a miracle, to pass them. The outcome wasn’t that great and I had to change schools because of it. Our educational system used software to redistribute students based on results and options.
My 9th grade was another struggle. One that fortunately ended well.
In that 9th grade, amidst my attempt of proving I am and deserve better, I found the joy and power of writing code:
write ('Gender: ');
write ('Height: ');
THEN r := (50+(0.91*(h-152.4)))
ELSE r := (45.5+(0.91*(h-152.4)));
writeln ('Ideal weight: ', r:3:2);
The above piece of code is the first piece of code.
The code is written in Pascal. This is a great programming language for teaching structured programming.
Pretty soon the code became:
write ('Type 1 for male, 2 for female: ');
write ('Type in your height (in cm): ');
THEN result := (50+(0.91*(height-152.4)))
ELSE result := (45.5+(0.91*(height-152.4)));
writeln ('Your ideal body weight is (in kg): ', result:3:2);
I felt I created something useful that I can show to family and friends.
I calculated the ideal body weight for all and compared the results with their real weight.
An output of running this for me is:
Type 1 for male, 2 for female: 1
Type in your height (in cm): 173
Your ideal body weight is (in kg): 68.75
You can also calculate your ideal body weight, using Pascal, here.
It might not seem much, but that’s what started my metamorphosis. That is what fuelled my drive and guided my future career choices.
During the years that followed, I got better at writing code. I learned and used several programming languages. The latest is the Dart programming language.
Learning a new programming language, with a familiar paradigm, can be done quickly. On the other hand, coding with it is something that takes a lot of time and practice to get right. It’s an always-on process.
Writing code is easy, but writing good code is damn hard!
Good programmers will enter into a state of flow when coding with passion. You have to pull them away from their keyboards and force them to drink, eat, and sleep. They wake up at night with solutions for problems that bugged their minds for a while. If they are employed, they don’t have a 9 to 5 mentality. They have it if they are constrained in working on something well under, or over, their skill level. They write well structured, readable, and reusable code and know how to avoid bugs on the way. All that comes from their unique past experiences. They never stop coding.
I always strive to find the drive and passion to build better products others can enjoy using.
There are still times when writing code triggers some of the same joy inside me, but it never matches that one time.
That one time when a couple of lines opened up an entire universe.