Why I Love Computer Science

“Are you sure you can do this?”

At the concerned look on my friend’s face, the signed Change of Major form burned my fingertips even as my stomach turned to ice. This was his first reaction to my new major? I hesitated for a moment before giving a strained shrug.

“… Yes?”

Not exactly the most promising start to my computer science career.

It’s a good thing, then, that my career actually started over a decade ago with a flamboyantly late-90s children’s book titled Make Your Own Web Page – for Kids. A family friend had dropped off a box of old books for my sister and me to look through, and the title instantly sparked my attention. I coded my very first lines of HyperText Markup Language (HTML) along with Elena, the book’s “main character” who learns to build a web page along with the reader as the book progresses:

<html>
<head>
<title>Kimberly's Webpage</title>
</head>
<body>

Hi! My name is Kimberly Horton, and I live in Washington.
</body>
</html>

I was hooked.

I carried the book with me everywhere like a prized possession, even when there weren’t any computers around to code on. I distinctly remember bringing it with me to church once or twice (though I had to leave it in the car – my parents’ rules!) After working through all of the lessons the book contained, I recall avoiding reading the very end because I didn’t want it to be over – and I never actually ended up completing the final step of uploading my files to a server. This didn’t stop me from designing and creating web pages locally on our clunky Dell laptop; the coding was so fun to me that I didn’t feel the need to put the sites up publicly, and once I discovered free web hosting sites like webs.com it was merely an added bonus.

I created websites for my Girl Scouts troopa Biology Project, and a club my sister and I formed with our close childhood friends (which I can’t find, unfortunately.) They’ve got some ‘wonderful’ table layouts and broken image links, but the poor design choices were  certainly nullified by the fun I had in creating them.

After switching my major, I fondly recalled the little book that started it all. I found it for pretty cheap from a used book store on Amazon, so I ordered it to keep on my shelf and remind me of where I started.

Where it all began. 🙂

In classes at college, we’re not doing much front-end. I went into my first class wondering if I’d still enjoy “real” programming like I did HTML; and after my decision to continue on in the coursework (“maybe I’ll get a minor in it,” I thought, “this is pretty fun”) and months of my school’s CS professors playfully haranguing me to switch my major, I finally caved; and the “are you sure?” scenario I detailed above transpired.

Am I sure now?

Absolutely.

I love programming. I didn’t realize it back then, but I was hooked on HTML for the same reasons I’m hooked on Java and Python now; and it wasn’t just because I wanted to become Tank from the Matrix or that I liked graphic design.

Programming is a study in logic. Computers are perfectly algorithmic. As a professor of mine roughly said it,

If the computer isn’t doing what you’ve told it to, it is doing what you told it to–you just don’t know what you told it to do!

In terms of functionality, there is no subjectivity–your program is going to do the same thing every time (except for those mornings when you open your IDE and discover everything you did last night has gone haywire…) There might be more than one solution to a problem, but each solution is consistent, 100% of the time.

When I run into a problem, there’s pretty much never a time I can blame the computer. It’s always me–and then it becomes a challenge to find out where went wrong.

Along that line of thinking, programming is a puzzle. Albeit it’s a lot easier to think this way when there’s not a deadline breathing down my neck, but whenever I hit an error, it becomes a really engaging scavenger hunt across space, Stack Overflow, and time to figure out what isn’t working. Isn’t this the most frustrating part of programming? Well, yeah. It is, not gonna lie. But it’s also 1) the part that engages your brain the most and 2) it’s the most rewarding.

In his book Geek Sublime, Vikram Chandra describes the feeling of code working as “a little jolt of joy”. If you’ve ever programmed–even just printed “Hello, world!” to the console–you know exactly what he means. There’s just something undeniably satisfying about finally nailing down the problem and fixing it; there’s fun amidst the fury.

Both Mary Poppins and I are firm believers in gamifying tasks–making work feel more like meeting game objectives–so I like to use her words: “In every job that must be done, there is an element of fun; you find the fun and–snap!–the job’s a game!”

Image result for and snap the jobs a game gif

Programming is brimming with possibilities. For heavens’ sake, its possibilities have possibilities!

I realize the word “possibilities” has been relegated to a rather vague buzzword these days, but it is what I mean–the possible places you can work, the possible problems you can solve, languages you can learn, apps you can write, sites you can design… in such a computer-saturated world, programming can put you nearly anywhere doing nearly anything. Remote positions aren’t all that rare anymore, so you could be travelling the world, if you wanted to!

And to those of us who prefer a little novelty, the thought that my career is pretty much guaranteed to morph over time is actually an exciting prospect. It’s not as though I’ll pick a language or two to use, settle down at a cubicle, and churn out the same thing for the next 50 years; languages improve, projects change, job descriptions upgrade, and it’s truer than ever that just getting your foot in the door can open up opportunities in different departments or even fields.

So programming means you’re always learning. Whether it’s a new CSS attribute to play with or a whole language to learn, or even puzzling out how to use features you already know how to implement, programming is constantly learning and re-learning skills that will make your work dynamic and engaging for the rest of your career.


The computer science industry is hard.

I’ve wrestled with Imposter Syndrome since my very first day as a CS major when my friend asked me, doubtfully, if I was really sure I could do it. It took a full year of classes and a summer internship of feeling like I knew less than everyone else before I finally started to feel like, maybe, I was worth something in the field, too.

I’ve found a proverb from my debate coach to be incredibly true in this field: “You’re going to feel stupid until you don’t.”

Even now, as it’s internship application season and I stare at some of the big names like Amazon, Microsoft, and Google, there’s a little voice that tells me I don’t have a chance at working somewhere like that, not when there’s young, modern-day Zuckerbergs and CalTech undergrads and that one brilliant guy in my class who’s been programming since he was five, all applying for the same places.

But my resume, my classes, my love of the field makes it that much easier to ignore the Imposter Syndrome telling me all those things and to pursue what brings me joy. 

I love computer science! And because of that, because of all the reasons I’ve waxed eloquent on above: the answer is yes. Yes, I’m sure I can do this.