let me explain a bit about myself before getting to the question. I graduated recently in May with a Computer Engineering degree and a minor in CS. Originally I wanted to go into embedded development, but after a few courses in it I decided that it wasn't for me. At that point it was a little late for me to switch so I went with getting the CS minor instead, and took all the CS related engineering courses that I could. Naturally there is a lot of overlap between the two disciplines, and if all of my classes mapped over I was only two classes away from double majoring, but due to departmental reasons the CS department wouldn't accept any of my courses.

I've been working for the past four months at my job and performing very well. My work has a tuition reimbursement program that covers 8k per year of schooling/books. I've noticed that I have some gaps in knowledge compared to new computer science graduates such as with compilers, databases, and machine learning.

So here's my question: Do you think it would be beneficial for me to enroll in a part-time masters program? Should I just learn these things on my own? Now that I have cash coming in I don't want to go full-time. I'm asking this now because Georgia Tech just opened up registration for their online Masters program and it seems like I'm the perfect candidate for it. Am I really going to earn that much extra or get a better position than I would with normal work experience that would justify the extra 20 hours of work per week this would give me (2 classes a semester for 3 years)? With my work reimbursement this program would be free and simply a time investment. My manager at work recommended doing it now before I have a wife and kids to deal with later. I would love to continue learning and I guess I could stretch it out longer than 3 years if I needed to, or stop at any time and have no financial loss.

  • 3
    There's no clear-cut answer here. Everything really depends on the personal cost-benefit analysis: will the master's program offer you what you want to learn, or can you do it informally on your own? What will the extra credential do for your career? How much time will it really take, and will you be able to combine school and work and personal life effectively? Those are questions we can't answer. – aeismail Oct 8 '13 at 4:01
  • Also depends heavily on the country. For instance, bachelor-only graduates are still sometimes frowned upon in Germany (it's a downgrade from our old Diplom). That may change, slowly, but today you probably want a masters degree. That said, CS is one of the few sectors in which getting a good job with only a bachelors is actually feasible since they need people. – Raphael Jun 25 '14 at 9:16

If you are merely trying to fill in gaps in your education, then a Master's is probably overkill, and almost certainly not worth it for CS. You can fill in your stated gaps "compilers, databases, and machine learning" with equal effort in personal projects and reading. CS is a well documented field on the internet, especially for your three stated gaps. Compiler construction, while daunting, is an achievable task, and databases are very well represented online, being the foundation of most online software. Machine learning is also very popular lately, with lots of new and not so new resources available.

Having said that, if you are like me, and suck at the whole 'autodidact' thing, then a Masters degree might help provide the focus and structure you need to succeed at learning these fields. Your financial incentives certainly make this an appealing option.

From my perspective, completely ignorant of the standards and expectations of American CS masters, an MS.c in CS should be deeply focused on an area, taking you close to the edge of human knowledge. Who knows, you could produce something novel, but in your area, at the end of a Masters you should know where the boundaries lie. For me, this means that course based Master's programs that are broadly scoped aren't as valuable as a deeply focused Masters, be it course or thesis based.

  • Thanks for the reply. You are right that there are many online resources available for me to fill my knowledge gaps. I've looked into courses on Udacity/Coursera/edX a while back and they seemed great. The only thing is that if I do those then I don't get any recognition that I took them as it would just be in my spare time and not through an accredited program. In that case, I might as well have done them through a masters program to get more compensation for increased knowledge. edit: err, this chat window is different (worse) than stackoverflow's, I'll post another comment in a sec – trevor-e Oct 8 '13 at 19:40
  • The other thing I am considering is that Georgia Tech is often ranked in the top 10 for CS. My undergrad was ranked pretty high, but I'm wondering if that will drastically change my future job prospects. With the nature of CS I have also wondered if simply building up my Github profile would have a greater return on investment of my time. At this point I'm leaning towards enrolling for next fall unless I see a compelling reason against investing my time into a masters. Typing all of this out has been good therapy for me haha. – trevor-e Oct 8 '13 at 19:47
  • @trevor-e Glad to hear the therapy helps. It's a difficult situation, as the commenter on your original question said. A lot of it will depend on where you want to go, and what you want to do with your MS.c. IMO, if you want to study a field in depth, go for the masters. If it's really just the gaps, fill in that Github profile. – Matthew G. Oct 9 '13 at 21:41
  • 1
    an MS.c in CS should be deeply focused on an area, taking you close to the edge of human knowledge — Nope. In American CS departments, we call that a PhD. – JeffE Jun 12 '14 at 1:02

Not the answer you're looking for? Browse other questions tagged or ask your own question.