Programming and studying engineering is awesome, but it gives you one nasty habit you’re probably going to have for the rest of your life: you spend way too much time on finding the most effective and efficient ways to get things done. So why not do something useful with it and share it on the internets? Here’s the three principles that form the foundation of all my studying:
Disclaimer: I’m studying engineering, so these ideas are developed for math and other engineering related subjects (physics, computer programming, anything with ‘problems’, really). I don’t know how well this works for, say, languages.
If you made an error, never just scrap the whole thing and try again. Find out where you went wrong — how can you avoid making that mistake again?
Here’s a harsh truth: if you’re frolicking trough your exercises, solving every problem with a couple of elegant pen strokes, you’re not learning anything. Your task is to find things you don’t know the answer to. And then find that answer. That’s learning.
Whenever you’ve successfully solved a problem (or not; see above), re-read it. What were the high-level steps that got you to the solution? Were there any exceptions, any special cases you have to remember next time?
Seriously, don’t skimp on this: after every exercise, I write down a little evaluation, where I note what mistakes I made, how I can make sure I don’t make them again and whether there may be a simpler, faster or more elegant solution (after reading the model solution, if provided).
I’m not saying you should study all the time. Definitely not. But taking a couple of minutes to go over your notes, summarize what’s been told (even if just in your head) and clarify your notes will make you understand all those new concepts in no time.
So there you have it! Three simple ideas for radically improved learning. Fail, reflect and repeat.
What are the things that have helped you the most, regarding better learning? I’m curious!