The Myth of the Self-Taught Programmer
I taught myself how to program. I spent a few months hunched over a keyboard, eyes slowly atrophying in the dim artificial light, and bit by clumsy bit The Knowledge magically flowed into my brain and somehow became lodged there.
Except, that’s not true.
The truth is that I didn’t teach myself how to program. I had teachers. I had dozens, if not hundreds of teachers — mentors who taught me the ins-and-outs of i/o; the ifs of if-thens. While it’s nice to bask in the warm, fuzzy glow of boasting that you’re self-taught, it’s disingenuous. If I had truly taught myself how to program that would be insanely awesome, and impossible. If you know how to code, you had teachers, whether or not they were physically present in a Comp Sci class or asynchronously sharing nuggets of gold via well-written blog posts.
It might seem like I’m splitting hairs with this argument, but it’s actually important to make the distinction, because in the modern world of web-development we stand on the shoulders of others who have laid out a path for the rest of us, whether through direct instruction or by sharing open-source software without which our revolutionary to-do app simply wouldn’t work.
This year there has been a lot of talk (at least in the front-end community) about ‘JavaScript Fatigue’ (including deliciously recursive JavaScript Fatigue Fatigue) and a sense of overwhelm that comes with all of the open-source libraries & frameworks out there. This reinforces the point that good teachers have never been more important for beginners — teachers that can help guide the new entrants through the noise and onto a path towards competence. Every noob that makes it over the initial hurdles of learning to code has the opportunity to become a teacher — and from that replenished community will come the next great (free!) tools. It benefits us all to do our best to teach & guide beginners, and to acknowledge the interdependence of our skills.
good teachers have never been more important for beginners
As with any type of communication on the internet there are always some inherent chunks of negativity embedded within open conversations. As a community we should do our best to reject this. Although new programmers might not all be children, we need to accept their questions as though they are — responses to ‘dumb questions’ should be more ELI5 and less EVIL. Once upon a time it was you who was asking what a server was, or trying with furrowed brow to understand the difference between CSS and HTML. (Of course, there are always a special few who came out of the womb understanding closures…).
There is the saying that ‘hindsight is 20/20’, and some of us are guilty of looking back at the path that we’ve taken and seeing a single, self-generated stairway to coding heaven. Yet, anyone who has actually learned to program knows it’s tough as hell and there is no way to make it through without helping hands. It’s easy to fall into the trap of saying that you’re ‘self-taught’, because at some point in the process we begin to suffer from the curse of knowledge, which makes it very difficult to understand the beginner’s mind. That doesn’t mean we shouldn’t try. It’s easy to take all of the (free!) information offered to us for granted and not pay-it-forward. That isn’t the right approach. Each one teach one — that should be the motto of the modern developer.
It’s important to shatter the myth of the self-taught programmer because it shows all of us in the coding world that the cycle of learning & teaching should continue. When you reach a certain point it becomes not just an opportunity, but an obligation to continue that cycle.
Thanks to (some of) My Teachers:
Books
Eloquent JavaScript — Marijn Haverbeke
Essential JavaScript Design Patterns — Addy Osmani
You Don’t Know JS — Kyle Simpson
Idiomatic JS — — Rick Waldron & Contributors
JavaScript Allonge — Reg Braithwaite
Speaking JS — Dr. Axel Rauschmayer
Human JavaScript — Henrik Joreteg
Modern JavaScript— Nicolás Bevacqua
Guides
JS The Right Way — Multiple Contributors
Superhero.js — Multiple Contributors
Blogs
Scotch.io — Multiple Contributors
David Walsh Blog — David Walsh
Pony Foo — Nicolás Bevacqua
Coding Horror — Jeff Atwood
Eric Elliot on Medium —Eric Elliot
Rising Stack — Multiple Contributors
CSS Tricks — Multiple Contributors
A List Apart — Multiple Contributors
Code.Lengstorf — Jason Lengstorf
Milan Petrovi Blog — Milan Petrovi
Todd Motto — Todd Motto
Newsletters
###
If you’re a coder just starting out or you’re looking to get your first web developer job, I’m working on a project to help you. Jumpjet helps you become a better coder through rich feedback sessions & practice interviews with seasoned coders.
You can check it out here: www.jumpjet.io