Time is the true cost of becoming a developer
When I first started this journey, I was bombarded with claims: “Its so easy to learn how to code!”; “3 months is all it takes!*with a subscription to our learning platform of $399/mo.” Even my technically savvy, albeit not developer friends guesstimated, “It’ll take you about 6 months to become proficient.”
This all began about a year and a half ago, I unknowingly fired off an http request to watch ‘how the internet works’ — cue mind blowing. I felt as if I was discovering this whole underworld, the cogs of society made visible for me to ponder.
The more I learned, the more I was unable to comprehend the magnitude: our jobs, economies, even governments rely on these systems to function. I was astounded at how fragile it all seemed on a macro-level, while on the micro-level feeling the first of many pangs from misplaced semi-colons and the dreaded reference error.
I’ll be honest, I was hooked. My temperament tends towards obsessive — a doggedly persistent problem solver — so it was always going to be a good fit. In the beginning, I didn’t approach it as some vehicle for career change or magic tapping of a gold mine. I was simply curious. In working with developers and designers at my then-job, I wanted to understand how that shit worked.
It was mostly fun, exploratory, a way to keep my mind stimulated after coming home from a burntout workweek. And then, my partner struck the first match, so to speak. He noticed my talent, my genuine interest and began nudging me to think about pursuing development as a career.
“You’re never going to be satisfied managing projects that other people end up building,” he told me. And he was right. I am a creator. Perhaps a bit of a control freak. My compulsion to have each aspect of a product or project I am working on in my absolute awareness makes me a good project manager, for a time.
But I get bored too easily in relaying information to the folks doing the actual creating. I saw that I needed to be in the dirt, building and rebuilding. I wanted a constant flux of feedback and learning. Reinforcing that old adage, be careful what you ask for.
With that seed planted, a glimmer of hope really — a distant, primal confidence surged, repeating ‘you can do this, you can do this, you can do this’ — I gave notice at my job and made plans to pursue coding fulltime.
I understood that I needed time to continue learning and build projects. I had to have something to show potential employers. With one paying project lined up — a portfolio website, a solid challenge with minimal complexity, I strategically counted my chickens and stepped into the void. I felt scared, but determined. I had faith that in time and with hard work, I would become employable.
There are many things I underestimated. The first of which being that the industry gives little room for folks without years at a tech company under their belt. In fact that might be too gentle. I’ll go ahead and claim that there are close to zero entry level coding positions for folks who aren’t CS graduates in the mainstream job market.
This phenomenon is not unique to tech. And I understand it from a an employer’s perspective. If I was running a business, I wouldn’t take a chance on a less experienced person unless I personally knew their work ethic and potential to grow.
Now, there are some proposed antidotes to this problem — a significant barrier to entry — circulating the internet. “Go to coding meetups!”, is one. But guess who is in attendance at those meetups? All these other inexperienced developers or bootcamp grads looking to make a name for themselves: “Want to checkout this todo app I made?”
Of course the true value of attending meetups is to connect with other people in your field, even if they are in the exact same position as you. Networking, although I consider it a modern form of torture, really does work, in a way. Meetups have made me feel less alone in my coding journey, but have yet to lead to paid work.
Another antidote you will see in your desperate googling: “Make stuff for free!”, they say. I have certainly spent months doing this and it is good advice, a great way to make it seem like you got paid to build something. And you learn, which is inherently valuable.
That said, the financial privilege required to take this approach is bordering on preposterous. As everyone knows, thoughtfully designed and well built projects take time; a seemingly simple website you think will take a month to build could end up taking four until you actually repoint the domain.
Who has the capital to be able to float themselves during this time?And even if you are able to swing one free project that is actually impressive enough to attract employers, that’s just one damn link on your portfolio, accompanied by a slew of simple projects you created alongside whatever course you were taking at the time. It’s not enough.
Let’s be honest, potential employers (ahem, recruiters) just want to see titles on your resume. I have this nasty habit when I‘m on a self-deprecating bend. I hop on Linked-in, go to the company pages that I respect and would die to work for, scroll through their employee list and checkout the resumes of all the developers. Sadistic I know, but I want to know what I’m up against.
You may already know this, but the resumes are stacked, showcasing either years of the myriad terms for our roles — engineer, developer, what-have-you — or limited experience but certainly a CS degree.
Sometimes I will come across a unicorn. Someone like me who has an unrelated degree without any formal coding education, but somehow transitioned into development. I am always tempted to reach out to them — “How did you do it? How did you convince them you were worth the risk?”
The cynic in me knows I will get some rose-colored response; “I just worked hard and someone gave me a shot.” I’d like to believe this is true. Nay, I have to believe this is true, because I’ve hedged all my bets on this play.
Let me just say this: all those folks on Youtube who said they got hired as a javascript developer after 1 month of studying code, all the online programs or bootcamps claiming you only need 12 weeks to be job ready — it’s all bullshit.
Call me salty. Call me an entitled millennial expecting everything to be easy. Call me out for just not being good at code or not having enough work to show — this may be true and I’ll give you that. Workin’ on it.
But, regardless of my personal qualifications or opinions, there is objectively an issue with an industry that doesn’t support cycles of growth — all seniors were once juniors and vis versa.
How do you expect to continue nurturing and growing your workforce if you let recruiters hold the floodgates with: “You don’t have 3+ years experience at a startup,” or “I don’t see a CS degree.”
While I’m not advocating for a free pass, there has to be a better way to provide opportunities for incredibly intelligent, passionate people to demonstrate their potential. We can’t keep shutting out people who could contribute something new and different because of their non-traditional backgrounds and ‘junior’ status.
I can’t help but beg the question: if you are not a well-off white guy conditioned to pursue STEM from an early age or someone with vast financial privilege, is there space for you to enter the dev community?
It seems there is an incredible amount of lip-service paid to expanding diversity in tech. I think most companies are well-intentioned in this sentiment. They truly do want to hire diverse folks of various backgrounds, genders, & ethnicities. They know this will improve their product and process. The problem is the lack of quality coders in the hiring pool who have these diverse identities.
Learning to code takes time, a very long time. Time === money. Unfortunately the entrance fee to becoming ‘employable’ as a developer is too costly for most people to bear.
For my fellow folks trying to enter tech from non-traditional backgrounds, know this: you can do it, but as you’ve heard before and you will hear again, you just have to work a lot harder. You need time, patience, and a hell of a lot of persistence. A senior designer whom I admire once told me in regards to scoping projects, “However long you think it’s going to take, double it.” This certainly rings true for learning to code.
I’ve seen figures thrown around; it takes roughly 1,000 hours to become proficient at something (Gladwell says 10,000 but for the sake of our shallow wells of hope and confidence, let’s chop off a zero, shall we?). If a concrete number like that is helpful for your mental model, latch onto it. For me, it’s a little soul crushing, but it demonstrates the reality that this shit is hard to learn.
To gain understanding about programming, you have to cultivate a sense of humility. The truth is, you will always be swimming in unknown waters with subject matter that feels impossible to comprehend. There is no summit upon which we can hoist our intellectual flags, signaling to everyone, “I’m ready! I’m a real developer!”
Truly learning something is a lot more subtle and abstract. You need to take your time with it. Like a piece of cud, grind over these things again and again. Let it seep into your thought and coding patterns in new ways.
It requires a frame of mind in which you occupy various volatile states — hopping from insecurity to curiosity, inspiration then frustration. Understanding is succumbing to these tides, sometimes beating you against the bedrock, sometimes buoyantly carrying you where you need to go.
To show up in this way, continuing to seek knowledge despite the countless feedback loops telling you you’re not enough, you can’t do this, what you make is shit — this is gaining understanding. If there’s one thing you take away from this rant, know that loyalty to this mental model will yield results. They may not be what you expect. And it surely won’t happen as quickly as you thought, but all we can do is try.
- ← Previous
Being like dogs - Next →
Mental Garbage Collection