Coding, Tenacity, Video Games & the Beauty of Failure

I used to think of myself as a coder. I don’t anymore. I still write code on occasion, but honestly what I think I’m good at now is failure. I’m a failure, and I love it. I wouldn’t have it any other way.

There’s a common saying about ‘failing up’, the concept is that mediocre talent can climb the ladder despite their mediocrity, but this doesn’t quite capture it. There’s more here to unpack.

You will fail.

You should fail.

You should learn to love your failures, take it, ingest it, grok it, learn from it. Then rise up again, better than before and do it again and again.

People think coding is hard, that it’s about raw intelligence, or your ability to invert a binary tree, wrap your head around some fancy algorithm or data structure, that they are like magicians who just implicitly understand everything about computers. They couldn’t be more wrong. This is so far from the truth it’s just not even funny. On a side note, nobody gives a shit if you can invert a binary tree.

true story

As with most things in life, good coders have really just failed more than you. That’s it. That’s the special sauce, the pièce de résistance, the motive force.

Code is just a tool, and like any tool, you need the hours, and you will fail. People don’t pick up a saw and know how to make a table, you can’t sit down at a piano and play Chopin, you’re not Gordon Ramsay because you bought some fancy spices and swear a lot. This shit is hard, why is coding any different?

I started to code five years ago, it feels like eons now, but in the grand scheme of things I’m still an absolute newbie in the arena. I was fortunate though, not because I had a good mentor, or a well laid out plan to follow, or any real motivation more than anyone else I knew, but because I played video games.

Specifically because I was playing dark souls. So for those of you who don’t know, dark souls is a game all about death. The tagline is ‘prepare to die’ and it’s no joke, you will die. You will die over and over and over again.

The game is not really about grinding your character up, but your own grit, your own skill, and your own ability to master the game. Sure, you can improve your odds slightly, but that boss you just can’t crack? Well the only way you’re beating it is to git gud. No way around it. You’ll bash your head against that wall over and over again, until one time you’ll break through.

But for some people, they won’t give up, the sheer ecstasy of beating that goal, of killing that boss, of mastering the game is enough to push through. It’s enough to drive through the pain, and not just drive through it, but to use it, harness it.

The illusion is shattered, you’re no longer beholden to the wall. You know it intricately, you know it so well in fact that it becomes easy to scale. This is the dark souls experience, lots of people will give up before they get here, claiming the game is too hard, or not fun. Maybe they are right, who am I to judge.

Comfort in Failure

This is when I learnt how to play dark souls, I got comfortable with failure, just in the game mind you. Everywhere else, I still hated it, like most people, failure was failure, it made me uncomfortable, it made me hurt, and I hated it and did everything I could to avoid it. Discomfort was not my friend.

I was lucky though, I made the connection, because at the time I was learning to code. I was writing scripts in python, nothing fancy, I was trying to rule the world, I wanted to be the person to crack prediction on cryptocurrency. Laughable now, but that’s what I wanted. I thought I could track google trends data in keywords alongisde reddit, and use this to predict bullish signals in specific coins.

This was back in 2017 during all the hype, and I wasn’t alone, I wasn’t the only one with this ambition and I knew it. I never did manage it, I have the script somewhere, stored in my github, and I keep it there, unmarked and unmodified as an indicator of how far I’ve come. I can look back it now, in fact you know what, here it is:

https://github.com/RFarrow9/django-confings/blob/master/Trending_Bot.py

Mock it, read this code and tell me how awful it is, fill up the comments with disparaging notes on it. Absolutely fine, this is where I started, using exec (oof), print statements (oof), the longest for loop in the world, referencing local files on my machine, hardcoding credentials (jesus christ oof) and many other sins I see easily now.

But because I was writing this at the same time as playing dark souls, I linked the flames of resilience, of tenacity, of pure determined grit. I was lucky. Writing code, and playing dark souls become intricately linked, I saw the same thing, I saw that death is not a blocker, its not failure, it’s progress. Everytime I died in the game was like encountering an issue in the code that bamboozled me.

That dragon on the bridge was pythons indexing. The black knight was the stack traces. The taurus demon was package management. Its’ the same shit underneath. The same process, and the same winning strategy — to fail.

Just look at this package management system

I failed at my code, but failure itself became the process for me, I’ve failed many times since, but every time I did, I learnt from it. I don’t shy away from the failure anymore, I thrive in it (or at least try to). Truth is I am pretty thick, it takes me time to understand something, to really feel it, to grok it. Some of the guys in my team (shoutout to my team they’re great) put me to shame with their code, but you know what, I’ll get there. Not because I’m smart, but because I smash my head against that wall, until I’m bloody and concussed.

So I am white as fuck — that’s probably obvious, and therefore naturally I’m a big fan of Macklemore, I mean who doesn’t love him? Definitely a bit of a man-crush, he’s just got a way with language that really gets me at my core. There’s a few songs I’d recommend from the 2012 album ‘The Heist’, with ‘Same Love’ being right up there. But the one that really resonates with me is ‘Ten Thousand Hours’.

Beauty in failure

I credit where I am now to failure & suffering, more than anything else. When people ask how to learn to code, they’re usually disheartened when I tell them to fail, to suffer, and to learn to love it. That’s not what they want to hear, they want a magic recipe, oh yeh go do this course and bam coding is yours forever. The truth is never that fun. Truth is it hurts, and it will continue to hurt. Embrace the fail, embrace the pain, and live in the suffering.

A good engineer knows code, but a really fucking great engineer knows themselves.

There’s something really stunningly beautiful in embracing failure, not just in code, but in everything. Ever seen someone stand up in front of a crowd and give something a go they’ve never done? They may have been terrible at it, but that took balls. It takes guts, and that is not impish, it’s god damn admirable.

Being human is all about the experience, and we let fear run far too prominent a role in our lives. If you’re an engineer, no scratch that, if you’re a human, fuck the fear. Go out there, learn that skill, and fuck the sceptics.

The only thing that matters is tenacity. Not just in code, in art, in creation, in games, in fitness, in knowing yourself. Throw yourself at it, learn to love the failing, don’t just think it, feel it.

So this is my first blog post, and god damn, probably it’s terrible. You know what though, that’s ok, because I’ll keep going. I will learn from this, and that is beautiful.

--

--

Engineering manager, house builder, awful runner. Hit me at https://www.linkedin.com/in/robertfarrow1/

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store