There's an analogy about learning programming that I really like. Learning coding is like Lego, about starting small, block by block, to learn how things work before trying to bundle things together. In many ways, that’s how I started out on my coding journey. But I’m realising that maybe that has to be turned upside down now.
But as the saying goes, there’s many ways to skin a cat, so there’s many ways to learn programming. Or anything for that matter. Particularly for programming, I feel like I’m starting to hit a wall. After all, I’m still following a predetermined course structure, set by someone else who have no idea what my level of proficiency is (or lack of), what my larger goals are, what my learning style is like, and how best to help me address those things.
Ultimately, my goal is make products, but I feel like I’m constantly having to second-guess how the course is going to help me with that goal (even if they are fundamentals).
So at this stage, I’m going to turn the “start small” approach on its head and go big instead. I’ll just try to build the product I want, with what little I know, and pick up the programming knowledge I need from there. In that way, it feels like I only need to learn what I need to build my product, nothing more, nothing less. Very efficient. No second-guessing whether something will come in useful later, like while on the course.
So what’s the best way to learn programming? Start small? Or go big or go home? Or is there a third/fourth/nth way? I think there’s no silver bullet answer that applies for all situations, backgrounds and people. At least based on my own narrow silver of experience.
Best to try out various approaches, and adapt the best one(s) to suit your own context. And be open to changing that approach you initially picked when your situation changes.
Follow my daily writings on Lifelog, where I write about learning to code, goals, productivity, indie hacking and tech for good.