Developer ‘s Journey — Magic Origins

Ramon Recuero
4 min readOct 13, 2015

--

The Road Goes Ever on by Gary McParland

Software Engineering often seems like a insurmountable journey. How did it all start? How do we become engineers? Are we artists? What’s the end goal? And, most importantly, why?

Most people think time is like a river that flows swift and sure in one direction. But I have seen the face of time, and I can tell you: they are wrong. Time is an ocean in a storm. — Prince of Persia

Part One: Magic Origins

Maybe your love for video-games piqued your interest. Maybe it was ‘War Games’. Anyhow, something started the engine, something ignited the creative spark. Then you needed fuel. You needed to learn how to turn all your ideas into reality. You needed a way to move all those pixels in the screen to create something. In summary, you needed to learn.

You started to climb that learning mountain one step at a time. Maybe that mountain was named ‘University Hill’ or maybe just ‘Will Power’ cliff. After endless theory classes, finally one day you were able to print your name on the screen. Hurray! You felt like a wizard. You belonged to a unique club of magicians. The shell prompt not only opened a door to a new world, it just blasted it wide open.

Any sufficiently advanced technology is indistinguishable from magic -Arthur C. Clarke

Then you learned conditionals. Now, you were able not only to create new realities but to shape alternate ones using the power of two simple words: if and else. It is easy to overlook and forget how powerful yet simple these instructions are. With them, you can jump the boundaries of our continuous and unidirectional reality. You can always edit the reality of the program, rerun it and get a different result. In the computer realm, ‘what ifs’ are not left to imagination. Unlike Jennifer Connelly facing The Two Door Riddle in Labyrinth, in this universe you can try both approaches.

Scene from Labyrinth

Which door would you choose? One of them leads to the castle at the end of the labyrinth, and the other one leads to death.

That’s not the only rule you can bend. You can experiment and explore all these alternate realities in a matter of milliseconds. You learned how to use loops. Bordering insanity, you can run the same thing over and over obtaining, hopefully, the same results. This brings you comfort, this realm offers a promise of predictability, a place where you can rely that if you do things right, you’ll get a right answer again and again.

Unfortunately, your creations were short lived. They awoke, performed some computations and then they ended. They finished but not without returning a result as a parting gift. You couldn’t accept that, you wanted your programs to transcend those limitations. You wanted them to remember what happened before, process it and evolve to the next step.

Hidden in a dark corner of your library, you uncovered a book. After cleaning the dust, you could finally read its title: Data Structures.

You devoured it. Arrays, Linked Lists, Trees, Hash tables… All sounded as powerful as elven spells enunciated by Gandalf. You wielded them to unlock a new world of possibilities. A world where you could traverse an immense amount of information, of space and mutate it. You could draw conclusions out of them in mere instants. You build a program to help your parents prepare the taxes. Your creation transcends your house and it is used by your parents friends. Then, friends of friends. It was alive.

Scene from Young Frankenstein (1974)

The world seemed to fit in your computer. The outside world, once digitized, didn’t seem so vast and unpredictable after all. But something was off. There was an itch that you couldn’t scratch. Your digital realm was still bound to just text and numbers.

Why, you asked, even with all those capabilities, you were only able to print text on a screen?

Immediately you walked out the door, toward whatever the new challenge held. You felt something like optimism. — Braid

--

--

Ramon Recuero

Cofounder at Kinto. Previously at Babylon Finance, Y Combinator, Zynga, Google and OpenZeppelin.