If I had to learn programming again completely from scratch, I wouldn’t start with tutorials. Not because they are necessarily bad, but tutorials make everything feel much clearer than it actually is.
When you’re following a tutorial, it feels like you understand what’s happening. Your code you write works, and everything makes sense in that moment. however, as soon as the tutorial is gone and you try to do something on your own, that understanding instantly disappears.
I didn’t realise this at first. i thought my confusion meant I needed to learn more, by watching more tutorials, reading more documentation and going through more courses. However, overtime, I began to notice that I wasn’t actually struggling because I didn’t know enough. I was struggling because I wasn’t actually thinking.
If I had to start again, I would’ve began to build things much, much earlier. I wouldn’t have started just because I ‘felt’ ready, or because I had ‘learned enough’. I would have started as soon as I had learned the basics, even if everything felt messy.
Because actually building something yourself forces you to think in a different kind of way. You aren’t just mindlessly following steps anymore, you are aking decisions. You are trying things, breaking things, fixing things, and beginning to realise why things work the way they do.
A lot of the time, you won’t fell productive. In fact, most of the time you will feel slow, confused, frustrated. But that is where the real learning happens.
Also, I would focus far less on syntax and more on structure.
When you begin to learn programming, it becomes easy to just think programming is about remembering how to write things, such as keywords, syntax and how you structure a function. It feels like that is what is needed to fully understand programming.
But, in reality, that syntax is the easiest part. You can just look it up.
What’s a lot harder, and also more important, is being able to understand how things connect. For example, how different parts of projects relate to one another, or how data moves through a system, or how changing one line of code will affect something somewhere else in the program. This is the part of programming that feels confusing or complicated, not because the code is impossible to read, but because the structure isn’t immediately visible.
If I had to start again, I would also stop trying to avoid feeling lost.
That feeling shows up right from the start, and it never really disappears, it just changes slightly as you progress. At the beginning, you feel lost because everything is new to you. As you improve, you feel just as lost because what you’re working on is so big, you can’t fully comprehend everything at once.
In both cases, the instinctive reaction is exactly the same: get out of that feeling as fast as you can, by searching frantically for another explanation, another tutorial, anything that makes it feel easy again.
But that moment when things aren’t automatically clear is usually the moment when your understanding is just about to shift. If you stay in that moment for long enough, something begins to click. Not instantly, but gradually.
I would also be a lot more intentional about what I build.
A lot of advice for beginners focuses on building projects, which I agree is good, but they often leave out something important. Not all projects teach you things in the same way, or even focus on the same skills. Building something just for the sake of building it often doesn’t make things stick.
The times where I learnt the most came from trying to solve something that actually frustrated me. Something that didn’t make sense, or that slowed me down, that I genuinely wanted to fix. When you care about the problem you are solving, you approach it differently. You become more patient, and go deeper, meaning you don’t just move on when something breaks, you try to understand why and fix it yourself.
This is the process that teaches you a lot more than following something that you know will end up working.
If I had to start again, I would also share what I was doing much earlier.
Not because I expected people to pay attention to what I was doing, but because it forces you to understand what you are doing properly. When you try to explain something to someone else, even in simple terms, you are able to realise what you do and don’t understand very quickly.
Sometimes you think something makes sense or you understand something until you try to put it into words, and that gap in knowledge shows you exactly where you need to focus. Over time, sharing will also bring in new perspectives. Other people are more likely to notice what you missed, or explain something in a way that makes it click faster. It also makes it feel less isolating and more collaborative.
Looking back, learning programming actually isn’t at all about learning programming.
It is about learning how to deal with confusion, how to continue trying even if things don’t quite make sense yet, and how to build something even if you aren’t sure if you are doing it ‘right’. If I had to start again, I wouldn’t try and learn absolutely everything.
I would just start. I’d pick something that feels frustrating enough to care about, and try to understand it just a fraction better each day. And that would be enough.
Thank you for reading! If you enjoyed my writing:
Subscribe for more articles like this
View my coding journey → My GitHub
Connect with Me → My LinkedIn My X (Twitter)
My Website → lucyb0207.github.io
Top comments (0)