:life :tech

Learning to learn

<2022-11-05 Sat>

I am a late bloomer, as far as my career in technology is concerned. I was absolutely obsessed with computers in my childhood, but the interest waned as I reached my adult years and started to experiment more in art and music. For the most of my life, I was always just a user of technology, not an active participant in the culture or industry.

I wasn't much of a student during my high school or gymnasium years. I did the bare minimum and still managed just fine, but failed to learn how to learn. I was a talented, smart kid, but the problem with any innate talent is that once you reach the end of your teenage years, whatever head start you had will diminish, unless you work hard. I became complacent and arrogant and did not bother to improve myself. So I stagnated.

Even when I finally rediscovered my love for programming some 6-7 years back, I had zero ambitions. I was just a dabbler, trying to piece things together. I studied C++, Python and C# all simultaneously, trying to figure it out all by myself. It was just something I'd do to entertain myself, getting some satisfaction from the idea that I was a designer who'd know how to do some automations or tiny scripts for personal use, as if that was something extraordinary.

An important turning point during my path to becoming a fully realized developer was (curiously enough) pathfinding. Back when I used Game Maker: Studio as my main game development platform, I had relied on a C++ plugin (programmed by someone else) to provide me with pathfinding capabilities. At the time, dynamic libraries were way over my head and it could've been just magic and I wouldn't have known otherwise. I kinda wanted to move away from Game Maker and learn engine programming, but the pathfinding question dreaded me.

Somewhere during 2018, I was dabbling around in Unity and found out about Breadth-First-Search -algorithm, which I managed to implement and figure out a hill-climbing pathfinding with it. I was ecstatic! Something that I felt was always beyond my skills, was indeed achievable with some research into graphs and algorithms, and just playing around.

I had opened a Pandora's box with my realization. What else could I achieve? I felt like my entire mindset towards learning new things had changed. Suddenly the entire world was at my fingertips, I'd just need some coffee and time to figure it out.

This has been probably one of the most important realizations of my entire life. It comes as a second nature to me now and has been the greatest source of self-worth in decades. As developers we figure things out all day long. Whether it's a new technology, some new library in an otherwise familiar stack or just a bug in your existing application, sometimes you don't have the knowledge you need to solve a problem and your ability to perform your work will hinge on if you can successfully gain that knowledge, usually on a limited schedule.

We read technical documentation all the time. We spend our time accumulating information from discussions and codebases, learning about quirks and edge cases, while still somehow managing to be productive and create new things. And all this synergizes with the life at large. Learning right motions at the gym or learning how to play irish bouzouki or learning how to make medieval chainmail. It's all just a pattern of figuring things out. Or simply put, how to learn to learn.