Software Engineering vs Computer Science

So, people who are interested in Computer Science have been asking me whether they should pick a Computer Science specialisation or a Software Engineering one.

Here’s the short answer: Pick computer Science

For details, keep reading: There are several problems with Software Engineering. Now, these might not be true for all places and all people but this has been my experience with quite a few places and this is definitely true within Pakistan, at least at the time of this writing. I’ll give a summary here:

  1. First and foremost, the people who pick SE generally go there to run away from coding. Now, if you’re one of these people or know one of these people, tell them: If you want to stay in SE or CS, there is no running away from coding. You have to know how to code!
  2. Because of this, many teachers you can find in SE also don’t know how to code. So, they can’t teach proper SE. You need to be able to write software before you can discuss how to engineer it properly.
  3. When you leave after your BS degree, you need to ask yourself what you would do: if you have a degree in SE (and assuming you are not comfortable with code), you can’t get a job in a software house. You can probably go into teaching (but you can do that anyway since, you know, us teachers don’t really know anything). Proper “software engineers” tend to be higher up in the management ladder but you can’t get that job when you are just a fresh graduate. So, it’s a lose-lose situation.
  4. Another major issue with SE is that the courses are dull. Read this: they are boring! (And again, people don’t know how to teach them properly.) You will die of boredom — like even more so than you would in CS. It’s horrible. Trust me: I’ve taught these subjects. And not only are they boring, they are also typically useless since the students don’t have the coding experience to appreciate the details that are being doled out.
  5. Finally, since you will be spending time on some useless courses, you will be giving up some really good courses which are offered in CS.

So, short summary again: don’t go in to SE. Just pick CS.