So you’re learning how to build stuff. That’s awesome. Before you waste countless hours watching videos, reading blog articles, and doing tutorials, there’s something I want to tell you:
Development is a skill. That means you learn by doing. Blogs, videos, and tutorials are helpful for learning concepts and getting familiar with tools, but they won’t help you with the part that actually matters: turning a vague, high level idea into an application.
This fact might seem obvious, but it turns out it’s not. In my time with the CMU Blockchain Group and BAF I’ve helped countless people learn all kinds of developer skills, oftentimes from zero. And the #1 reason people struggle to learn isn’t because they don’t understand some difficult concept, nor is it because they have “less experience”. It’s because they spend all of their time reading blogs, watching videos, and following tutorials instead of actually building stuff. The best way to learn a skill is to use it - fast learners truly understand this, and slow learners don’t.
If you feel personally attacked by the last paragraph, that was intentional. My goal here is to get you to stop doing more tutorials and build something.
Of course, I’m not saying to skip the videos and tutorials - you still need to learn tools and concepts. I’m saying that, once you’re familiar with them, it’s better to build something simple, that you’ve never built before, and most importantly, do it on your own, not through a tutorial. A tutorial figures everything out for you, so it won’t teach you how to figure stuff out. But figuring stuff out is the meat-and-potatoes of software engineering - not coding.
Of course, it doesn’t need to be a production-ready project - not even close. A beginning artist would start with a sketch of a simple object like a hat, not a highly-detailed drawing of two medieval soldiers locked in combat - developers are no different.
That said, there isn’t a “best” way to do that. I understand some people have trouble figuring out what they should do, so here’s some actionable suggestions:
In short, whatever you do, the key is it should make you think. It should make you experiment. It should train your intuition for what works and what doesn’t, in what situations. It should make you spend time figuring out why your code isn’t working. It should make you translate a high-level task into code on your own. You won’t get that from a book, article, video, lecture, or tutorial. You only get that from putting in the work.
Aside: This struggle might be more common with college students, the majority of the people I work with. The tendency to just read and consume information is understandable, because it’s likely they’ve only been given reading and homework by a teacher - they’ve never had to come up with their own reading and homework, and they’ve never learned without some overarching structure that tells them exactly what to do and how.