Ask HN: Is Georgia Tech's Online Master in CS Worth It?
https://www.omscs.gatech.edu/
It is basically an online program of academic education in CS planned to be taken while working, costing around USD7,000 to complete.
My context: I am brazilian, living in Brazil, 37 yo, graduated in Economics and just recently made the career transition to become a developer. I basically studied more practical things about software development (web, mostly javascript) through free content available online. I am already working as a frontend web developer.
I believe this program is a good complementary source of knowledge to become a better software developer. I assume the more theoretical academic approach would benefit me as a complement to my more hands-on learning I had so far. And I also assume the Georgia Tech credentials will benefit my career.
So, what you think?
219 comments
[ 7.6 ms ] story [ 283 ms ] threadOne thing I'd warn though is that you'll get out of the program what you put into it - so it's really up to you to choose classes that will set up your career the way that you want it.
1. Your background. This will seriously affect your time spent in many classes. For example, if you don't know C and take a class that uses it, you're going to spend way more time than someone already comfortable.
2. Level of effort. Most projects have a rubric where you know what to complete for what kind of grade. If you do the least to pass, that's obviously going to take a lot less work than going for the A + extra credit.
3. Interest level. I find myself spending more time (sometimes more than I should) on the classes I really get into than ones I have to take to complete some MSCS specialization requirement.
4. Instructional team. As in traditional programs, some course teams are better organized than others which can impact how much time you have to spend staying on top of material or actually getting ahead.
In the end, it would be good to check out the OMSCS Course Surveys (https://gt-course-surveys.herokuapp.com/#/) to see what people report for weekly hours spent vs the factors above.
With one course, it was challenging but I could fit it into my schedule without too many changes. My schedule was to watch lectures during the week in the mornings before work (45 minutes or so a day), and then do homework in the mornings on Saturday and Sunday. Usually I still had enough time to hang out with family and friends.
With two courses, I had to be really strict about my schedule - basically, I'd go to work, come home, study, sleep, repeat, and usually use an entire day of the weekend to get things done. I got really good at saying no to people.
There are assignments, projects and exams - they've put a lot of effort into making it have the same quality and standards as the on campus programs, even going so far as to do blind grading in some courses (i.e. grade the on-campus and OMSCS courses as one).
It's hard for me to estimate how much prep I would need to do to come in to this program and feel comfortable with the tasks at hand.
* Linear algebra, matrix arithmetic, some calculus (you run into differentials occasionally, esp in ML coursework).
* Be comfortable with basic algorithm analysis, namely "Big O" assessment. (There's a course for more in-depth analysis of algorithms should you choose that path...)
* Bone up on Python, Java and C if you're not already proficient. Some classes occasionally use R as well (mostly data science).
* Be comfortable with Git. It's used by almost every class for group work and distribution for codebases. I always see a lot of folks battle with this every semester.
My wife did an online master's degree (at a legit university that also had an online program). You have to be very good at self-pacing, diligence, and learning autonomously. You have to be so good at it, in fact, that the type of person who would succeed in an online master's program is the same type of person who would succeed in self-learning without the master's program.
So if your only goal is to learn, then I say no, it's not worth it.
However, you're in Brazil and not a lifelong programmer. Credentials may work against you if seeking a job in the US. Many US companies look at South America as the "nearshore" talent, much better in quality than devfarms in India, but also still cheaper and -- because of that -- slightly lower in quality than US talent.
In that case, spending $7k and completing the program and getting the degree may help you get a $7k higher salary in your first (or next) job. It may give US companies more confidence in your abilities, as you received a US graduate school education.
So from a financial perspective and the perspective of job opportunities inside the US as a foreigner, then I think it may be worth it. If you don't care about getting US jobs then still probably not worth it.
Best of luck!
Plus, I tend to be more project-oriented, so I quit learning stuff once I've built up the toolkit I need to solve my particular problem. I'm sure a lot of other people are the same way
http://www.omscs.gatech.edu/program-info/admission-criteria
> however, work experience will not take the place of an undergraduate degree.
You can get it with a non-CS degree + work experience (see sibling threads).
Some schools accept master's students without an undergrad degree at all but AFAIK most don't. This program doesn't.
I haven't met anyone in the program with an econ degree. Mostly CS, and engineering. And a few with physics or math degrees.
A couple of things to consider: As you mentioned, it is more focused on Computer Science than Software Engineering/Development. There are a couple of Software Engineering/Architecture/Testing courses but I haven't taken them so I can't comment on how relevant I think they are to my day job.
It's an incredible bargain... 7-8K for an MS (not an online MS) from a top 10 school in CS. That on it's own makes it worth it for me.
It's not easy and it's not like a typical Coursera/Udacity course. Depending on which courses you take it can be quite challenging (which is a good thing). You typically don't have much interaction with the Professors but there are a lot of TAs and other students to help you along the way.
Here's a reddit in case you haven't come across it that answers many questions:
https://www.reddit.com/r/OMSCS/
And here's an awesome course review site that a student built:
https://omscentral.com/reviews
https://www.omscs.gatech.edu/specialization-computing-system...
I think most Computer Science education is focused on fundamentals. So there isn't anything that's CS that will focus on the latest thing. That said, I think any of the specializations will make you a better software engineer. Also, the price... you just can't beat 7K. I don't think there's anything out there that competes on price and quality.
Both ML4T and ML have some RL component. So there's overlap. If you're new to python, then I'd definitely recommend ML4T first because it spends a bunch of time on Pandas/Numpy. ML4T is also easier to get into than ML if it's your first semester.
Take a look at the course review site also. It's really helpful in estimating difficulty:
https://omscentral.com/reviews
edit: Answered my own question - You can't have two consecutive semesters "off"[1]. I.e. the slowest possible pace would be 2 classes in the first year, then 1 class every other semester. So I suppose it would be: spring/summer 'xx: 6 credits, 24 remaining, spring 'xx + 1: 9 credits, fall 'xx +1 : 12 credits etc.
[1] - per https://www.reddit.com/r/OMSCS/wiki/index
You have up to 6 years to complete it.
We anticipate the typical time for students to complete the OMS CS will be about three years, though we will allow for longer enrollments—up to six years—for those students who need greater flexibility."
http://www.omscs.gatech.edu/prospective-students/faq
I had read somewhere (can't find it at the moment, maybe the limit has been removed?) that you had to wrap it up within three years or apply for an extension - which is "we will allow" sounds like above.
The program does have its hiccups here and there. Some courses have been reported as being poorly organized, but this is certainly the minority. Also, you may not receive as much individual attention as you would in a on-campus program. This is aided by the fantastic community of students in the OMSCS program which provide a support system for each other through online forums/chat. If you are not much of a self-starter and need specific guidance, this program may not be for you.
https://news.ycombinator.com/item?id=15015813
Would anyone who works full time and gone through this program care to share their thoughts?
Edit: Just found this great article from another comment
https://schneems.com/2017/07/26/omscs-omg-is-an-online-maste...
(Source: current OMSCS student, hopefully graduating in December)
I made an "informed decision tree" awhile back that goes into much more detail about my thought process when signing up for this degree:
https://forrestbrazeal.com/2017/01/03/should-you-get-a-maste...
I also reviewed the OMSCS program in detail here: https://forrestbrazeal.com/2017/05/08/omscs-a-working-profes...
Hope that helps!
I love learning. I took one MSCS class when I worked at a university and completed a Udacity Nanodegree. That said the one MSCS class I took was intense (Applied Cryptography) and I had to spend time in study groups on the weekend.
What kind of time commitment am I looking at for the OMSCS?
If you take two classes per semester, the time commitment can be easily 20 hours a week.
Honestly I think your time is better spent working on real projects. In my CS master's program I met many students with no real-world experience. One was a paralegal before school, and after he graduated he became...a paralegal with a CS master's. Experience > degrees, every time.
There's value in the program (algorithms and data structures being the most applicable), but just go in with your eyes open knowing that the degree is not a glass slipper that'll turn you into Cinderella overnight. Too many IMHO falsely believed my program was a jobs program and really struggled to find work in the field.
If you can do it at night while working FT, great but don't take 1-2 years off work. It sounds appealing to be done ASAP but you're unlikely to make up that 60-120K/year in lost wages. Unless you're fabulously wealthy.
Good luck.
There's really not much off that to be had -- one introductory theory + algorithms course, one course on algorithms and complexity for parallel and distributed programs, and after that just a few domain-specific things -- image processing and machine-learning algorithms.
I thought the program was worthwhile because it was cheap and flexible. I could watch lectures on the train on my commute. Quality is mixed, though, and other degrees or (as you say) real-world experience could prove more valuable, depending on their own quality -- I wouldn't assume that any programming experience is better than this program.
https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Str...
https://www.cs.princeton.edu/~rs/
I don't think there is a single better source on algorithms than everything from Robert Sedgewick.
https://mitpress.mit.edu/books/introduction-algorithms
I damned near didn't touch a computer for two years after being forced to trudge through his books in college.
I don't. Just want the OP to not get degree fever, assuming they'll be flooded with job offers b/c they have a CS masters.
In developer interviews I've never had anyone even bring up my education once, mostly I think it helps get me past the HR filter at big cos.
But I loved my master's program, I'd recommend school to anyone if they can do it without spending a ton of money, like this program.
I've found advanced degrees are not an indicator of programming ability, and maybe even negative correlation.
It's a workshop analogy. A self taught person (the real projects suggestion above) is sort of like a messy shop where nothing is in its place. A messy shop isn't inherently worse, it is absolutely capable of producing fantastic work.
An educated person is sort of like a neat shop, there is a place for everything and everything is in its place. A neat shop doesn't guarantee that you'll produce fantastic work.
In my experience, while the self taught person can do great work, it frequently takes longer than the person with a formal education. As an example, I had a guy working on a compiler for me (because we really needed another programming language :) One of my other guys said "I think you're gonna need an AST for that" and the compiler guy, self taught, was like "Uh, no, I'm pretty sure I can do it without". That went on for a few months and then he did an AST. I think if he had taken a formal compiler class he would have gone straight to the AST (and one might wonder why I didn't have the guy who had formal education do the compiler; good question, I needed his talents elsewhere).
Anyhoo, not sure I made a compelling argument but I slowly came to value formally trained people like Google does (or did, not sure who they hire these days).
I don't think it will have an immediate impact on my earnings or place in my company, but I think the long term value of having it far exceeds what I'm paying for it.
That's something you could learn on your own. But your knowledge of "technologies" are more valuable to employers than CS degree - especially if you have work experience.
The tech industry isn't like academia ( economics ) where you have to build up credentials. Work on projects that deal with web technologies or even better learn the back end ( databases ) or even the middle tier/server code if you are a front-end developer.
Becoming a full-stack ( front-end, middle-tier and especially back-end ) is going to be far more important to employers than if you know what undecidability is or computational theory.
Degrees are very important if you want to break into the industry ( especially top tier corporations ). But if you are already work in the industry, employers want to see the technologies you are competent in.
If your employer is willing to pay for it and you have free time, then go for it. Learning is always a good thing. But if you want to further your career, go learn SQL ( any flavor ) and RDBMs technologies - SQL Server, Postgres, etc ( any you want but I recommend SQL Server Developer Edition if you are beginner on Windows OS as it is very beginner friendly from installation to client tools ).
A full-stack web developer is rare and you could even sell yourself as an architect/management. That's a difference from being a $60K web developer and a $200K full stack developer/architect.
I have a BA in Political Science and about a decade as a software developer. The next step in my career would be better served by an MBA than an MSCS. I'm not even sure I could break even if I did GT's OMSCS out of pocket as I'm about as high up as I can get and still use data structure and algorithm knowledge on a daily (let's be honest - weekly at best) basis.
The consensus is that it is very time-consuming. As a junior web developer I would have a lot of catch-up to do in Programming (some comments mention the need of intermediate level at C, Java, and Python, I have none of neither). As an Economics graduate, I have a fairly shallow knowledge of Math, some catch-up would be needed in Calculus and Linear Algebra also. This would make the program even more time-consuming for me (and I need to stay my full-time job).
I will focus this ernergy on becoming a better software developer and think again about this program in a couple of years.
I agree becoming a decent full stack developer is better than doing an MS were the focus is fundamentals. However, those matter. Things like concurrency, data modeling, relational algebra, strong OOP fundamentals are used daily in any non-trivial backend work. OTOH, engineering stuff like auth, version control, testing, data cleaning and migration seems not part of the course and are quite relevant.
My personal recommendation is to learn multiple languages. You'll learn the concepts and abstract away the implementation. C++, Java, Python and R are different enough and very useful when looking for jobs.
I also recommend doing puzzles to learn algorithms and data structures. Not because you'll see a lot of them in your day to day, but a lot of places use them to weed out job applicants.
Which brings us to the most important advice of all: focus on remote work for US customers. Really. You can easily make $30/h, that translates to around 16k BRL as a "PJ". After a few years, $50/h, $70/h and even more is not unusual. That's upper mgmt level money down here with a fraction of the burden.
You can ping me at cjalmeida at gmail.com if you want to talk more.
Cmon guys, a US Masters for 7000 USD? Are you kidding me? Its totally worth it. In fact I feel blessed that such a thing even exists. GaTech has been a trailblazer in this regards.
This is not entirely true. The online masters does not have all courses available. The on-campus masters has a much larger breadth of courses one can choose from.
All things considered, for $7000, the value is phenomenal.
I think GT is just understanding all the potential they have in this program. There are a lot entrepreneurial resources that are only catering to on campus students and they realizing that the OMSCS students want to take these electives and be apart of these programs.
When OP says it's "exactly the same degree" I read that to mean that the school gives you exactly the same piece of paper at the end, as opposed to giving you a piece of paper that has the word "online" on it. In other words, I read it as meaning that there's no way for an employer to know whether you completed the degree in person or online short of asking you directly.
http://www.omscs.gatech.edu/prospective-students/faq
For US costal software engineers, $7k is relatively inexpensive.
The average monthly income in Brazil is ~$620 a month. The average top end worker is $3500 a month. So $7k would likely be a significant investment for many Brazilians.
https://www.worldcrunch.com/business-finance/in-booming-braz...
Still cost me slightly over 40k even though Innever stepped foot on campus.
It's a total rip-off, but only in the sense that I couldn't get a decent paying job without a masters (work in biotech).
I've always been under the impression that most masters degrees are money mills for the university. They expect your employer to foot the bill.
Stanford masters seemed almost entirely like a money mill.
Wisconsin masters was a much better education in my opinion. Worked you harder, it was actually worth the time I put in.
I took a couple of incredibly basic programming classes, a decent class on web development, and discrete math. However, I didn't do any higher-level programming, calculus, or an algorithms class. I'm not sure if I would be able to jump right in or not.
"Isn't phenomenal" is hard to qualify. It's kind of relative to what you consider phenomemal.
I've always done well academically relative to my peers. Most of the courses are on some kind of curve. So I've done fine in OMSCS.
I guess what I'm getting at is...if you've done good enough academically in the past and you're willing to apply your full effort, you'll likely do well at OMCS.
Actually, there are funded ones! Princeton and Cornell both have 2 year thesis-based M.S.E CS programs which are fully funded + stipend. I'm starting Princeton's in the fall. These are small programs though, I believe there's 12 of us incoming.
I imagine the competitiveness is quite different between an online program from Georgia Tech for ~4,500 students[0] and an onsite program at Princeton for a few dozen. :)
[0] https://www.omscs.gatech.edu/prospective-students/numbers
Still cool, just wanted to put it out there in case anyone was wondering what their CS dept is up to.
Most graduate CS programs in the US have a lot of programming assignments and projects, and with a full-time tech job, it might be a bit hard to do it while maintaining a work-life balance.
I'd prefer a testing-heavy approach, with written exams, one- or two-hour programming/coding exams (similar to an interview), and in general other low-time-investment ways of verifying you've learned the material.
Side note: You've got "its" and "it's" the other way around.
I'm about halfway through and many of the classes assume that you have the equivalent of an undergrad CS degree. It's not intended to replace an undergrad degree.
That doesn't mean you can't do it, but your going to spend a lot of time catching up. From what I've seen, the students without a CS degree, even those with significant industry experience, have had a much harder time with the more theoretical classes.
It's also a graduate program, and the classes are pretty rigorous compared to what I did in my undergrad CS degree.
Also keep in mind that admission is fairly competitive. And admission is only probationary. You have to complete 2 foundational classes with a B to be fully accepted.
Plus, I have a very good job already and it's not like an MSCS would help me get to the next step at all. Most of why I want one is to prove to myself I could get one. Probably the wrong reasons.
The problem is that a second bachelors, while something I'm willing to do, seems kind of problematic for various reasons. Some of the curriculum in a typical CS bachelors seems like something I could benefit from tremendously, but some of it is very remedial. It's very uneven.
What I'd like is something like the Georgia Tech online master's, but with some kind of program for persons such as myself. I know some schools have these kind of postbaccalaureate degree programs, but they're not online.
That is, people working full-time as mid- to senior-level professional software developers, who have no formal CS training at all and would like to rectify that with a formal course of some sort.
I recognize that going straight to graduate school probably isn't the best plan, and I'm not particularly interested in endless months of self-study (or more accurately, I admit it probably won't happen without more structure).
I'm curious what you expect. I will soon have a BS in computer science. I would be awfully disappointed if I went on to get an MS in comp. sci. that didn't teach me anything new.
Cons: I've noticed some students who come to get their MS degree from a reputed institution because it is cheap. Due to coursework pressure, they take short-cuts, like doing group-work, discussing solutions when you are prohibited, plagiarizing in assignments, etc.
The degree is good in the sense that every alumnus I've talked to has found employment as a full time dev. It also does a good job of quickly washing out those who are trying it on and aren't ready and/or interested.
Got a job at Google directly because of this program (a few classes like CCA helped a lot with interviews). I'm aware of at least a couple dozen of us from OMS here.
The program cost me dearly. It cost me my relationship with the SO and it cost me my health (staying up late nights, lots of coffee).
* $5k cheap, it's nothing, the real way you pay for it is via your time.
* The teachers like the flexibility as much as we do. Many are top notch. I took two classes from professors that work at Google (Dr. Starner and Dr. Essa), one at Netflix (Dr. Lebanon), and a few others have their own startups.
* One of the classes was taught by Sebastian Thrun, with a TA at Google, but I think that's changed now.
* The lectures are good, but you have infinite ability to subsidize them with Udacity, Coursera etc.
* You learn squat by watching videos. The true learning happens at 2am when you are trying to implement something, and end up tinkering, debugging, etc. That's when things click.
* The hidden gem is Piazza and some of the amazing classmates that help you out. Lots of classmates that work in industry and can explain things a lot better. I.e: Actual data scientists and CTOs of Data Science companies taking the data science class. They were amazing and I owe my degree to them in part.
* Working full time and taking classes is not easy. Consider quitting and doing it peacefully.
* From within Google, I've heard from people that did the Stanford SCPD (I'm considering it) and also OMSCS. Lots of people that say the SCPD program wasn't worth the time and effort. No one yet that's said the same about the GT program.
I've heard from people that have done the program in-person, and they say the online lectures and materials are significantly better.
Nope, it's definitely not easy. I take two classes full terms, one in the summers while working a full-time day job. I easily spend 20-30 hrs/week on coursework + readings + lectures during full terms, only ~10 hrs/week during the summers. Anything more than that would definitely require a rethink and time off. But it is entirely doable if giving up two years' pay isn't an option.
Also the personal stuff to some extent. Point is, I gained a lot from the program, but it hurt me in other ways and money is the least of these worries.
Is there a way to stretch this to 3-4 years so that things aren't as compressed?
(Googler here) I took ~4 classes, and they all seemed to be of high quality (applied for the full MSCS, but didn't get in, unfortunately). What are some of the opinions you've heard here?
I believe the typical complaint is about the additional classes required to just round out the degree that are not as useful to one's chosen sub-field in CS. Can't give you my personal opinion because I'm not there yet.
https://garymm.blogspot.com/2016/07/i-regret-getting-masters...
Look for discussions from the author, I can't link it here.
Very true of my on-campus degree from Gatech as well. There wasn't any flexibility in spreading out courses due to my visa status. Tech tends to expect grads to leave in 1.5 years, which is slightly tighter.
> "It cost me my relationship with the SO and it cost me my health (staying up late nights, lots of coffee)."
Could've been true for me as well. Tech was also the first time my SO and I were long-distance, so that was an added challenge. I also put on 20 pounds the first year due to late nights and large pizzas. When I came to my senses, there were amazing options available in the fitness center.
> " The hidden gem is Piazza ..."
Opinions varied among my peers but I loved Piazza (the idea) too. Only one of my courses (advanced OS, Kishore) actually used it extensively, sadly.
Apart from the campus culture, etc, one thing I would miss in the OMSCS is talking to professors after class. A couple of the professors spent almost an hour after class answering questions in the hallway (in addition to scheduled office hours). I wonder if that experience can be replicated.
For my third course, I may create online drown proofing.
I would assume it is him. He's very active on the unofficial Google Plus group for the program.
It gave me an excuse to create an account.
For context, drownproofing was a course once upon a time at Georgia Tech which is now more famously taught in the Navy SEALS. It teaches you not so much how to swim but how to bob just below the surface without drowning or expending too much energy. The "final exam" was having your ankles and wrists bound and being dropped in the pool.
There's a startup metaphor in there somewhere.
https://en.wikipedia.org/wiki/Drownproofing
This program is no joke, especially if you don't avoid certain courses. If I had one piece of advice for anyone in the program, you should trust the crowd source student reviews of the courses.
Can you say which classes you took and/or your favorites or the ones you thought you got the most out of? Any you wish you had taken instead or the classes you did not enjoy or get much out of?
I've only heard of this program, but have not researched any details.