How to actually learn


Most teachers fail to teach, but more importantly the students fail to teach themselves. Now, this is something that goes for many topics, though I am going to use programming as an example throughout this blog post but it can really be applied to almost any topic.

When you're new to programming, you might think that the right approach to take to actually learn it would be to pick up a book and start reading through it. I know I tried this approach, several times actually and it has never worked for me. This is because it has several problems, not the least of which being the intimidation of having a 1000+ page book in front of you. It feels like a chore rather than something you want to learn for fun, which might put you off from actually learning anything to begin with. Then there's the fact that these books are gigantic and even if you manage to read all of it, you're simply going to forget most of it unless you have superhuman memory. You could just read it again, but then you might as well learn by practicing.

If you're self-taught, this really won't apply but teachers essentially read from a book and spread that knowledge to their students. Very much an oversimplified description of what a teacher does, but that really doesn't matter. While this might make some parts of what you're trying to learn actually stick, you're instead going to spend far too long harping on the basic concepts.

To actually learn programming effectively, you have to practice, because not only will this make you better at it in a way that a book simply cannot, it's actually less intimidating and it feels rewarding when it actually works and you end up learning something about the topic at hand. When you learn to drive, you can't just read a book, from that alone figure out how to drive and get your license without ever sitting down and driving. That would be very nice, but not something that is even remotely possible. Practice makes perfect, and when you learn it this way, you can work at your own pace, and learn as you go so that you don't waste time on concepts that you're just going to not use and as a result forget anyway. I mean, do you know how much stuff you learn in school that most people will forget later. That's not stupidity, that's just how humans work. More information does not equal skill at the subject or intelligence, and as such in school it's just a competition between students of who can hold the most amount of useless information in their head.

I'm really speaking from experience here. Over the years I have tried to teach myself C++ several times, and every single time I have failed and that is for the reasons I mentioned above. I would pick up this huge book, be discouraged from continuing and giving up instead of actually learning the basics and working my way up by writing code, which is what I was trying to learn at the end of the day.

In short, then. To learn about something you really shouldn't just pick up a massive book, read through it and quite frankly learn almost nothing. I mean, if that for whatever reason really gets through to you then that's great, but for everyone else it's a very ineffective way to learn. Instead, for programming specifically, head straight to your IDE of choice (i.e. Neovim) and instantly start writing code. When you don't know what to do next, simply search it up on the internet. The year is 2024 after all. After a while, the information you learned should actually stick. For instance, if you search up "c++ define a class" enough times, you will eventually learn how to actually define a class. Something that a real teacher might spend several days teaching can be learned in an hour, sometimes even extensively. That leaves you with plenty of time to actually learn about optimization and other concepts that the huge books probably don't even cover, such as many of the standard library methods.

Alright, that was a pretty pointless blog post I guess but I really just wanted to talk about some thoughts I've had now for a while. Thanks for reading, if you have any thoughts to share regarding this blog post, you can do so in the comment section. That's it for today, have a good day.


To post a comment, you must be logged in.