An individual who is a knowledge addict. An artist who simply loves “learning”, ultimately expanding one’s brain capacity. In other words, it can also be referred to as “the art of knowing.”
So here it is, guys. I confess I am seriously, deeply and inescapably addicted to learning. It’s been like this since I can remember and probably it is how I will stay. I enjoy it a lot, though it’s getting harder and harder.
This is why I learned the basics of calculus during a summer after my last year in elementary school. This is why I got into quantum physics and cosmology at the same age. This is how and why I became a software engineer. This is why I tried and learned many programming languages, platforms and tools. This is why I can’t (easily) go to sleep without reading tons of tech news every night. If anything, this defines me. Of course as anything it has a root cause. This is not l’art pour l’art. I want to understand how and why everything works. I want to know the secrets of the universe, be it physics, cosmology, mathematics or even psychology.
The early years, a.k.a. the dawn of my fall
I think I can quite clearly remember how things were from around the age of twelve, the earlier years are mostly impressions rather than real memories. I remember struggling with very basic maths and then a long summer with my grandfather (who was a technician) trying to teach me that maths can be cool. And guess what, he succeeded. When I started my new school year there was no challenge for me anymore at all. I developed a kind of “instinct” towards science which helps me ever since. All I needed was some encouragement, strict practice and even more strict practice. A year later my grandfather bought me my first computer, an intel 80386 based PC which was a used piece scrapped by a printing house. It proved to be one of the most important milestones and turning points in my life (yes, the other is zen). The machine was old, slow and incompatible with almost any game, so I turned to programming it instead. I learned the secrets of the oh-so-shameful QBasic (Microsoft Quick Beginners All purpose Symbolic Instruction Code) and in no time I was drawing cool floating circles in all the 4 colors of my CGA monitor. Unfortunately I soon got bored with circles and simple math programs, so I learned the internals of DOS and the whole platform. I was into interrupts, BIOS, terminate and stay resident programming, etc. It took me around 1 month to successfully brick my system by misusing a few BIOS interrupts. The MBR was gone and even the IT gurus at the printing house were scratching their heads.
This was the period when I also got really obsessed with cosmology. I read all the relevant literature in the local library accompanied by the slightly sad look on the faces of the librarians - as if they knew what was waiting for me down that road. I also soon realised that I won’t be understanding all that stuff without being equipped with the powerful weapons of higher mathematics. I read some really fine books like “The Emperor’s New Mind” and lots of high school and university math textbooks (of course I could only grasp fragments) plus books about fractals and fuzzy logic. Real treats for geeks. Then I graduated from elementary school.
High school, where I wrote my first and last virus and learned some real programming
I had a really strict and obsessed maths teacher in high school and I can never be thankful enough for that. She gave me the first proverbial slap in the face (figuratively, of course) by making me realise that cherry-picked half-baked knowledge is nowhere near real, disciplined training. I had to get back to practicing maths every day for a few months. Then it became routine again, that “instinct” was revived. I also had the exceptional luck of being taught to informatics by a really cool developer, a guy from the states who moved to Hungary. Instead of messing around with the MS Office suite I was given the opportunity to choose the other pill, programming. He taught us real things like linked lists, AVL trees in C. He also required from us that we write some piece of software by the end of the school year with proper specification and documentation. I choose to create a file compressor, using the Lempel–Ziv–Welch algorithm - it was the first really cool thing I developed. It was instant gratification. I was pure energy. On another track I delved into the dark arts of computer viruses. I started small, writing trivial com infectors, then moved to the more advanced exe infection (com files did not have headers, they were pure code, exe files on the other hand had headers with checksums, etc. so it was less trivial to infect them). It was also the time I learned some real assembly. After getting quite good at simple viruses I went for level 2: defeating antivirus software. At that time, two real players were around (we’re talking about DOS now), F-Prot and TBAV (ThunderByte Anti-virus). F-Prot was really simple to defeat, all I had to do is rearrange some code to avoid grouping of suspicious operations, but TBAV was a tough guy to beat. It actually ran the code it was scanning and traced it in an isolated environment so it was not easy to fool it, but I managed to find a way to break out of its isolated environment and actually infect while it was scanning the executable. Fun times. By the time I beat TBAV, F-Prot got smarter, now it detected my virus again. I found out a cool technique by which I was able to transform a seemingly innocent set of operations into interrupts which I could parameterize at the calling place. Metaprogramming in assembly! I had the source code printed for years. I was really proud of myself - of course the virus was harmless.
I’m trying to keep this short. After high school I got into a nice tech university where I faced many new challenges but by then I gained quite some introspective abilities so I was able to alter the way I was learning FTW. It has much to do with zen - a topic for maybe another post. The basic training in the university was awesome, I felt the knowledge flowing to me, but I got unimpressed with the more specialized courses and I also started working in the meantime which opened yet another horizon of learning possibilites.
I also got older (oh, the horror!), had some social life (I know, awkward ;), got into relationships (usually one at a time) and I thought I have to slow down. I have to find a balance between social life and learning (as if getting more social didn’t already have a steep learning curve…). I was very wrong. What I needed was the capability of pre-filtering what to learn. I’m not talking about specialization per se, but in general the need to be smart about finding what’s worth learning and when. This is the next greatest skill as I see at this point of my life. I’m constantly flooded with possibilities and new things to learn, enough for a hundred lifetimes and sometimes still I find it hard to say no. This is not a bad thing, though. It means the spark is still there (a f.cking huge bonfire, actually). I just need to control it. This means inbox zero, prioritization, being agile, self-management, time-management, a thematic and constantly reviewed list of RSS feeds, timeboxed hack times at home and a constant, objective monitoring of MaaS (Myself as a Service). Supervised learning. I became a quite accomplished software engineer, being a CTO for a few years and currently working at one of the coolest startups in the world in an unparalelled team of engineers.
I know this story has no frame. I suck at writing. Yet another thing to learn. By practice. I won’t stop. Ever. ;)
My point is: I am nobody. I’m a guy with average intelligence. If I was able to do it, you can, easily. Don’t ever stop learning.