This project was meant to be a sort of “refresher” or opportunity for students to assess their knowledge obtained from the prerequisite class, but I did not feel like I was prepared for this at all.

I won’t be saying what exactly the prompt was for this project, but essentially it was to recreate the String class in C++. Seems easy enough, right?

No, you were so wrong.

After finishing this project, here’s what I learned:

I missed a lot from the previous class

The class before this, which was introduction to C++, barely taught me anything. Or rather, I didn’t really try hard enough in it. I had done well in the first half the class, then promptly stopped studying for it and instead… did other things like playing video games or hanging out with friends. And with the coronavirus hitting at the end of the last quarter, I had breezed by with a take home final and ended up with a grade that was definitely not an indicator of mastery of the class’s content.

With a different professor now, there were a lot of assumptions to be made about what I actually learned. Here’s only some of the things that I was supposed to know (but didn’t):

  • dynamic and static allocation
  • when deconstructors are called
  • C-style strings
  • pointers and references (I mean, I kind of know this but not really)
  • pretty much all of C++ basics that I somehow managed to skimp by
  • “well-behaved classes” or design principles / best practices behind writing classes

Donning Kruger effect with arrow pointing here

I can’t really tell if I’m actually getting anywhere. I always feel like I’m at this stage of perpetual huh?.

Dealing with feeling unprepared (or maybe actually being unprepared)

I don’t think this was anything new for me, as I usually feel pretty unprepared for a lot of things (like figuring out what direction I’m going in life haha), but I think the panic set in especially knowing that this class was supposed to be very important to know for my career. So I think some amount of anxiety was maybe not an overreaction?

No, you’re a stone cold programmer Matt. You can’t experience any emotions. You are one with the machine.

I am a robot.

So, how do you deal with it?

Get prepared!

That seems pretty redundant…

Well, it’s like asking “How do I get better at something?”. You just keep doing it.

While this may seem like something stupid, but there’s nothing really else to do in catching up with your missing knowledge than to try to pick up what you missed. And make sure you do this early enough. That’s something that’s incredibly important. By starting this project early, I was able to adequately get the project done in time, and “re-learn” the content I was supposed to already know along the way.

But Matt, this isn’t my fault. The professor we had last quarter sucked! He always showed up late, just read off his lecture slides, and it didn’t even seem like he want to be there! He was lazy! He didn’t set up the class in a way that would help us learn.

Nearly after every lecture, I had my peers telling themselves that “this class wasn’t worth going to lecture for”. While I may agree that the previous professor may not be the best, there’s always a certain degree of initiative that students have to take too.

Computer science is certainly something that can be self studied (although I can’t really say that for other fields) and there’s a lot of content out there on the Internet.

For example, another professor that had previously taught the class left all of his lecture notes available to the world wide web. These lecture notes were even promoted as a learning resource multiple times throughout the last quarter.

Understanding a concept ≠ being able to apply it (well)

This is something that I always encountered when writing for the blog (well, I don’t really have much on here) but this especially came up when I was trying to learn on the fly.

The assignments I had in that previous class weren’t very hard, they didn’t require me to think about the various scenarios this could be used.

I’d read the lecture notes, copy paste code into an editor, and call it a day in the previous class. I could go and forget about it. I’d be in the mindset of “I’m just trying to make it through this class”.

TL;DR

  • I freaked out realizing I learned close to nothing in a prequisite class
  • start soon enough on the assignment
  • I need to take my education into my own hands
  • Solution: start earlier!