Why Study CS?
At the start of each semester, I give my students an introductory survey. One question on the survey gives them the chance to ask me questions. A frequently asked question is
Why did you get into CS? I ask my advisees a similar question when they declare their major:
Why CS? In this essay, I gather some answers.
When I was an undergraduate, I majored in mathematics. Many things attract me to mathematics. I like the ways it challenges me to think. I like the purity of working in formal systems. I like solving problems. I like finding patterns. Math gives me all of that.
I also like making things. Last week, I was at a discussion group of habits of happy faculty, and we discussed the things that make us happiest. The things that came most clearly to mind, other than spending time with my family, were my opportunities to make things. I had fun building bookshelves this summer. Michelle says that the happiest I’ve been in recent years is when I took art classes and got the chance to spend most of my time making art.
Computer science gives me the opportunity to do both. The kinds of problem solving we do in CS (most typically, designing a data structure or an algorithm) challenges me to think in formal systems and often requires understanding patterns. At the same time, we get to embody those solutions in code. I enjoy the immediate feedback I get from implementing algorithms and seeing them work (or sometimes fail to work).
I also get to build things in virtual worlds. Programming gives you immense power. I enjoy seeing what the code I can write does, from making compelling images to processing text to computing grades. As my students go off to do so many different things, I also like to see the kinds of things they build.
So, it’s not difficult. I get to play with fun problems. I get to make things. (As I teacher, I also get to help others learn do the same.) So that’s why I studied, and continue to study, CS.
Why do my students study CS? Given the state of the economy, you might think that most would tell me that they choose CS because of the job options and opportunities. And some tell me that. But most either tell me about problem solving, about building things, or both. Many also tell me about the adrenaline rush of finally getting a program running. Actually, I think most tell me about the adrenaline rush of finally getting a program running. It really is a spectacular feeling.
Should you study CS? I think that’s an individual decision. I think everyone should try CS. You may find that you enjoy the problem solving, the opportunity to build things, and the clear marks of success. You may find that you find yourself frustrated by the lead up to success, or that you don’t regularly achieve success. You may find that your models of thinking don’t match the typical CS models.
But you won’t know if you don’t try. And, beyond the things I’ve already mentioned, computing gives you the opportunity to change the world. As I write elsewhere, unless a wide variety of people try computing, we lose opportunities to change it in better ways. I therefore hope that every student will try CS.
Version 1.0 of 2016-05-21.