One thing I enjoy about my current Tufts CS class, CS 15: Data Structures, is that I’m learning the things I’ve felt like I should know but didn’t.
There was a certain class of concepts that I’d hear and not understand. When I heard people mention linked lists, or binary trees, or other classic coding interview concepts, I’d always have the feeling that I should know what those meant, but I didn’t. In the programming I liked to do (mostly making web apps), that stuff never came up and I never needed to learn it.
But in this class, we go over all those things. Now, I know feel like I have a fairly solid grasp on a lot of those more-hard-core-programming concepts.
And even if I don’t use those concepts later in life, I think there’s something just to knowing them — namely, it doesn’t feel like you’re missing something.
I think it’s easy to think that you’re missing something as a programmer because you never learned these deeper technical concepts that other people seem to know. It’s easy to feel like you’re missing an important part of your coding education, even if it’s probably not tangibly affecting your ability to do the things you want to do.
So now, even if I won’t ever again need to construct a binary tree from scratch, I can feel included when people talk about it. I’ll know a bit more of what’s going on, and that feels good.