What Nobody Tells You About Learning To Code — And Why That Makes It So Hard
Are you familiar with the article Why Learning to Code is So Damn Hard?
If not, check it out.
A few weeks ago I recorded a podcast with the guy who wrote it, Erik Trautman. He founded Viking Code School. Before that, he founded The Odin Project, a free and open-source curriculum for learning web development.
After we discussed his history with the Odin Project and Viking Code School, we dug into why, exactly, learning to code is so hard when you’re just getting started out.
And he said something. Something that blew my mind.
Because what he was saying, it rang so true. It resonated with my own experience learning to code.
It reverberated through the halls of my brain, echoing every person who has emailed me about how hard it is to learn how to code. To get started out.
And what he was saying — nobody talks about it. Ever.
What do we find, when we look for ways to learn how to code?
Programs. Workshops. Bootcamps. And they all make promises.
Build a website in 3 hours. No technical knowledge or background necessary.
Go to a 2-day workshop on Ruby on Rails. Walk away with enough knowledge to build real applications and make money doing it.
Learn HTML in a weekend.
Pay your $29, $200, whatever, and you will know everything there is to know about SQL.
Check off the box. On to the next one.
Except that’s not how it works, at all.
This isn’t a rant on empty promises or bad programs. This is what nobody tells you when you’re getting started with learning to code.
Learning to code is not a linear progression. You don’t check off a box and then you’re done. You don’t learn everything there is to know about a language or concept because you took one workshop or class.
Learning to code is a cycle of ups and downs. And the downs are really down. You get so stuck that you want to pull your hair out. You get frustrated. Discouraged.
You start asking:
- Am I really going to make it as a developer?
- Will anyone actually pay me to do this?
- Am I wasting months trying to learn something that won’t pan out?
So if learning to code isn’t easy, isn’t linear and isn’t just about checking off boxes… what do you do? How do you get from here to there, whatever yourthere is?
Define what you want to DO with the skills you’ll learn. Focus on whatever your “there” is.
Is it being a full-stack developer? A freelance web developer? Get specific.
When you focus on what you want to do versus what class to take next, you subtly shift your mindset from one that is skills-based to one that is competency-based.
Instead of taking course after course, then getting discouraged that you aren’t making progress or learning fast enough — you focus on how every time you code, every time you grasp a new skill, you level up.
You become more and more competent and able to achieve your overarching goal, your entire reason for learning. It’s easier to progress. You’re striving forward in the big picture instead of floundering in the day-to-day.
You learn. You build. You still hit walls, perhaps more often than you expect to. You possibly consider giving up. But if you focus on your end goal and keep pushing through, You create a base knowledge of the fundamentals, and you keep packing on.
You may need to forever be Googling the differences between function expressions and function declarations. And that’s OK.
Learning to code is an ongoing cycle of learning new concepts. Of finding and adding new pieces of the puzzle, and making that puzzle bigger and bigger until you’ve achieved the competency level needed to land your dream job or first freelance clients.
And sometimes it will feel like you’re taking two steps forward and one step back. And the frustration hits again, and maybe you want to quit. But you keep going.
Because you have a why for learning to code. An end goal. A reason to move forward.