Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Is a Master's in CS worth it?
35 points by Karsteski on March 9, 2021 | hide | past | favorite | 40 comments
So I'm currently a chemist with a B.Sc. in Chemistry. I've been programming as a hobby for ~2 years now. I started off with Arduino, realized I knew absolutely nothing, then went down the rabbit hole by learning how to code in C++, followed by Python with some SQL. I've written some hobby projects for my portfolio but nothing too special or difficult.

I've gotten a few software developer interviews through networking, but ultimately nothing has come of it. I still feel like I know nothing. I am very much interested in software engineering, focusing on the Virtual Reality field. I'm only now looking to start learning about GPU programming, and graphics in general. Hopefully in a few years I'll be able to start my own business related to this field, but that's an aside.

Given that background and my goals, does it make sense for me to do my M.Sc. in CS? I recognize that there are other options but bootcamps seem to mainly focus on web development, which I have zero interest in. Similarly there are college programs that I can take, but I'm not too sure about those... It would be nice to hear from someone that has attended a CS/SE program in Ontario. The M.Sc. would probably take ~3 years as I'd have to take some undergraduate CS courses as well.

Note that I live in Ontario, Canada. I'm currently on a work permit but I've applied for PR which will come sometime in the next 12-18 months. I was an international student and I'd rather not pay international fees again, so I would wait until I actually got PR to attend university.

Any feedback welcome, thanks in advance :)




I'm going to go against what the majority of people have said here at this point in time. I am currently undertaking a Masters and I love it.

Each subject is like a small window into a deep research area.

I've become aware of TLA+, Paxos, Raft, distributed algorithms in general, branchless programming, how to implement various compiler optimizations, etc. I'm okay within these fields, I still have a lot to learn, as I said before the subjects have only been windows into much deeper fields/topics.

I'm not saying that you wont eventually come across these things without a Masters but it helps accelerate the time it takes.

I can gladly say that my programming skills have increased substantially as a result of my Masters.

For you, I cannot give any specific advice unfortunately, since I do not have that much knowledge on GPU programming. I know enough that that field is quite math heavy.

I hope this helps in making a more informed decision. Feel free to ask me any other questions.

My experience is at the University of Melbourne in Australia.


This was largely my experience as well. It was nice enough and I ended up with a job that I prefer greatly to what I was doing before.

Perhaps I could have done the same or better and saved some dollars with independent study and more networking, but it was certainly easier and more pleasant to do it with some guidance.


So you're someone who's currently doing a Masters, attesting to it being worth it.

I think if you're currently in academia, I can't give too much weight to your opinion.

Yes, you'll get a relatively deep introduction to lots of different research and interesting areas. If your goal is to do research, or work for an organisation that specialises in a field..

Start a project related to that field. Learn as you go. Publish. Network. Keep a part-time programming/dev job to support its development.

You'll save 3-5 years, you won't go into debt, you will work much less, you'll learn about the field and build a network of peers globally as you meet people online and you'll have a headstart on your career not being hired as a grad that will be treated by a toddler, but as a peer with valuable domain knowledge.

You'll probably shave 5-6 years overall off your career trajectory.

If you can't self-motivate... Go the grad path. But the grad path sucks if you don't have money, have to support yourself or if you don't want to go into debt. It's also slow, full of bureaucracy and if you're an international student - supports a really crappy industry engineered to exploit you.


Fair Enough, if you disagree. I would like to point out something to people who may see your comment, because I personally believe this is the way to get work in a specialized field. Feel free to rebut as well.

This is just a note, my motivation for Masters was for specialization in distributed algorithms.

The Masters degree has opened a lot of opportunities to the people I study with, yes you need to be a good student (high distinction at least) to get these opportunities but they are there.

If you are willing to put in hours and hours of study a day, it will almost guarantee interesting work when you graduate.

Yes if you just perform averagely, it probably won't help you to break into your area of specialization right after uni.

Out of people I know, one is working at Jane Street on the OCaml compiler now. Another is working on Azure at Microsoft, another on powershell at Microsoft. A friend has managed to get internships at Atlassian, Facebook and is now interviewing with a well known database company (I will leave the name out, since its an ongoing interview) to work on distributed systems stuff there.

I've had a few interesting opportunities through my masters as well, currently I am working on a real time social media topic discovery platform.

To add to this, the skill difference of the average undegrad student I encountered and the average Masters student I encountered was quite high.

Additionally, the grad path also allows for research alongside world leading experts in their field (Depending on the university).

To do add to this, most universities allows for exchange, at my institution, students are granted the opportunity to go to universities such as ETH Zurich (4th in the world for comp sci) and Imperial College London (9th in the world for comp sci).

These will not only look great on a resume for someone looking for their first job, it will allow the students to network with other students who will likely be in the top of their fields.

To add to this so many people that are specialized have advanced degrees. It's really hard to find research papers by people who do not have an advanced degree.

I do agree universities do take advantage of international students, UoM is awful with international students, they have lower standards for them, so that they come here, fail and have to repeat subjects over and over again.


I think it makes the most sense for someone whose undergrad degree is not in CS. Aside from that, I see it more of something you do for your own satisfaction rather than as a career boost.

I'm going to finish OMSCS this term, and while I'm pretty burnt out and ready for it to be over already, I do not regret the experience. I'll be proud of sticking with it and I'll definitely frame that piece of paper on my wall. I don't expect it to make a bit of difference in my career, honestly. But I knew that going in. I did it for me, not for an interviewer.


I am 80% done with OMSCS and very much agree with this sentiment. Every day I believe less and less that this will have an impact on my career, but I got to work on a whole bunch of interesting stuff and learn things that I probably would not have pushed myself to learn without the structure of the program.


I've done my master's degree and I don't believe it impacted my career at all. Things I learned during the degree I either knew about, or would end up reading while learning about related ideas. The jobs I got came either from professional network or applying in places where the degree is irrelevant. I did enjoy learning, but writing the final paper was the worst thing I experienced in life.

Unless you want to do things where the letters by your name matter (academia, r&d at larger corps, enterprise jobs where the letters give you extra points, etc.) I wouldn't expect any benefit.

The only place where it mattered for me was applying for a permanent residency in Australia, since it's points-based and your education is counted.


I have a bachelor's and masters in mechanical engineering and currently have a software engineering role that I've been in for 5 years. Since July 2019 I have been applying to entry level, mid-level and senior positions trying for a new role. I've had 3 interviews out of 170 applications.

Because of this, I've applied to a master's program for computer science because it seems to me that my lack of a CS degree is holding me back. I have degrees and work experience, but no one wants to hire me. Just my personal experience not having a CS degree at all.


Eh, I'm not going to tell you not to get a Master's, there's sure as hell some cool programs I've sen out there personally.

But the entry level can be hell, especially if you're mass applying. It can be a numbers game sometimes.


It can also be the exact opposite. A targeted approach that leveraged my here and now skillset and long-term technical interests is what worked for me.


I'm trying to play a little bit of the numbers game, but more focused as you've said on the skillset/interests. It's discouraging at times, but I'm keeping at it.


I participated in the Georgia Tech OMSCS program to get to an MS CS degree about 6 years after getting my EE BS.

I've stayed in my engineering role, but it's absolutely given me an advantage in certain aspects of my job. I can more effectively communicate with IT, and I find myself in leadership positions because I can bridge the gap between IT and Engineering.

I think at the end of the day though, the Master's is not going to give you the knowledge to ace a FAANG interview.


From my perspective (ie, opinion), probably not.

I've been hiring engineers for a few years, and I've come to associate a CS/IT Masters + unrelated undergrad with bad candidates and generally use it to filter _out_ candidates (unless something else on the resume catches my eye). Conversely someone with a science degree and a bit of experience (or some decent personal projects for fresh career-switchers) is a much better sign.

My experience (read: anecdata, opinion, bias) is that the IT/CS masters candidates I've interviewed have switched for money and because of failure-to-thrive in their original industry, and have no care or passion for software, and have done poorly on interviews. The non-CS-undergrads-but-no-masters candidates are just the normal spectrum, with a higher variance (some with 0 skills but much hope, some with really interesting backgrounds and wide-ranging interests like how you sound).

Data disclaimer: I'm only at ~500 total lifetime interviews/10 years experience so far, I'm in Australia, I have no recorded numbers or hard data just "feelings" and "intuition".


> I've been hiring engineers for a few years, and I've come to associate a CS/IT Masters + unrelated undergrad with bad candidates and generally use it to filter _out_ candidates (unless something else on the resume catches my eye). Conversely someone with a science degree and a bit of experience (or some decent personal projects for fresh career-switchers) is a much better sign.

Same observations here. Except if they worked in software during their undergrad (as an intern for example) or minored in CS and majored in something else.

Undergrad in CS and a Masters is also typically not a red flag.


Very interesting.

I'm also in Australia and have found your perspective to be identical to mine.

Unrelated undergrad + IT/CS Masters usually equals "I want money" or "X was terrible so I'm falling back to something safe". Obviously, that's not always the case, but it has been in many interviews (and a few hires).


This has been my experience too, but I don't work in research or specialised areas. I work in CRUD code and API development. Hardly need a CS degree for 90% of software development. I'd prefer they taught these grads engineering principals.


Yeah I'm also in the CRUD/API/just another web-app space; albeit the "high" end (high salaries, very well-known companies; not necessarily the most sophisticated technology though).

When kids ask about undergrad I say, 'Do a degree called "software engineering" if there is one, otherwise "computer science" is the same thing'. Some unis just have one general coding degree and pick the name randomly out of those two, some have both with either an industry or research focus respectively.

eg in my CS undergrad degree I got some theoretical & research stuff (simulations and queuing models, computer vision being two of the research focus areas), but also some good old Operating Systems, compilers, databases, practical programming, software engineering, etc. Vocational stuff; has been very useful!

Masters students (back then at my uni, and seemingly now too) mostly wrote essays and had the option of doing very, very little coding at all.


I think masters is like a buffet, it is good for those folks who do not know what they want to specialize in (like me). You can try different things and figure out what you like vs what you don't like.

If you already know what you like or what you want to do, there are plenty of online tools available to help you on your journey, no point wasting time and money for a buffet.


I obtained my M.S. in Cs in 2015 and have ZERO regrets doing it.

My undergrad is B.S. in Aerospace Engineering. In 2000 I got my 1st job as an engineer and after about 6 months was completely bored. This started a series of job jumping for the next 3 years. In 2003 I landed what was supposed to be my dream job of working for a company that makes small, civilian airplanes. Again I hated it.

Around 2004 I started taking EMT class, at night, and then paramedic. The county fire department was hiring right when I graduated with my paramedic. The catch was I had to cross train as a fire fighter, which they paid for. I took the chance and loved it.

Around 2010 I noticed a lot of people in the FD leaving due to getting hurt, main their backs. As the main, and sometimes sole-, breadwinner I knew I needed a backup plan. I enrolled at DePaul University online and enjoyed every minute of it. I graduated in 2015.

In 2017, while working full time as a FF/PM I got a part time remote job as a programmer.

In 2020 as everyone knows the pandemic hit. I was already getting tired of the 2 a.m. calls for stupid shit and the threat of the Covid virus was the tipping point. I started sending out resumes for remote, full time developer positions. In June 2020 I landed a job and resigned from the FD after 14+ years.

Here we are 9 months later and I do not regret my decision at all. Who would have thought a consistent sleep schedule is magical! :-)

My decision to join the FD and time served is probably some of my best years working. I still say that being a FF/PM is the best job in the world but it is a young man's game.

So, yeah a masters for me was way worth it. Though I might have been able to land a programming job without one, I needed the degree as much for myself as I did for showing potential employers.

Good luck in your decision


I completed mine last August, and I haven't used it to strongarm my employer into giving me a raise (yet), nor have I started looking for other jobs (yet) because I enjoy my current position; so it's provided me zero financial benefit thus far.

That being said, I definitely think it was worth it. I enjoyed the time back in academia after a few years off after my Bachelor's extremely enjoyable, and I feel like I learned a lot and grew significantly as a learner during that period. I am reading CS research and fundamentals texts in my free time, and I feel as if I continue to benefit from those couple years every day. I also forged relationships that haven't yet "paid off" in any discrete sense but still bring me joy to reflect on.

Certainly, I could have done all of these personally beneficial things without the degree, but I probably wouldn't have, and I highly doubt it would have been as fun.

Granted, as an American, I now have a few extra tens of thousands of dollars of student loan debt as a result, but that hasn't yet begun to destroy my life, so I'm mostly just hoping that either I'll be able to pay it off eventually without much hassle or the federal government will get its act together and wipe it away (fingers crossed).


Here is another angle to consider. Depending on your country of birth, a Masters can shave years off the time it takes to get a green card in the US (look up EB2 vs EB3 wait times for your country). The Canadian computer industry is tiny compared to Silicon Valley and compensation does not measure up. You are likely to make your way to SV sooner or later.


It can be worth it if you use your time wisely. Think about a good topic for a final project and start working on it. Taking the time to do a large scale project and gain experience can definitely make a difference. I know that my final project had a lot to do with me getting hired in a different industry, so it can be really useful for that. Also, if you ever need to emigrate to a country with a more restrictive visa system, having a MSc. can be a factor.

See if you can work part-time (in the industry, web development or something that's still programming, but not necessarily your desired area) while enrolled. Then you don't take that much of a hit for starting your career later and you still get the benefits of having the degree. You don't have to maximize your test scores, focus on the final project and your work and put in just enough effort to pass.


I was an undergrad in biology and just finished my masters in comp sci last year. Now working at a FAANG as software engineer. It was 100% worth it for my long term career. Wouldn’t recommend for someone with CS undergrad already though if you’re only focused on career prospects.


Yes it will help you transition from Chemistry to Computer Science in terms of jobs and reputation.

You can probably complete it faster than 3 years if you want. The key to a software engineering job these days is algorithms and data structures as well as the programming. You can of course learn all of this outside of a masters degree. Since you have some time you should do that, then maybe you can focus on VR, GPUs and 3D graphics. I think VR and 3D graphics might require math e.g. linear algebra and geometry so that might be something to consider as well.

I would pick a program where you can write a masters thesis on a graphics/VR project and hopefully do that at a place that has a research group in that area.


> Given that background and my goals

many answers ignored that... in your case something relevant to CS would benefit you, especially since you lack significant experience so recruiters need something to look for in your resume.


Are you interested in academic work/research? If yes, I think a M.Sc suits you. And perhaps continue till you get a PhD.

If not, hmm probably not. You can learn most of practical knowledge via Udemy/Coursera/YouTube etc these days. And by books as well. I assume taking a M.Sc is not cheap, as well.

I know some people take M.Sc not because their jobs require graduate degree, or so they can brag "hey I have a master degree in bla bla bla". No. They simply enjoy the learning process, having their mind challenged. More power to them :)


VR, GPUs, graphics are a niche area and most jobs require both experience and some qualifications. Perhaps you could get some general developer experience while you wait for your PR and then make the decision whether you still need the M.Sc.

If you like learning then doing any formal courses is useful. But experience is, generally, far more highly regarded than qualifications. You could re-contact the places where you interviewed and ask for feedback as to what areas they found you lacking. Then focus on improvements in those areas.


Reading through everyone's replies below (some good stuff there), I thought I'd add another point of view.

You said:

> Hopefully in a few years I'll be able to start my own business related to this field, but that's an aside.

Depending on how important starting a business is to you, I would perhaps weigh this up more strongly in your decision to pursue a Masters.

I was a fresh graduate with a BSc in Computer Science when I started my software company (~15 years ago). The fact that I had a BSc never came up once in my business dealings. Literally never.

But having a BSc at the time gave me peace of mind, knowing that I could fall back on decent employment opportunities should my business venture fail to take off.

Some years later I earned a Masters degree (part-time, whilst continuing to run my business). My motivation to do so was primarily driven by ego and insecurity.

The fact that I have a Masters has also never come up once in my business dealings. Again, literally never.

So was doing a Masters a worthwhile pursuit?

To some degree (pardon the pun), it certainly was - in that I learnt more about my craft, as well as about myself - and I made some good friends along the way.

But was it worth it? That's tricky to say.

It was a significant opportunity cost in terms of my time and money. And the lessons I've learnt along the way through practical business experience (both technical as well as life lessons) far outweigh those I learnt during my Masters.

I guess what I'm trying to say is that, depending on the seriousness with which you wish to pursue starting a company, I would weigh this up more strongly in your decision.

And if you are indeed set on starting a business, then unless your Masters will directly impact your odds of success in doing so, I'd perhaps think twice.

Hope that helps, and good luck with your decision and your path going forward.

EDIT:

Probably the best advice I received as a youngster with entrepreneurial ambitions was to "take risks whilst you're young, before you have big financial obligations (such as a mortgage bond and / or a family to support)".

I'd urge you to also weigh this advice into your decision of whether to pursue a Masters first and start a business later, or vice versa.

Depending on where you are at in life (in terms of those big financial obligations), this advice might help clarify which path makes the most sense for you :)


I'd recommend you take it, but you should definitely take some CS undergraduate classes too to have a solid foundation, either not for credits or required by the CS department.

It will be easier to find jobs in Chemistry industry where CS jobs are available, like data scientist.

If you care less, community college is actually also a good choice.


It was for me. A long-ago BA didn't look as good on the resume. Also, my employer paid for it, which is common among federal contractors who can write off payments for courses that "maintain or improve existing job skills".


a masters in CS would probably help if its from a brand name school - Waterloo, Harvard, MIT, Stanford, etc.

Otherwise, you're probably better off working on side projects and contributing to open source projects to develop your resume.


Frankly, no. Sharpen your skills via YouTube and Udemy for a fraction of the cost and time commitment. Get an entry level job, hone your skills more, and you,, be off to the races.

We just hired a fresh graduate for 80k a year.


I went part-time and that was a great option. I almost immediately jump-started my career with a better job because my skills increased (I learned R and advanced SQL as part of a concentration).


Do it. It's especially great for a career change from one field to another and exposes you to a lot of the subfields in CS.

You might find something else you like other than VR too!.


If you are going to be able to get a job that uses it, maybe.

An MS is rarely worth the time and money. The opportunity cost as well as the loss of income will generally not be worth it.


It was for me. I got a pay raise after graduation and provided a credential bonus for applying for jobs. The degree paid for itself with in two years. It was also fun to do.


I have one and it hasn't really helped me.


TLDR - Read this https://ozwrites.com/masters/

Longer answer...

Have you seen https://teachyourselfcs.com/ which is literally a tailor made resource for teaching engineers to be better programmers rather than a language. It's easily a year worth of material but followed along will put you ahead of the average joe bootcamp grad trying to land the same job.


Maybe this is a BC thing, but you should consider a second degree in computer science.

UBC [1] and SFU [2] both offer them in BC. I’m not sure if Ontario schools offer them.

From what I understand it’ll be hard to be admitted to a Canadian based CS masters without doing a second degree in CS.

UBC has some advice [3] for those students who have math, stats, electrical engineering, computer engineering or other similar degrees. The course offerings look to be about 8-10 courses depending on your background. Potentially 2-3 years of background work before grad school.

I don’t have a masters or graduate degree. Always check with the department and school you want to apply to. Some things I have been told while a student at a Canadian university follow:

- often there are specific sequences of courses required to be considered a strong candidate. These courses may be advanced electives that aren’t required for graduation. Figure out what courses admissions would use to consider you a strong candidate. Probably 400 level algorithms and CS theory courses. Take those and get As.

- Canadian MS programs usually have a research based component. There is an expectation you have faculty recommendations for research projects you’ve worked on.

If you’re interested in graphics and other specialized topics, you might need to take additional undergrad courses. See information for prospective grad students section for more [4].

Lastly CS and SE are not the same. To do CS, you’ll probably need to know how to program to implement your research. Beyond that, there will be a lot of discrete math and algorithm knowledge you’ll need to use for proofs.

[1] https://www.cs.ubc.ca/students/undergrad/degree-programs/bcs...

[2] http://www.sfu.ca/students/calendar/2019/summer/programs/com...

[3] https://www.cs.ubc.ca/students/grad/prospective/applying/eli...

[4] https://www.cs.ubc.ca/~sheffa/students.html


Your background: a BS in Chemistry with hobbyist knowledge in C++, Python and SQL. You like VR and graphics. You live in Canada. You are not a Canadian citizen, but can communicate in English.

Your goal: To become a VR software developer with a successful company, a VR developer at someone else's company, a graphics developer, any developer at all, in that order.

Your method: Obtain a MS in CS, also in Canada, which will take three years.

My recommendation: I do not know of any VR companies in Canada. I do not know of any VR start ups in Canada founded by those with non-traditional CS backgrounds. I do not believe your odds of either starting a VR company in Canada or obtaining employment in VR in Canada to be high. I believe you must move to America to obtain such a position with substantial likelihood.

Graphics is a field with a high knowledge bar. The graphics software developers I know are not just interested in graphics, they are passionate in graphics. Without graphics they would lose part of themselves. They will take substantial, six-figure, pay cuts to work in graphics and expect that passion in other graphics engineers. I do not know if you are that passionate about graphics. I recommend you work in a field other than graphics, which is known for its high-skill and low-pay.

A MS in CS can serve as a foundation for further skills. It can also serve as not a foundation for further skills. I have not met an engineer who has benefited from a MS in CS and I know several such engineers. They did all benefit from leetcode.com however. Perhaps you will prove me wrong. I recommend you do take the MS in CS in whatever you wish to work in, perhaps graphics, but also take courses in things you do not wish to work in, like Perl. Take the time to also prepare for professional interviews.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: