code.Antrikshy | Notes, tinkerings, experiments

Computer Science Programs Are Not Software Engineering Programs

Comic source: Abtruse Goose

This is something I realized after I was more than halfway through my computer science program at UC San Diego. This post is republished from a reddit post I made that did fairly well.

A computer science degree program is NOT a software engineering degree program.

  1. Don’t expect to use all of the stuff that you’re learning in university, in a software engineering job. Sure, the programming and thinking skills transfer over to real software engineering, but the latter is easier (in my opinion) and pretty different from computer science.

  2. Don’t hate your university program for not teaching you how to make mobile apps, web design, web apps, databases etc. That’s not what they are supposed to teach you. A lot of universities will have such classes, but the point of the core curriculum is to teach you computer science theory. It’s my pet peeve to overhear someone say “why can’t they just teach us some iOS/Android development” in a computer science lab.

Also, I highly recommend learning how to make real, production software on the side as you go through a computer science program. It helped me get multiple internships (incl. big tech company) even though I have a pretty mediocre GPA.

This does NOT mean that computer science classes or degrees are useless. As I said, the material transfers over in many ways and people do look for CS degrees. Just don’t let the difficulty of your computer science classes get you worried about how you will fare in a real software engineering job.

Someone correct me if I’m wrong.

tl;dr: Don’t be that worried about your less than awesome performance in computer science classes. They may not determine how you will do in a software engineering position. Don’t expect to learn iOS/Android dev in a CS program.

I’d like to add some more to the original post:

At least in the US, most companies seem to require a “Bachelors in Computer Science or equivalent” degree for most software engineering positions. I’m just a student, so take this with a grain of salt. But if you have a choice between a computer science program and a software engineering program, go with the former. Supplement it by learning software engineering, design patterns, programming etc. through personal projects and internships.

As further reading, check out the discussion under my reddit post.

Talk to me via Twitter and check out my stuff on GitHub.