DEV Community

Cover image for Stick to What You're Good At, Not What's Cool
Pan Chasinga
Pan Chasinga

Posted on • Updated on

Stick to What You're Good At, Not What's Cool

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.

My Recurse Center badge

My recurse center badge

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.


If you like my writing, subscribe to my free newsletter BETA School - unlearning schools and relearning life to get my writings right in your inbox.

Top comments (14)

drhyde profile image
David Cantrell

I'm afraid I disagree. If you stick to what you're good at you'll end up like me. I am The Man when it comes to what I'm good at: my name is recognised by people I've never met, I have my choice of employers and projects, I earn good money and have the respect of my peers, but recently, after nearly 20 years of becoming one of the best there is, I've started to yearn for something more. I've got stuck in a rut, and it's really hard to get out, because by sticking to what I'm good at I don't really have good skills so I can be immediately as productive using other tools. It's not nice going from being a grizzled veteran to a newbie.

I recently did some playing around with Go for the first time, and found it so frustrating because the code doesn't just flow from my fingers, I had to look up the simplest things repeatedly, I don't immediately know what libraries contain most of the code my project needs, and so on.

I would go so far as to say that under no circumstances should you stick to what you're good at. You should always at least play with the new shiny, just have the discipline to not get distracted by it.

Earlier this year I had grand plans of writing a useful piece of code in a different language each month - to play with lots of shinies. But it being useful code each time would, I hoped, help avoid the problem of constant distraction. Unfortunately other things got in the way (good things, so that's OK) and that fell by the wayside, but while it lasted it did make me focus on specific new shinies instead of flitting around.

pancy profile image
Pan Chasinga • Edited

just have the discipline to not get distracted by it.

You already answered best. Nothing to disagree.

Go doesn't make sense to you, but it does to me. The point is everyone is different and shouldn't go chasing after things based on what the public says or thinks (or, for that matter, what TIOBE thinks).

Here's an example:

SO: Rust is the most loved language.
Me: Shoot I have to learn Rust.

People: Ocaml is useless for practical projects reserved only for academia.
Me: But I get Ocaml and I feel that its construct really clicks with the way I think
so I'm gonna try to use it to build something useful anyway.

Another (arguably stronger) point being you want to build or learn something for the small wins, not to win big. Small wins always help with the drive.

What Alex Cross said, "You do what you are." is intentionally different from the well-known "You are what you do." I think your case was the latter. The first is meaning you in your guts know best what you are good at and do it. It doesn't mean stop learning.

Thank you for the message. I loved reading it.

drhyde profile image
David Cantrell

Actually Go does make sense to me. I just don't know the idioms and tools well enough yet and so have to keep stopping to look things up, breaking the flow. I'm slowly improving, and will become one with the compiler at some point I'm sure :-)

davidmm1707 profile image
David MMπŸ‘¨πŸ»β€πŸ’»

An advanced version of "Tutorial Hell".

I was chasing too the "Shiny new thing" until I stopped in my tracks, thought what languages I need instead of what would be cool to learn.

Now I have a plan of what I want to learn this and next year. Not (only) because I like it, but because it will give me new tools (for example, learning Flutter as a backend developer, instead of learning Rust or C#).

pancy profile image
Pan Chasinga • Edited

I was in the Rust, Ocaml, Erlang, Elixir, Clojure, Scala, F# hells. Finally got it to 7. :)

Really they're all great languages. Just have to prioritize. I think seeing things the way they are and be objective is the most important skill a hacker can learn.

meliodas profile image
Henry Onyango

After years of fiddling with different languages, I realized that I was okay in most but hardly a true master in any. So I really get what you're saying.

I'd like to be both mobile and full stack and I get OOP. It's because of that that this year I decided to stick to Kotlin for Android and Typescript for web. I'm not where I want to be yet, but let's see how it goes.

pancy profile image
Pan Chasinga

I think taking detours to learn new things and master nothing is great. I'd even go as far as to argue it's the only way to grow.

gcdcoder profile image
Gustavo Castillo

Hello Joe great article!, I believe we should specialice in a particular set of skills/roles let's say frontend, backend, DevOps and so on, but one thing that I'm putting on practice is trying new things from time to time. Currently I'm focusing my career in Frontend related stuff, but some times I code in Go just for the sake of curiosity, in my opinion there is a thin line between be an expert and do what You're Good At and try to learn any new hype technology.

pancy profile image
Pan Chasinga

Thanks for the comment, Gustavo! This has nothing to do with not learning new things.

What Cross said, "You do what you are." are contrary to the well-known "You are what you do." If you stop learning you'd surely become the latter. Even Picasso learned and changed his style. People grow up, learn new things, and waste some old things. Point is you do and learn whatever you are comfortable and happy doing, not what the TIOBE or the poll says.

santosh79 profile image
Santosh Kumar

Nice article!

When in doubt go back to the basics and start over and you’ll figure out where you got off the track.

ucalyptus profile image
Sayantan Das

I really like this perspective. However it's also important to get a job through what you love or else it's not helping your career. Open to opinions.

pancy profile image
Pan Chasinga

You will be amazed at how easy we can learn to love what we are good at (or at least good at learning)!

Humans are very agile and flexible. It's just a matter of perspective.

But we are also very vulnerable to failures and very easily put down without small wins. Do things that you can earn small wins, not what's unnatural just to please people, career, or gain status.

zex profile image

Keep trying something cool one day you'll be good at it🀣

pancy profile image
Pan Chasinga

The question is how good is good enough?

You don't have to be good at it. You just have to have fun and get small wins from things you do to keep going. Most people give up because they struggle to chase after things that are not for them.

Try new things, for your sake, but evaluate quickly and stick to it or ditch it and move on.