I was recently talking to friends about what the purpose of classes were if you could learn from books. I vary on my position on this a lot. Many of my undergrad classes were the type where the professor lectured off powerpoint slides and exams were based on memorization. In that sense, I wasn’t quite sure what the point of going to class was if I could just learn it from the book. My favorite classes were the ones that made me think, whether it was thinking how to solve a problem or thinking about how reliable the information was in a publication.
It’s an interesting point of view that in grad school, you should focus on your research and only take the classes that are required. Maybe, you should take a class if it directly pertains to your research. Other than that, you should be motivated enough to learn other things from books.
This summer, I was to learn C++. I was motivated but not organized. Learning a new programming language was not the easiest thing to do out of a book. I ended up taking a class in C++ this fall, and it was insanely helpful for a variety of reasons.
1. Structured assignments. I can handle the basics on most things and get 95% of the program done on my own. That last 5% is where I learned the most. The assignments forced you to do that last 5% and pay attention to those pesky details. I could see myself writing something on my own when I’m learning it, getting the basics of it, but missing some of the important complexities.
2. A constant ramp up in difficulty of assignments. I can program in Python. It’s not pretty all the time but it gets the job done. This class in C++ forced me to not only learn about functions, classes, and templates but also recognize that that was better than copying, pasting, and slightly altering code. It inspired me to rewrite my previous scripts so that they’re much more efficient.
3. An external check. Hey. I do annoying things when I code. It’s kinda nice when someone tells you to stop it. I’d rather be aware my problems than blissfully ignorant.
There are other things that classes are nice for like I’m good at deadlines and homework. Okay, fine, I’m pretty good at classes in general. In all honesty though, there are some classes that I’m excited for like algorithms and security. I figure, I’m excited for a couple classes, I’m in grad school, I might as well do it while I’m here, right? I can always rely on books later.
PS Did you know that Mr. Potato Head started out as accessories on a stick that were put into actual potatoes? Wikipedia tells me that it stopped because of complaints of rotten vegetables.