How did I start to program?

Trying to recall my first program proves way harder a task than I could anticipate. Partly, because my memory has been giving me headaches as it gets more and more difficult to remember stuff that happened long ago 😣

about 15 years, though, I'm not that old.

Added to this tendency towards oblivion, I did not know I was programming at first. I began writing basic HTML, single-page websites. No styling, just layout, and a few basic PHP snippets of code that I managed to copy-paste from one or two tutorials I did not read through. What is more, those HTML pages were copies of other websites I hacked away by copy-pasting the source. That was it for my self-taught introduction to programming:

Skim a tutorial and copy some code to get yours working.
And I did not know it as code, it was just a set of instructions. That could not be Programming.

Needless to say, making websites was something I started doing on my own time, usually at night, while getting to know the endless depths of that web word wide. That abyss, and insomnia, I'm not sure which came first, channelled through a need to understand hypertext, or at least how to use it. The browser was my entry point to programming.

Those websites, though, were mostly for myself and the people very close to me. As I grew more confident, I remember a thrill and excitement when saying, in meetings: I can do the website if we need one; feelings that usually came along with a frightening thought that people will find out I knew nothing of web development. And that was the word, development, that I was so scared of: Noo, I am not a developer. No way. I just know some HTML… I had no idea what being a developer was. I still don't.

By then, I realized CSS was something you needed in order to wash out that horrible HTML. But, it was strange opening those curly braces, and it was even stranger to do this on a different file (with a different extension, 😱).

I was certainly in uncharted territories. No way I could keep track of things, let alone center a div.

Trial and error, tinkering, tweaking values, searching for answers in incoherent blobs of instructions, not getting it. 😙 Those were the times, the good old times. I did not know what a console was. Ah, those mysterious endless hours of incomprehensible magic, sorceries of the source. Then, in a fog of incalculable depth, I stumbled across some scripture, or some piece of text instructions that went into a script tag that made things on the screen do other things, move around, change. Websites became alive, dynamic, interactive. Ah, such wonders of the script. I panicked. Stopped doing websites because I was not doing them right. I needed to learn JavaScript but I did not know how. Dale

At that point, it was when I realized that different languages serve different purposes. HTML was meant to structure text on a page; CSS, to stylize the elements of that structure; JavaScript, to make magic 🤔. I also realized that all my knowledge of these languages depended on browsers. That is to say, the power of those languages was limited to what the browser could do.

When I began to realize that I needed to work outside the browser, I delved into Pure Data, a graphical programming environment for music and the arts. Pd is written in C and it changed my life. I could draw connections between objects (ie., I patched stuff) that would result in combinations of notes, generation of a sound, automated control of an audio or visual effect, and much more. I was handed so much potential for multimedia, interaction, and expression that working with Pd became my favorite thing in the world. I was no longer HTML-ing in the depths of night, though I most often patched heavily into daybreak. I was patching during the day, while waiting, on the subway, bus, airports, bars. Basically, every moment of the day was a chance to learn more.

I did this patching thing for a year or two, until suddenly my advisor showed me not how to patch an object, but how to make an object. He called them externals. I did not quite get what he could possibly mean. I realized then that I was taking software for granted. All my life, I did not know you could make stuff. So, he opened up a text editor, wrote some stuff in the C language, and inputted some words on a terminal console. The result was astonishing: a new object, the one he'd just created, was there, ready to be connected to other objects. What is an object? I had no idea. I just used them. And now I would make them. My advisor lent me a copy of The C Programming Language, and I went home in awe.

The C Programming Language. I read the ANSI-C version, though, waaay fancier 😉.

From then on, I never looked at Pd, JavaScript, or any other programming language the same as before. I could learn anything, from Python to C#, from awk to C++, from bash to React. And that did not stop there, no. Any software was easy to grasp, any operating system.

In sum, I cannot remember exactly when I started to program, but I do remember an obsession that grew hand in hand with my fascination of the Internet, computers, and code.