One engineering mindset that has gotten in my way is the thought that I will never 'catch up on' what other people already know. With 23 of my 26 life years spent codeless, I falsely believed I'd always be working from a deficit and would never break even with the savoir-faire of my developer peers. I never had that same defeatist idea about studying art or foreign language, so wondering "I'm already behind, so why even bother?" was a brand new question I couldn't answer.
What is it about the engineering community that induces such fatalism in beginners? Beginners and experts alike believe that the sky's the limit with web, game, and hardware development, but it's difficult to maintain that hopeful attitude as a new person when stumbling on acronym after acronym or upon a particularly opinionated GitHub issue thread.
One cause at play here is that public street cred metrics for beginners and experts are entirely different. Beginners earn credit by earning badges on Codecademy, sharing links to their first blogs in Rails, or pushing their first apps to GitHub.
As time goes on though, these staggered, sharing-based metrics give way to a different kind of "success." Many beginners, including myself when I started, perceived experienced developers as those having a ton of Twitter followers, a massive contribution history on GitHub, or a collection of Strong Opinions On Programming Libraries.
In reality, those metrics have nothing to do with actual engineering. Having green square after green square on GitHub does not automatically mean someone is a responsible, smart, or admirable developer, nor does their having tweeted X number of times.
I want us to recognize that these metrics of 'mastery' are far too easy to latch onto as signs of programmer superstardom. Success metrics divorced from incremental, visible learning make it impossible for beginners to chart their courses aligned with the engineers they admire.
In other disciplines, signs of mastery are parallel between beginners and experts. New scientists write papers in school; expert scientists publish papers in journals. The concept of 'a paper' remains the same. It is one visible and consistent metric for assessing a scientist's knowledge, from newbie to pro. We do not have such a concrete, approachable metric in programming, and we must be more responsible about how we celebrate expertise.
If the engineering community teaches that "success" is having an intense web presence and being able to condescendingly chuckle about certain programming languages, we aren't demonstrating that studying and patience are the real routes to mastery. Anyone can snidely giggle about XYZ framework, but it takes a truly admirable developer to admit what they don't know or what they're learning.
No matter where you are in your learning, I encourage you all to do anything similar that shows your engineering journey instead of your destination. And beginners, you're not behind! You're already right where you're supposed to be. We all are. ♥
This post was originally published on Tumblr.