There are two ways to pass a maths exam.
1. Develop an understanding of the underlying concepts of mathematics, thereby allowing you to solve any problem through following a logical process.
2. Learn by rote.
Both methods have their advantages and disadvantages. Method 1 takes time and effort, but you’ll carry the knowledge throughout your entire life. Method 2 is much quicker, but you’ll never actually know what you’ve supposedly learned, and you’ll have forgotten it within days of actually sitting the exam.
I could never do the second method. It bored me. Sure, there are some subjects where learning by rote is the only way to do it. History, for example. Biology, to a certain extent (everything’s got a name, and it’s at least four syllables long). But with maths? Sure, you can learn theorems by rote. You can learn equations and formulas off by heart until the cows come home. But what’s the point? At least with History, that bit of rote learning might at some stage pay off in a pub quiz. I’ve yet to see a pub quiz that had a section on trigonometry.
I’ll be honest – when I first encountered algebra, at the age of twelve, in first year of secondary school, I was stumped. Admittedly, it didn’t help that my teacher at the time was a drunkard with violent tendencies, but even so, I just did not get it. And then one evening, my dad sat me down, and in just a few hours, explained algebra in its entirety. Now, he didn’t go through every page of by textbook, or pull out a wad of exam papers. He simply explained the basic concept behind it – the letters in those equations are simply numbers we don’t know yet. From that point on, I sailed through maths in school. It was easy. Not only that, it was fun.
But imagine for a second, that my dad hated maths; that he didn’t even know how to add two numbers together. What would have happened? I likely would have continued to be frustrated by the simplest of concepts, eventually resorting to learning things off with no understanding of how they worked.
And that would have sucked.
It’s not that I can’t learn stuff by rote. Learning a programming language involves memorising all sorts of strange bits of syntax that has no actual meaning outside of the universe of that particular programming language. But at least I know the reason why I’m committing these things to memory. Writing ‘print’ in Python serves a purpose – it’s a nice, easy to remember, piece of language that a Python compiler knows how to convert down to a base level of making transistors and electrical charges behave in such a way that you can display something onscreen. But when I was in school, algebra, trigonometry, etc., held none of that relevance for me. As far as I was concerned, the only reason these concepts existed was so I could sit an exam, and if learning by rote meant I could pass this exam quicker, so be it. I was just fortunate – somebody explained the underlying concepts in such a way that I understood them, and could apply them.
I’ve noticed with coding that I often go through stages when it comes to learning new concepts. They are as follows:
1. Not a fucking clue.
2. Well, copying and pasting that guys’ code sort of worked, let’s just never touch lines 230 – 356 ever again.
3. I sort of understand this concept now! Let’s make some tweaks to that copy/pasted code!
4. Shit. It’s broken. It’s all broken.
5. Revert to point 1. Repeat points 1-5 seventeen more times.
6. I understand it! It makes sense!
I couldn’t imagine ever being even remotely satisfied with not reaching full understanding of a concept, even if the resources exist online to just copy/paste and have some working code.
I guess that’s a good thing, but lord, it makes my coding slow as fuck sometimes…