I like programming. I spend a lot of my days thinking, reading and writing about programming and computer science. Until this semester, I had not taken more than one CS class per semester. Why?
(Don’t) Burn Out
I believe it’s very important to not burn out. If you’re passionate about CS like I am, you spend a lot of time on it already. Add on classes and the sheer quantity of work can easily overwhelm your life. Therefore I find it absolutely essential to carve out time for other activities and interests. One issue that people may not anticipate is that if your hobby becomes your main study and eventually your profession, you can end up spending entire days solely on this interest. Which may sound great at first, but working on something for 12 hours a day, every day can wear you down.
This sort of extreme monotasking can sneak up on you in college. A lot of us did various extracurriculars in high school like sports, theater, various clubs, etc., but quit these activities in college. You can easily go from a well rounded, active person to someone solely studying their major. I’d highly recommend finding other activities to do. And no, drinking/partying/clubbing doesn’t count.
Diversify Yo’ Interests
There’s also something to be said about taking a diverse set of classes. Computer Science is really a subject that benefits from interdisciplinary work. Whether it’s math (Complexity Theory/Theoretical Computer Science), physics (Quantum Computing), biology (Computational Biology), art (Interactive Media), film (Computer Graphics/Visual Effects), music (Electronic Music), or really any field, you can find some sort of use for computer science.
Or don’t! Just enjoy a different subject. I’m a strong believer in having a diverse set of interests to challenge your mind. If you exercise the same mental muscles and research the same areas, you’ll develop ruts and routines that will be harder to change. Want to avoid being someone stuck in their ways? Try new things!
A good challenge is to imagine yourself meeting someone new, say at a party, and having to talk about yourself without boring them with CS talk. What could you discuss?
Better yet, do this in real life. Go meet someone new. Talk to them about your interests. See what you actually have going on in your life besides programming.
Some people I know who take a lot of CS courses respond that they just want to learn all of these subjects and what’s so wrong with that? Well, for one they’re assuming that courses are the only way to learn a subject. Sometimes courses are genuinely great ways to learn, but not if you’re barely keeping up with the workload. I love having enough free time to explore my interests on my own. It’s really nice being able to read a paper or write some code without stressing about my courses.
Plus you might literally run out of courses to take. This may be hard to believe, but there’s really not a lot of courses in NYU CS. Especially since realistically, you’re not gonna be interested in every topic.
Even if you find a lot of courses interesting, I wouldn’t recommend taking them all. The term FOMO (Fear Of Missing Out) wouldn’t normally come to mind, but a lot of academically strong students actually have FOMO with courses. They see one amazing course here and another amazing course there and soon they’re taking a full CS/math schedule with no breaks. Not great. Instead, internalize that you won’t be able to learn everything or take all the cool classes. Take what you can realistically manage and enjoy, then self teach the rest if you so desire.
And finally, beyond time, beyond number of interests, the metric that matters the most is mental mindshare. Basically, there’s only so much time you can spend programming in one day. For some, this number is larger than others. But it’s almost always less than one would like.
Doesn’t matter who you are. Fran Allen, Donald Knuth, Alan Turing himself, programming is a hard task and not really feasible to do for long hours, day after day. Even if you manage to be amazingly organized and disciplined, even if you manage to somehow have a few hours each day to work on your own interests, it won’t matter because you’ve used your entire mental mindshare on your classes. Even if it’s not your daily programming mindshare, there’s still the mental overhead of assignments, of impending tests, of obligations.
Depending on what you want to accomplish and how much of your time you spend working on your own projects, this may not mean as much to you. But for me it matters a lot.
I’ve been trying to write fewer conclusions to posts because they tend to be awkward and redundant but for this post I kinda think it needs one.
I’m not saying you should take the bare minimum for CS classes. I’m not saying you shouldn’t take that course which looks really cool. What I am saying is that you don’t have to get all of your CS education from classes, and that more classes is not always better. Factor in your mental health, your outside interests, your free time and your mental mindshare, then decide whether you want to take that extra course.