How You Can Tell You're A Great Developer
I’ve been thinking a lot about how difficult it is to know how good a coder you are in the beginning stages. For a start we are often blinkered by a false sense of accomplishment (through things like codecademy) or their beginner status gives them a serious case of Dunning-Kruger effect.
My friend Mimi said that there are lots of things out that to help people get started in their coding journeys. Because of this, the first stages are easy but coding itself is difficult and we should be honest and upfront about it. This is true, as all my recent struggles have shown me. Over and over, I find myself returning to the same old question; am I finding it difficult because it’s difficult, or because I’m not actually good at it?
Does perserverance seperate people who are okay from people who are great, or are there ‘natural’ coders? Tests like the one Coding Horror posted about supposedly separate the wheat from the chaff, but how much stock should we put in them? I’d argue very little.
Carol Dweck is the woman behind the inspiring ‘growth mindset’ research (and I suppose phenomenon) that posits that believing you can get better at something goes a lot of the way towards determining whether you can. Although the positive thinking by itself obviously won’t transform you from a newbie to a coding guru it can help you to perservere and grow as a coder.
- you build things from scratch
- you peek into the source code of the libraries and frameworks you use
- you can use the fundamentals in any language
- you feel like your code is mediocre but you don’t know what to do about it
I feel a lot more comfortable calling myself intermediate now, admittedly after watching the video a bunch of times. It’s just a matter of remembering that everyone struggles. To go on a little tangent, there’s a cool quote that’s resonated with me for a long time:
“You think your pain and your heartbreak are unprecedented in the history of the world, but then you read. It was books that taught me that the things that tormented me most were the very things that connected me with all the people who were alive, or who had ever been alive.” - James Baldwin
I suppose for coding it would be:
“You think your bugs and your errors are undocumented on the internet, but then you google. It was searching on the internet that taught me that the things that tormented me most were the very things that I favourited jokes about on Twitter, or were the most upvoted on Stack Overflow” - me
It’s easy to feel like only the best code makes it onto the internet, but of course the entire edifice of our industry is built on the amalgamated problems of our forebears.
Reading other people’s exemplary code is a great way to learn but maybe not the best way to stay on track at times. I enjoyed reading the alternative answers put forward by other coders on Exercism, a place to practice coding through making test suites pass. Sometimes it’s interesting, encouraging and just as useful to critique the efforts of people on a similar level.
I guess my take away is to keep your eyes on your own lane, and remember that being self defeating won’t make building that API or awesome parralax scroll effect any easier.
To get back to the original question, Angelina outlines ways to become an awesome developer in her video, and you can do Rebecca Murphey’s JS Assessment if you want to put your money where you mouth is, so to speak. I might make a seperate post on how to become the best developer you can be, but google might have your back on that one.
I framed this post positively; I guess you can tell you’re a great developer when it feels less like jumping through flaming hoops and more like an enjoyable mind teaser. I think I just needed reassurance that I wasn’t a terrible one.
Do any of you struggle with imposter syndrome, or have any other thoughts?