What I Wish I’d Known Before Dropping Computer Science

Just because it’s hard, doesn’t mean you’re bad at it

Homa M
CityGrows
8 min readFeb 21, 2017

--

Adams Hall, former home of Bowdoin’s Medical School and its CS department. Rumored to be haunted, they found gross stuff when the building was renovated in 2008. Photo by Daderot.

I started college in the late nineties. We thought dial up internet was awesome. I had no clue what I wanted to do, or study, or be, during my time at Bowdoin, but I was curious about these big computers (and back then they were big, and the monitors were even bigger) with all this stuff happening inside that I knew nothing about.

So I enrolled in Computer Science 101 — I figured it would be interesting and relevant. And I was right, computer science was interesting and remains wildly relevant to how the world and economy work.

The good news is I graduated with a minor in CS— a reality that floated my resume to the top of a 1000+ applicant pile to snag my first job, which propelled me into my second job, which helped me get into Wharton, which helped me get a job at a top-flight consulting company and on and on.

The bad news is I graduated 3 credits shy of a major, leaking out of the pipeline when I was almost at the finish line (for the record, I was short a core class on algorithms and two advanced electives). There was no one thing that made me drop the major into a minor, but rather a whole lot of little jabs of self-doubt, some imposter syndrome nonsense, and a lack of perspective about how to play the game.

I wish I had stuck it out and taken those last three courses, and I think I would have if I had known a few things:

1. Computer Science is Hard for Everyone

Don’t drop it because it’s hard. It’s hard for everyone.

Programming languages are their own language, and like learning Spanish, or French, or Kyrgyz, it’s going to take a long time and a lot of drudgery (re: practice) to make anything more than the simplest request.

That’s normal.

The guys I was afraid of, the ones who looked the part of computer scientists — with the glasses, the obscure mathematical references, the suspect fashion — they weren’t naturals either. They just had a head start on me.

We had 3 tests scheduled for our CS101 class and I failed the first one — and not in an almost C- way, I earned barely half the points on the exam. Within minutes, I was in my professor’s office, trying to figure out what had gone wrong (and also, trying to figure out how to get him to let me drop the class after the add/drop deadline). My professor had other ideas, and encouraged me to stick with it, “I can tell you’re good at this,” he said, “I know you can get this.” I didn’t entirely believe him, but I was flattered by his encouragement, and I did start working hard. And I mean *HARD*.

My schedule my first semester morphed into this: from Sunday through Friday night, I was in the CS labs from 9pm — midnight. Every night except Saturday (that was my off day). All my other coursework got squeezed into whatever time I had left. I was also playing Rugby, and was known to bail on practice when trying to solve a particularly thorny lab or CS assignment. (The tension between college athletics and academics is a topic for another post.)

I had a revelation early in my CS career, after I buckled down, those guys that seemed to know it all? They were in the lab every night including the Saturdays I gave myself off. It wasn’t easy for them — they struggled and sweated and asked lots of questions and struggled some more. Once they saw me working hard, they opened up and we all became friends, which means I suddenly had people to go to for help when I was stuck. It also made the labs much more fun, which meant I started spending more time there, and boom. I was in a virtuous cycle of code.

Our final exam was to implement a game of whack-a-mole. Three students were able to successfully code the game. I was one of those three. My hard work paid off, but there was only a brief respite. Despite this success, over the years the discouragement and struggle drifted back, the dry material, and the professor who had been my chief ally in the department moved away after not being granted tenure (infuriating — he was a gifted teacher).

2. GPAs Are Silly

Majoring in computer science (or even taking a couple of courses in the field) is going to mess up your GPA. CS is a totally different way of thinking, and it’s going to be hard to understand what’s going on (at least for the first course or two). So your grades will go down. Maybe a lot. The time you’ll have to spend coding, and re-coding and wondering why the fuck your code isn’t compiling will likely impact your other coursework as well. Computer science will shit all over your transcript like a case of norovirus.

That’s okay because GPAs are nonsense.

Okay, let’s be real, GPAs are irrelevant in an absolute, moments-you-remember-in-life way, but they still matter in the game of employment and getting your first job out of college. I’m not telling you to follow your bliss because that can get expensive fast, and not everyone has family money or decades upon decades of baked in privilege to fall back on when it comes time to squeak in the doors of a well paid gig. Getting a job is important and it’s a little easier with a high GPA. GPAs also matter in an annoying way for people trying to get into grad school.

When I was applying to MBA programs, I read a post from an admissions dean that there was no allowance given to applicants who majored in quantitative fields. So, if you want to go to a prestigious grad school program, and/or get a job with one of those fancy firms that require GPAs upfront, it’s worth being aware of the impact CS might have on your GPA. Can you mitigate it by taking a few courses pass/fail? Can you maybe find the classes packed with athletes, legacy admits and trust fund kids? No offense to athletes, legacy admits and trust fund kids, but anyone recruited to college for anything other than straight up academics is probably going to spend less time studying than, say, hardcore computer science nerds. You’re going to need those less intense classes to keep your sanity and GPA at respectable levels.

I wish I had understood the fact that college is kind of a game. I was under the impression that it was really important to challenge myself with rigorous courses and be all serious all the time. Recognize that GPAs matter but that they are primarily bullshit. Don’t be afraid to massage your GPA with some easy classes. It’s okay to play the game (and the system) a little bit.

3. It’s Worth It

It’s so worth it-the extra hours and the hard work and the GPA ding. Seriously. Not just because of the job prospects that studying computer science can open up, but because it changes how your brain works.

Almost twenty years later I remember the delicious joy of watching my little whack-a-mole game compile. In CS there’s zero room for bullshit — your code either runs or it doesn’t. That simple purity is a relief in a world of essay answers and term papers and grade inflation. In 2016 Mark Zuckerberg took on the challenge of coding an AI assistant himself, in part because of inherent intellectual challenge and rewards of building something real (or virtually real).

The rigorous logic that coding develops is a critical life skill. One of the required core CS classes was discrete mathematics — a course packed exclusively with computer science nerdlings and philosophy majors (another searing memory was walking into that classroom on the first day and realizing everyone else in the room was white and almost exclusively male). We wrote out logic statements and tested arguments and it was amazing. A life changing subject that I wish more people would study.

But back to the career boost — as data seeps into more and more professional jobs, the ability to pick up new tech skills (advanced Excel and SQL, for example) will be crucial. The study of computer science makes all that work easy, and more than once helped me get projects and analysis in quickly and efficiently.

I found CityGrows through our Tech Immersive program. I thought it would be a great way to get back to coding (and it is, you should check it out if you’re interested). I did like one lesson and then switched into business development, but the point is: I wouldn’t have reached out at all if it weren’t for my good old CS minor, still propelling my career along almost two decades after I took CS 101.

The good news: things are changing

The good news is that it’s getting easier and easier to get and stay immersed in the world of code. That doesn’t mean that the actual learning won’t be difficult, but there are so many more resources available that can help underrepresented groups get into and stick it out in CS. Here are a few amazing examples: Yes We Code, Girls Who Code, Rails Girls, Sabio and Black Girls Code.

There’s an awareness to implicit bias and a conversation around diversity and inclusion that didn’t exist even a few years ago. The plethora of coding boot camps, online tutorials, support groups — all of it means there are more and better ways to make sure people get the support they need when learning computer science.

Just take a look at what’s happening at my alma mater: in my day we had a teeny, tiny CS club of about 10 kids (we went bowling together and to see Star Wars episode 1 in theaters). Now, there’s a CS club devoted to women in the field. It’s awesome. And probably a lot less lonely.

In addition to evolving attitudes, tech tools are also better than ever. The drudgery of watching a professor talk through code on a projector (!) screen is a thing of the past. Laptops and tablets and smart screens make practicing and learning how to code so much easier. Text editors highlight missing semi colons before you spend bleary-eyed hours for looking for them. High speed internet means you can code from anywhere, so there’s no more being squirreled away in a lab located in a former medical school where the hooks for hoisting corpses still hung from the stairwell ceiling (yes, that was Adams Hall at Bowdoin).

I get wistful when I see all the opportunities out there for computer scientists, all this exciting news about artificial intelligence (one of the advanced electives I did take, and it was amazing) and I wish I were starting out now. But since time travel is still out of the realm of possibility, the next best thing I can do is encourage everyone — but especially women and underrepresented minorities — to get into CS and to stick it out.

You can do it.

--

--

Homa M
CityGrows

I have a public sector heart and private sector brain. Policy & biz dev @CityGrows, writerly stuff at homagod.com. Once & future public servant.