December 05, 2020 • 3 min read
A self-teaching, learning programmer asked me the following question:
Can you recommend any resources or sites that you go to with questions, or to keep up with the latest info?
I think this is a tough question. There is a glut of programming information online. You can’t read it all, and you shouldn’t, because much of it is outdated, wrong, or irrelevant to you.
So, what is the signal in this noise? I recommend aggregators, blogs, pair programming. And I offer a gentle recommendation against tutorials.
I’ve summarized this idea before in a Hashrocket blog post called ‘How to Prepare for a Technical Interview’:
I love technical blogs. Lots of great programmers have them. Incidentally, I recommend blogging. As a blog reader, find a programmer you respect, find their blog if they have one, and read every article. It’s a dramatic shortcut into their mode of thinking. I’m currently speeding through Ben Kuhn’s writing, and I did the same thing earlier this year with Basecamp’s Signal v. Noise.
Here are few of my favorite posts to get you started.
The best resource of all is pair programming. You’ll learn more pairing for an hour with a smart, empathetic senior developer than you will in a month reading tutorials. Stay on the lookout for pairing opportunities, seek them out, and jump on them when they arrive.
Second-best resource is a code review. Ship a small thing and post it on Reddit or Stack Overflow. The feedback is going to be brutal, but if you can face the comments section and consider the ideas there, you’ll get better. An unattributed quote I love: “Don’t ask for advice, ask for a code review.”
One of the best and toughest pieces of advice I’d give to someone learning to code: wean yourself off tutorials as soon as you can, in favor of building stuff. This blog post from Randall Kanna makes my argument, under the header ‘Escape Tutorial Hell’:
Step away from the tutorials as soon as you feel comfortable. Tutorials are great when you’re starting out. But at a certain point, they only slow down your learning if you rely on them too much. — Randal Kanna
I never read tutorials with exception of the official ‘Get Started’ guides on popular open-source projects. Why? I will learn faster and more deeply on my own. I prefer to build my own mental models instead of trying to download someone else’s. And I expect that some parts of the tutorial will be outdated, leading me toward a momentum-crushing series of side quests.
If you’re pondering starting a tutorial, ask yourself: how did the person who created this content learn enough to teach it? They figured it out, trying stuff, reading official docs, searching online, and thinking deeply about their problem. Getting stuck and then getting unstuck is how you get better, and tutorials rob you of that opportunity.
Want to stay relevant? I recommend aggregators, blogs, and pair programming. I’d love to hear about the resources you value via Twitter.
Blog of Jake Worth, software engineer in Maine.