Warts and All: Mindset
There's a common saying:
If I had 5 minutes to cut down a tree, I'd spend three minutes sharpening the axe.
This old saw, often attributed to Abe Lincoln (maybe incorrectly) gets to the heart of what I want to talk about today: your mindset towards the journey of learning to code will have everything to do with how smoothly and successfully that journey goes.
Mine was in many ways a halting, rocky trip. But I learned somethings about managing myself along the way. If there's one thing to take away from this post: Adopt a growth mindset.
But getting here (and keeping up) was incredibly difficult. Strangely enough, this sort of work seems like something I should have been doing for a long time; I recently found a sixth grade “career report” I did about game development where I interviewed Nolan Bushnell (creator of Pong). But I was blocked, I avoided this path because it “wasn't for me”, it was “too hard”, I didn't “have the talent for it”. But once I was able to decide to go for it, in some ways the hardest decision I've ever made, I had to face myself. For a lot of reasons, many of them to do with me, some of them inherent to the tech industry, the switch was tough.
I had to tackle a lifetimes worth of personal hangups. Therapy helped (thank you to my wife for pushing me to take my mental health seriously) - both “talk” therapy and (much more for me) Cognitive Behavioral Therapy. Once I had cracked open the fact that things needed to change, that I wanted to do this thing, I had to figure out how to proceed in a territory where I'd spend most of my life telling myself I had no business.
My engagement with computers started pretty early, but don't be fooled - I wasn't one of those people who started coding from the time I was in pampers. I actually tried a couple times as a kid to learn coding, but - being honest here - it didn't take. I didn't really have the spark of need that would have pushed me past the “WTF is this gibberish” phase.
I started with HTML, built some basic sites, and then moved on to C++. Which was a recipe for disaster, because the cliff was too steep; going from
<h1>Hello world!</h1> to … well pretty anything beyond
hello-world.cpp was just daunting. The internet barely existed and I didn't have cool friends with programmer parents. Not for really an particular reason I can point to, I got the idea that programming was way too hard for me and that it was something you just had to be good at, like an inborn talent. And thus, we come to the first obstacle on the journey: my mindset towards learning.
I was always pretty good at school - a “smart kid”. I did got good grades and did well on tests. And my parents were all about that. They were “smart people” too and proud of their intellect. Unknowingly and unintentionally, I came to realize, that this story that they had about themselves and about me really held me back. You see, the conclusion I drew was that I had a set of talents and that I just needed to identify them. And the signal that I was talented at something was that I was good at it. Thus I was “smart” because I was good at school, which was indicated by good grades. And if I was bad at something (sports, computer-programing) it was because I didn't have the talent and that it wasn't really up my alley to pursue that thing.
This is known, in the excellent framing of Carol Dweck, as a “fixed mindset”. She addresses this topic in her book Mindset, which I highly recommend you read. Here's the quick takeaway - our capabilities are not fixed. The idea of talents being inborn is mostly bullshit. And by embracing what Dweck calls a “growth mindset”, you can unlock your ability to achieve results you never thought possible. Because difficulties and challenges, under a growth mindset, become not barriers but a massively important part of the process of getting better at something; they're telling you that you need to work harder! Persevere!
What you take away from a challenging session of working at something is not “I'm bad at this” but “I'm working hard to get better at this thing, that's awesome!” So, celebrate you efforts; your success will ultimately be a product of work. The sooner you embrace that view, the quicker you'll get on the path to achieving your goals.
I think this comment speaks directly to the issue of being attached to some image of yourself. Part of adopting a growth mindset means you have to actually accept that the way you see yourself might have to change; your identity has to shift from being “smart” or a “fast learner”, to that of “lifelong learner”, “hard worker”, “I embrace challenge”, etc. And anyway, I was a kid when I decided coding wasn't for me. At the time, I was more interested in Myst and Oregon trail (and then later Counter-Strike) and gaming in general than I was in actually coding. I did get pretty good at configuring windows drivers because I was always hacking together computers to play games.
I would futz for hours, breaking those machines down, staring at bluescreens and BIOS prompts, to get those computers hooked up. And at a certain point, the stubbornness that it took to suss out a single tiny black lego piece from a huge box, something I had learned as an even younger kid, became its own reward as a saw the results, the computer booting up, and that new graphics card working. Later on, I was lucky enough to learn that talent is not the same as skill and that it must by combined with perseverance.
Growth + Perseverance = Grit
In her book Grit, Angela Duckworth calls the combination of perseverance and passion Grit. The perseverance and drive is something I had to develop; its not a flattering thing to say about myself, but I was in many ways the opposite of gritty when i started out - I was looking for the easy success, robbing myself of the growth that would come through effort.
I had to tap into my inherent interest in computers, my motivations around a better job, my desire to have more control over my life, remember my youth spent futzing with driver settings. And I was able to bootstrap that grit in something of a flywheel - as I started to buy into the growth mindset, learning to code became more interesting because it was tractable, and as I learned more, I saw that perseverance could really change my skills, I saw the growth in front of me that effort produced.
Quick word about “passion” - the advice to “follow you passion” can actually be quite harmful. If you aren't one of those lucky people who has an innate passion for something you might build a career around, it can be hard to get started. And if you have a passion for something that is not in demand or not valued by the market, it can be disappointing and frustrating move to build a career around that topic (not to say don't do it, just know it'll be a massively uphill battle).
What does tend to happen, I believe, is something of a flywheel: we develop an interest in something, we then develop some skill, people see our value and reward us, that makes the topic more interesting, we work to become better, and the cycle continues. I would bet most people who have a satisfying career didn't necessary start with being passionate about the subject of their work. Cal Newport unpacks this idea nicely in So good they can't ignore you which I recommend you read (lots of recommended reading here…maybe a theme 🤔 ).
What I saw, as I sat down at my computer at 5:00AM in the mornings to write out lines from a tattered copy of Chris Pine's Learn to Program, was that I could code. It was not easy, by any stretch of the imagination, and there was a huge amount of work to get from a simple variable assignment to professionally qualified. Along the way there were many dark days; unemployment, fights about money, depression, gray hairs, many early mornings and late nights. But I was doing it. And it was only by changing myself, by looking inward, that I was able to take those first steps. So here's what I hope you take away: Embrace changing your mindset towards learning to code - it will take work but that's how you know you're learning!
I’ll be writing more here and on twitter, where you can follow me for more.