Today, ladies and gentlemen, I attempt to boldly go where no blogger has gone before (as far as I know) and explain the experience of being in college using a grand analogy to computer science. If computer science is not your thing, by the way, feel free to still come along for the ride – I can’t imagine this analogy is going to get too esoteric to the non-CS-initiated, mainly because I have only taken a semester and change of computer science in my entire life.
But first, context: it’s 10:30 on a Tuesday night, and I just finished the majority of my first homework assignment in Comp 15, the second level of computer science offered at Tufts. Also, while doing so I was listening to the old nostalgic favorite Helplessness Blues by The Fleet Foxes, so this all adds up to me sitting here in the marvelously cool evening feeling both really excited by computers and also somewhat reflective on my life and my unfolding College Experience. Quite the combination!
OK, let’s start with the basics. First of all, college is like a big, four-year-long programming assignment. What differentiates this (and any) programming assignment from, say, a four-year-long Sudoku puzzle is that while both the Sudoku and the programming assignment present a goal to you, there is only one solution to a Sudoku, whereas a computer program can accomplish a single task in virtually infinite ways. So there’s the first comparison: you enter college and probably want to exit with a job or a future or some semblance of a plan, but the exact way you go about doing that is totally up to you.
Also, bonus analogy points if you’re like me and knew absolutely nothing about coding prior to college, in the same way that your average freshman has no idea what college is really like until he or she actually arrives on campus.
So yeah, getting started in college is simple enough – you go to orientation events, you sign up for classes, you argue with your parents about how to orient your room’s furniture, etc., just like how in a C++ program you give your file a name, link it to some libraries and streams, and then argue with yourself about whether you want your main file to take command line arguments, the usual. However, starting the actual coding of a programming assignment can be quite daunting. I mean, there are a million ways to do what you want to do and you’re well aware of that, but how do you choose which way you actually want to go about doing it? And where in the world do you even begin? Likewise in the collegiate world, what clubs do you join? What do you do on the weekends? Do you eat at Dewick or Carm? (Dewick.)
I’ll tell you what, though: the only way to get the ball rolling is to just jump into it. Join a random club. Start working out an algorithm. Throw some code in and see what happens. Go into Boston for an evening, because why not? If you do this, I can almost guarantee that the near-opaque haze of confusion surrounding “College” or “project_name.cpp” begins to clear up almost instantly. You start to create connections between all sorts of previously unrelated things, you start to understand what’s going on, and everything begins to make just a little bit more sense and seems just a little bit less horrifying.
Now, of course, it isn’t quite that easy. More frequently than not, when you’re running big files and there’s a little error somewhere deep in the code, you get a famed error called a Segmentation Fault. During a Seg Fault, the program basically blows up in your face and stops working without an explanation, and it’s up to you to figure out where the problem is. Sometimes this happens in college too. While you’re still getting adjusted to things, it’s not uncommon for you to feel kind of weird. Things haven’t settled quite into place yet, and there are some changes that need to be made before you feel ready to go. This is beyond normal. In all honesty, I get a little more freaked out if my code runs without errors the first time I put it together than if it totally fails. Let me reiterate: this is okay. All you need to do is go in to your schedule, your activities, your friends, whatever, and think “what can I change? What do I like? What do I not like?” Don’t stress. Be patient. You’ll be ok.
The single best thing about all of this, though, is once you finally get the kinks worked out and you feel comfortable with everything, the feeling of completion and togetherness is amazing. When my code works perfectly for the first time and everything goes as planned, I kid you not sometimes I get up and dance a bit. Once your college life finally feels ready to go, you begin to realize that the world is yours and that you can really do anything. It’s beautiful.
And don’t forget to end your lines with semicolons and close all of your brackets!