In 2001 Along Came a Spider, Alex Cross was having a conversation with Agent Flannigan as she was going through an existential crisis after losing the girl under her watch to a kidnapper:
Cross: You do what you are Jezzie.
Flannigan: You mean you are what you do.
Alex Cross: No, I mean, you do what you are. You're born with a gift. If not that, then you get good at something along the way. And what you're good at, you don't take for granted. You don't betray it.
Flannigan: What if you do, betray your gift?
Cross: Then you betray yourself. That's a sad thing.
Many of us including myself waste a lot of time chasing pipe dreams learning new things that are cool or what are deemed worthy of learning. It could be a new cool programming language, framework, or a difficult topic in deep learning. I've been there, and here's my story.
I've got really good at writing code in Go. I've always known it is the only language I could fluently write in Emacs as fast as I'm typing this sentence. In fact, I created a whole library in less than a month. It was the most productive moment as a coder.
But then I got into Recurse Center. It was an amazing place with amazing coders coming together to hack on whatever they wanted. Because of that, folks were into cool and meta stuff like OpenGL, Rust, Operation System, and of course, functional programming. Nobody really paid attention to a pragmatic yet "uninteresting" language like Go. I took the opportunity to learn new things. I picked up Clojure and functional programming during the time, learned Kotlin, and wrote an OpenGL app in it. It was amazing, but...
Despite the experience, it sent me through a year-long detour of what I'd call status-seeking through learning. I decided to hand my library project over to a more capable hand to start clean as I picked up Ocaml, Erlang, Rust, and all the charmers of the programming language world. More and more I strayed afar from the mainstream languages and to be honest, once you've gone ML (Ocaml is a dialect of ML, a family of programming language), it becomes really hard to return.
To make matters worse (for me), I picked up machine learning and read books about the topic. I was trying so hard when in fact all these are just means to an end. But I couldn't care less because I was getting addicted to every engineer's drug--blind hacking.
It had become so hard for me to take a step back from code and concern of writing beautiful, declarative and fully-tested programs and just enjoy building stuff regardless of the tools. I was too far beyond saving and my stress from not understanding started to affect my health and the people around me. That's when I realized I had lost all the fun and excitement I used to have when I was just beginning and could hardly tell an expression from a statement.
So I took a step back. I dropped machine learning and Scala (yes, I was learning Scala). I revisited all the messy and verbose Go code I've written and decided to fork a part of it out and build something on top of that. The fun of hacking came rushing back to me. Then there's relief of not having to care if you're the best at anything, followed by goodnight sleeps from being productive throughout the day. Things started to look up for me just because I decided to stop chasing after what I'm not.
So remember Alex Cross's words, my friends. Do what you are, and you are not like others. Don't go chasing waterfalls when you're already the greatest of what you could be.
DMs are welcome. I'm open to help with personal coaching and career/life hacks and general tech discussions.