Honest Reflections: UC Davis Computer Science

Evan SooHoo
7 min readJun 18, 2017
My favorite post on the Facebook page, “UC Davis Memes for Egghead Teans”

Last year I wore my computer science shirt to Picnic Day, and the strategy worked — a prospective student and his father stopped to ask me all about the department. What I said was mostly positive, if I remember correctly, but I do remember thinking that the best thing I could provide them was honesty. They were on their way to the Kemper Engineering Building, after all; they were probably about to talk to people who had nothing but good things to say about the department. They didn’t ask me to sell UC Davis, but to give them feedback on the positive and negative aspects of my education there.

I talked about the theoretical nature of the curriculum and how I thought the university stacked up against others. Had I repeated the experience now, I would have also mentioned the notoriously long waitlists, the mix of mediocre professors with the good, and the rather troubling relationship between our department and SJA. They asked me a few good questions that I didn’t have good answers for. How easy is it to get a job after you graduate (“it depends”). How much money do students typically get paid after graduating (I told them my starting salary, then said it depends). What advice did I have for how to be attractive to employers while also making the most of my classes (“You do you”). I wish I had had statistics on this, but I don’t know if they exist for my department, specifically. If you’re curious about the job search, please reference this amazing article by Vincent Yeh, who just graduated. His experience is impressive and much more characteristic of the software engineer job search than my own crazy, indecisive, strike-of-lightning story.

What remains of this post is a longer, more thoughtful response to the prospective student and his father on Picnic Day.

Positive: The People

My lowest point of college occurred right at the beginning: With an introductory class on C. I felt like I was overwhelmed, I was constantly confused, and my habit of trying to do things between 6PM and the 11:59PM deadline was not helping. I talked to a helpful stranger in the engineering building who just so happened to be the current president of the Davis Computer Science Club.

DCSC, as we called them, was the most useful organization to our department and a big part of the reason why I never switched majors. According to their website, which I see they’ve upgraded, DCSC has 30+ tutors every quarter. But that’s just one feature of many. When we were searching for jobs, DCSC brought in a LinkedIn recruiter. When we were taking upper-division classes, DCSC led student-run review sessions that were often clearer and more comprehensible than those of our actual professors. The DCSC Facebook Page was our best online resource, and DCSC was one of our best resources. I can’t imagine how my experience would have been without them.

Negative: The People

A poorly made “Rude CS Collage”

I just searched through some of the old forums, and it was harder to find examples of “CS rudeness” in our department than I had expected. Furthermore, some of these examples are from people who actually ended up being fine when I really got to know them.

That being said, not everyone was nice 100% of the time.

Negative: The Theoretical Nature of Coursework

(This can also be a positive, depending on your viewpoint)

It was my last quarter of my third year, and we were taking a class called Algorithms. Unlike the notorious Theory Computation, which I have heard multiple people cite as an example of why our requirements are flawed, Algorithms was a useful and highly practical class.

Or so they said?

A huge percentage of our grade on the second midterm was based on a surprise: They gave us a variation of the Change-making problem. Given an amount of money, how do you represent the amount with the smallest number of coins?

This is the United States. We have designed our denominations in a logically sound way. If the amount is 29 cents, for example, just use the largest denomination each time. First you would use a quarter, then you would use four pennies for the remainder. In other words, the greedy algorithm will suffice.

That’s not what made the question hard. In the test, they would use some sort of twist so that the greedy algorithm didn’t work (for example, they might eliminate a denomination) or, in some years, they would make it so that the greedy algorithm did work and you would have to prove it. Though this is an interesting of how the greedy algorithms have limitations, I didn’t care about any of that at the time. All I wanted was a decent grade, and this question seemed impractical and random.

Without going into too much detail, this is one of the biggest issues I had with our department. This particular question isn’t the best example — it’s just one of the easiest to explain. In many classes, my study strategy consisted of practicing very specific procedures, memorizing very specific properties, and solving very specific problems.

When I got into the field, my biggest challenge was looking at a ridiculously large code base, abstracting away what I didn’t need to achieve my goal, and figuring out how to only see what was relevant so that I could work with it. On one hand, the theoretical/mathematical side of computer science is very important, and it’s no coincidence that people with a strong background in math tend to also do well in computer programming. I just didn’t feel prepared at all for what I faced in my first few weeks as a software engineer, and a lot of my textbook knowledge failed at that point.

Positive: The Job Prospects

I didn’t have statistics, but it seemed like it was really hard to find an internship and even harder to start a career. I took the advice of a friend, found a white board, and wrote the names of people I knew in the department. In a second column, I wrote what they were currently doing.

In the end, what I found was that most of the people I personally knew were making use of their degrees. If this sounds vague and non-descriptive to you, that’s because it is.

So just…trust me. The job prospects for our department were pretty good.

Positive: The Big Picture

Senior Design Showcase, 2016

The waitlists were ridiculous, the professors were hit or miss, and the course offerings always seemed to be missing something. I overheard a conversation at Kemper, once, between two upper-division students and a new one. The new one complained about Sean Davis, but the other two told him that he’s the best.

When the new student was out of earshot, they talked about something totally unrelated. One of them was trying to learn app development, and he complained about all the things he would have to learn.

“The things that get you jobs,” he said, “are the things you do outside of class.”

I tend to agree, but I don’t regret being a part of that department, and that community. The classes could have been more practical, but they were still challenging. The selection could have been wider, but it was wide enough. What I really remember, though, are all the experiences we shared. Some of them were good, and some of them were awful…but we did them together.

That’s what counts.

Closing Thoughts

Passion is a strange thing. That could be a post for another day. It’s good to have passion, and it’s good to be positive, and it’s good to aim high. But sometimes I think that we value “passion” so much that it makes us forget how progress is made. There’s a lot of boring things, and a lot of difficult things, and a lot of confusing things. If we like something enough to get through all of that, then maybe that’s passion. Passion isn’t loving something 100% of the time, like I think we’re brought up to believe.

I know I wanted to leave more than once because I couldn’t shake the feeling that I didn’t belong. There are humanities people, I thought, and there are science people. You know what you are. It’s just natural.

At the end of my C class, the interest came back. At the end of my machine-dependent programming class, it left again. It returned like a rush in data structures, then left when we started competing with our friends for a limited number of positions.

Is it back? I’m not sure. Interest in computer science is like a relationship with almost anything, but it’s strange to not know where you’ll go after traveling through such a common and clearly-defined path.

I don’t know what they all thought of me, but I reached a point where it didn’t matter as much. I personally think that I was around the middle of the pack, and maybe the people at the top thought I was an idiot who belonged way at the bottom, and maybe there were other people who thought that I was really intelligent and totally had it together. How strange it was to transition to corporate life — to get very little feedback, to contribute to projects that took months instead of days, and to suddenly get pages and pages of in-depth judgment at the end of the year.

I wish I could have conveyed to everyone that this wouldn’t necessarily be easy, and it might even be trying, and there were going to be times when they heard advice from other people that simply didn’t work for them. That was the hardest part: Being surrounded by friends and colleagues, but still feeling alone.

I wish I could have conveyed that to everyone who was struggling, so that they would know they weren’t alone. Maybe the feeling was misplaced. Maybe I didn’t have to.

They had gotten exactly what they had come for, exactly what they knew was coming: A legitimate and worthwhile challenge.

--

--

Evan SooHoo

A software engineer who writes about software engineering. Shocking, I know.