Erik Trautman of the Viking Code School Blog did an outstanding job explaining “Why Learning to Code is So Damn Hard“. It’s a rather long read, but it’s easy to get, and it explains the different stages extremely well.
He looks both at the variability of confidence as one gets competence, the scarcity of resources for each stage, and the scope of knowledge. Just to have it here for a quick reference, here are the stages:
- The Hand Holding Honeymoon is the joy-filled romp through highly polished resources teaching you things that seem tricky but are totally do-able with their intensive support. You will primarily learn basic syntax but feel great about your accomplishments.
- The Cliff of Confusion is the painful realization that it’s a lot harder when the hand-holding ends and it feels like you can’t actually do anything on your own yet. Your primary challenges are constant debugging and not quite knowing how to ask the right questions as you fight your way towards any kind of momentum.
- The Desert of Despair is the long and lonely journey through a pathless landscape where every new direction seems correct but you’re frequently going in circles and you’re starving for the resources to get you through it. Beware the “Mirages of Mania”, like sirens of the desert, which will lead you astray.
- The Upswing of Awesome is when you’ve finally found a path through the desert and pulled together an understanding of how to build applications. But your code is still siloed and brittle like a house of cards. You gain confidence because your sites appear to run, you’ve mastered a few useful patterns, and your friends think your interfaces are cool but you’re terrified to look under the hood and you ultimately don’t know how to get to “production ready” code. How do you bridge the gap to a real job?
I’ll also borrow the resource density chart, which is very handy:
Not only the article explains why learning to code is so hard, but it also suggests how to make it easier, depending at which stage you are.
I think this is one of the best articles on professional development in software development that I’ve seen ever. Do read the whole thing. It’s that good!