I’m currently in the process of learning (at least the basics of) C++. It’s fucking amazing.
Today I want to discuss the influence a teaching method –specifically, the verbosity of it– has on a student’s understanding of the subject. I’ll be going by the very specific and possibly rather technical example of me learning a new programming language. I can’t wait to confuse y’all with this, so let’s dive right in!
As I said, I’m learning C++. Why? I want to prepare a little bit for my internship, so I at least know the basics, which will make it way easier to find my way around the code I’ll have to be working with. I’m doing so by reading the book “Accelerated C++” by Andrew Koenig and Barbara E. Moo. If you ever need to learn C++ and already have some programming experience, check it out, it’s great.
C++, so far, seems like a very verbose programming language. This is to facilitate its focus on performance, everything about it revolves around speed. The verbosity helps you to enhance performance to an even further degree than the computer already does for you, which is exactly why it’s useful to understand a bunch of different concepts when programming in C++. The book teaches you these as it goes, by using example code which works towards building some grade management application. You get to see the thing they’re teaching in context the moment you learn about it, which is really great for understanding when it is appropriate to apply a specific technique, for example.
Back when I taught myself things through trial and error, these concepts rarely ever crossed my path. And when they did, it wasn’t consciously. I never stood still and admired how I had invented the idea of delegates, for example. I just rolled with what came to mind.
In school, we were taught these things, but it felt like the focus was more on knowing the concept rather than knowing the context it’s useful in. Sure it was covered, but I don’t recall it being the center of attention.
And now I’m learning all these cool things C++ can do, and I’m wondering, haven’t I used this cool thing in some shape or form in other languages? Chances are I just never really realized I was doing it. Or that I never did it in the first place, because the language didn’t offer me the tool to do so.
Bottom line here is, C++ seems pretty cool and super powerful, and teaching it with a focus on “use this in these kind of scenarios” goes well with the language’s “gotta go fast” attitude.