Why Learning To Code Is So Damn Hard (Review)
6-minute read ⚠️ Work In Progress
“What every beginner absolutely needs to know about the journey ahead”
I used to recommend this
I used to
…until this timeless essay transferred to a corporate blog with a bland redesign that took all of the soul out of it
I take innovation & technological progress seriously, but I don’t empathize with the sloppy paint job from a “necessary” re-brand just because this “digital asset” changed hands. Have you ever been part of a group project that would rather rush to design logos & T-shirts than solve the problem at hand?
I’ll let you judge for yourself 👀
The Day Everything Changed
You hate to see it: world-class writing just got bought & bent into a strange shape with no soul. It reminds me of a blog post by *ehm* Benjamin Franklin about Britain soon before Americans declared their independence: “Rules by Which a Great Empire May Be Reduced to a Small One” …sound relevant here?
Alright enough ragging on the acquisition …especially their bad paint job. Below is my curated summary & re-interpretation of this framework, using the images I preserved from the original post.
Learning to code is damn hard
& so is crafting a brilliant essay
(not to mention these illustrations)
Consider this my tribute to someone who actually deserves the credit for something in a league of its own. Great work, Erik Trautman! I hope they compensated you well. You deserved it.
Unnecessary Disclosure: I’ve never met or spoken with Erik
The Big Picture
You’ll recognize this brilliant image from BEFORE the acquisition. It’s the very first thing you see, an elegant puzzle before the author cross-examines every angle. This time we get to admire it up-close with relevant labels before we descend into each component.
(tap to open image in a new tab)
It almost feels wrong, like an unexpected spoiler, but I want you to appreciate that cohesive picture & how much information was packed into that original piece
“that rug really tied the room together”
Why should we care?
What makes this so special?
Why is learning to code so damn hard?
Those are great questions
& fortunately there’s a great essay
Part I: Confidence
Day 1: “wait… that actually worked! It just works now everytime!”
You get this pure bliss. You’re an alchemist, a sorcerer. You not only punched a hole in some clay, but you did something that can repeated again & again & again & it won’t lose shape over time.
Day 2: “I’m totally ready to automate my job away”
Narrator: “they weren’t ready”
You know that elevated sense of self you get to savor right after an expensive purchase? You’ve got peak expectations: your life is forever changed for the better. Definitely. But the Cliff of Confusion is lurking right around the corner. The day you get ambitious enough to bite off more than you can chew–to code something anew with minimal assistance–is the day you ride that rollercoaster deep into the seventh ring of hell.
No tapping on shoulders
No lengthy walkthroughs on the internet
But don’t worry, software isn’t about building things “from scratch” anyways (most of the time). Your end goal isn’t to be so flawless that you type code perfection as if you used a typewriter from 1960 with no delete key (i.e. without consulting other people or resources) …it’s actually quite the opposite!
The Desert of Despair is as enjoyable as it sounds: no foreseeable end in sight. You just got tossed into the deep end of the pool for the first time & now you’re just sloppily flailing around until you get your motions down.
The Dread starts to sink in
~ you noodle through ~
You start preferring to “read the docs” instead of long step-by-step beginner tutorials, because docs are a denser source of information. You start noticing a more refined sense of taste when you scroll through StackOverflow solutions & you may have never encountered this problem before, but you’re starting to read subtleties behind other’s code. “Oh that person just duck-taped crappy code together, but this solution looks robust”.
You’re starting to see the matrix
- TODO: “he’s beginning to believe” image/gif
You’re almost ready for a job
Part II: Resource Density
Like we just said,
soon those beginner tutorials run out
You get this bad feeling in your stomach that you may have memorized a bunch of one-off things, but you’re not seeing a cohesive picture. You don’t feel like you’re learning anything “new” as much as learning the same Day 1 concepts over & over again. You’re stuck in tutorial hell.
You start to wonder if there even is one, or if you’re just an impostor who will never be good enough for this kind of work (don’t worry, you’re not broken or incapable). I’m not going to pretend that 100% of people can code, but no one would feel deterred if I told them 100% of people won’t be professional athletes (particularly because a considerable portion of people simply don’t care enough about sports to bother). If this is a field you’re even considering, I don’t care what country you were born in or what you look like: you’re almost certainly good enough.
Why the pep talk?
What does Resource Density have to do with this?
Because this is where The Doubt™ creeps in (& if you’re unlucky, it might haunt you a little longer than the others)
- TODO: elaborate
Part III: Scope of Knowledge
Software Engineering is non-routine
The answers from the first test won’t get you far
It’s one thing to do logic puzzles & algorithm challenges, but what most of us aren’t building from the bottom up. A lot of problems are merely gluing two oddly-shaped ends together (emphasis on the “oddly”). There’s a wider language to be grasped if you want to connect pieces together.
On the path to conversational fluency,
you can’t skip vocab & grammar
This fluency is what simplifies all the complexity in the world to just: “oh, yeah I’m really just connecting this too large pieces together in this new way”, The human mind is really really good at computing with 2-4 things in mind.Without this familiarity & ability to recognize the relationships between smaller pieces, what would’ve been a simple 4 + 4 = 8
…implodes into: 1 + 0.5 + 0.25 + 1 + 1 + 0.25 + 1 + 1 + 1 + 0.2 + 0.3 + 0.5
- TODO: elaborate
- Have fun! (seriously ride this out & enjoy yourself. If you feel a deep satisfaction when you make magic happen & are willing to perservere through the doubts to get there, then you’re ready to move on.
- Oh you were serious? Great! try to build something/anything “in your local environment” without following a tutorial (or at very least, following half a tutorial to get started, but taking a complete left-turn somewhere to make something of your own inspiration …not just changing the color or text on the screen). Give yourself just enough leeway to feel the discomfort of not knowing what to do next & googling your way through that confusion (there’ll always be another tutorial).
- TODO: elaborate
Again, all credit goes to Erik Trautman
& I encourage you to read the original
(or what’s still standing)
I used to recommend this
I used to
I’ll savor my own copy from now on
⚠️ Full story: coming soon…