HACKER Q&A
📣 4dregress

Is a MSc in Computer Science worth the time and money?


5 year's ago I made a career change and became a software developer. I'm 100% self taught and I've been able to start from the bottom (again! I spent 10 years working in a different industry before making the change) and working my way up to being a pretty decent mid level developer.

Due to being self taught I've not had the structured education you get by being taught a curriculum and I was wondering if studying a MSc in CS would be beneficial or even supplant the experience I gain doing my day job?

Would gaining an MSc in CS be worth my time and money? I'm considering taking one up whilst continuing to work full time.

EDIT:

I'm based in the UK.


  👤 indoorskier Accepted Answer ✓
I have an MSc in CS so biased, but I think on balance it's worth it, if only because you'll be confronted with subjects outside your comfort zone. Even if you don't "like" them they'll broaden your perspective, and who knows you may learn about something you wouldn't have heard of before, and really interests you.

Definitely depends on the curriculum though - my advice would be to look for timeless subjects, so "Algorithms and Data Structures" over "Game Programming with Unity", with a lot of variety.

This is all from the perspective of you being interested in learning new stuff regardless of monetary gain. If you're thinking of this more transactionally, i.e. "will I be able to get more money/better paying job" then I think it depends a lot on where you live. In some areas formal education is valued more than in others. Also a good part of it will probably not be immediately applicable to the day job - at least not obviously so - but it should give you a decent perspective on the field as a whole.


👤 awb
As a CEO & recruiter that’s hired dozens of engineers, I’ve never looked at someone’s degree, only the recent projects they’ve worked on.

My exposure is exclusive to startups (typically < 50 ppl), but many have been very successful.

And these roles are typically mid & Sr. level web, mobile & AI roles.

This works because at a startup you usually need to be good at teaching yourself and innovating, which is a skill that successful self-taught developers usually have mastered.

If you’re looking at different roles or at different size companies or can’t get exposure to interesting projects then you might find a CS degree worthwhile.


👤 fooker
Yes, if you want to break into specific domains (OS, Hardware, ML, Compiler, etc..).

No, if you want to become a generalist. You can become an excellent generalist without structured CS education.


👤 ctrwu2843
Presumably by merit of where you are now, you already have the necessary skill to autodidact your way to the equivalent of a comp sci MSc

Read the Kleppmann book on distributed systems - that is probably worth an MSc in itself.

Read the CTMCP book - probably worth another MSc. (PL theory)

What do you want to specialise in ? Choose one or two topics and look at the curriculum in a few universities. What books are on the reading list ? You can likely learn far more self-studying the material than any lecturer will be able to transfer in a few hours of tuition every week.

A comp sci conversion degree is probably close to worthless at your stage, and a more specialised degree still of questionable value considering the cost.

My anecdotal data point of 1 - I don't have a cs degree but work as a highly paid senior contractor on interesting problems, using functional programming to build distributed systems. Early on in my career I read an undergrads worth of text books, and then followed it up with several masters level textbooks.

The best devs I have worked with are constantly reading comp sci text books or papers. The knowledge has a much longer shelf life than x new framework or y new library.

All that said if you want to do it for some intrinsic value then never let anyone talk you out of pursuing education. I just don't think the degree will make much difference to your career, it's the knowledge, confidence and ability to demonstrate & implement that will give you access to better opportunities.


👤 wizzerking
I am a 67 year old "Software Engineer" with a master's of Science in Chemical Engineering from Stanford. I have found this Master's of Science has set me apart from other candidates several times, because the degree shows I am capable of understanding advanced mathematics, and reasoning. But my classes were paid for by my work Place SRI International in Menlo Park provided I passed the classes. My out of pocket expenses were for books, and gas for travel. Many of the larger employers have a similar program. Get at most 2 Master's of Science in overlapping Disciplines, I find the master's of science are a detriment on my resume' , but is an advantage on my linkedin page when arguing with PhD's

👤 lmeyerov
Trick: apply for a PhD and they will pay you to get the masters, and you can drop out at any time

And agreed with others. If you did not do a great upgrad / did not sufficiently self-teach, and you want to quickly level up on tech fundamentals + some specialty area, hard to beat. You can easily do more boring tech without, and quite successfully. Likewise, some people luck into elite teams or strong mentors to replace this... But unlikely and you won't really know. (We happen to be like this, but it is rare and takes work on a sides.)

Staying on for a PhD after is more of a passion / self-investment, eg, passion for leading r&d or some niche.


👤 throwaway1183
I do not know much about your background, your experience and your interest. But for me one thing I realized is Computer Science isn't as good as I thought it to be. Since I was from engineering background, I found CS to be more math focused and abstract. Think of CS as what pure maths is for physicists. Both physicists and mathematicians can solve problems, but mode of thinking is different.

If you want build a solid foundation on CS, I would suggest taking a course in Applied mathematics with some CS related subject because that would allow you to understand the deep fundamentals within CS. These mathematics (discrete, probability, linear algebra, proof techniques) are generally covered in Bachelor's level of CS. Having sufficient skills with these topics will allow you to dive and understand any topic later in life. As engineering major, it was mostly focused on calculus and analysis. Therefore, whole idea of theoretical proofs and reasoning was quite difficult for me. CS is filled with these kinds of proofs. No one tells it.

However, if you are interested in building things, it would be wise to pursue something in software engineering (or applying for challenging job etc). Like everyone has said here, CS is to go into some deep niche like compilers, OS, networks, algos & DS, which is extremely narrow, intellectually fulfilling but extremely hardcore. Good luck with your decision.


👤 twelve40
I think it's worth it. Contrary to some comments here, we did improve a lot of the fundamentals in algorithms (the clrs book), machine learning, cryptography, programming languages. It will help with whoever screens for formal degrees. It's easier to get into a better school, not as competitive as bachelor's, just drill for the pretty robotic GRE. You can get a research scholarship and TA or RA salary esp. if you join a lab, so they will (modestly) pay you all the way.

👤 Kon-Peki
It’s nearly impossible to generalize, but in your situation it seems like a good idea.

Can you afford it without loans? Are you ok with the possibility that professional advancement doesn’t happen (it might not)? Do you understand how much time you will need to dedicate to finishing it?


👤 Joel_Mckay
From an operational standpoint it can actually make finding a position more difficult, but does open management opportunities. Keep on mind, an MSc infers an unsuccessful Phd student in some places, and in other contexts a long-term choice to focus on research.

Commercial projects are very different from research environments. However, many institutions try to blur the line between commercial and academic projects. Notably from a legal and economic standpoint... most institutions own everything their students do... Thus, collaborating with a private sector project is difficult as most companies don't want to incur the liability.

If you are asking if managers typically would pay someone more to do the same job as someone with actual work experience. The answer is simply that you are lower on the priority list, as a manager can pocket 7% bonus for the wage difference you think is appropriate.

The academic institutions tell their students a lot of self-serving BS. They may seem like nice folks at first, but most are only interested in the funding you can bring in. The process of screening doctoral candidates is not what most would imagine. Ripping off the naive is pretty much a universal faculty trait...

Consider becoming a plumber... ;)


👤 cloudking
From my experience working with engineers, those with more knowledge of CS tend to write more optimized code (faster, cleaner etc). They have an understanding of the best algorithms and corresponding functions to solve complex problems.

👤 dopeboy
I got a MS in Comp Eng from Columbia awhile ago. Some good reasons to get one, tuned to your background:

* Because you are self taught, getting one gives you more credibility and increases your chances of working at a traditional, large company (FAANG and the like).

* You'll build a durable network. My experience was rigorous as hell and through that, I got to be close with my classmates. Though we're not in constant contact anymore, ringing them up for a job referral is pretty much a guaranteed favor.

* If you want to specialize in a particular topic (eg compilers, networks, etc), it's worth it. Chances are you'll get to do some dedicated research and it can be really intellectually fulfilling.

* There will be holes in your knowledge that you'll fill. They won't be critical to your software career, but it'll give you an edge.

BTW, if you decide to pursue one and you're in a position to do it fulltime, definitely do that. Way more of a rewarding experience vs doing it PT.


👤 cgearhart
I have an MSCS that I took a decade after undergrad and while switching from MechE to CS. An MS won’t really teach you fundamentals, and it won’t make you stronger at the fundamentals you already know except by giving you a structured environment within which to practice and refine those while doing the work. I think the MS mostly helped me to learn more depth over a curated breadth of concepts than the BS that emphasized fundamentals.

The credential may be valuable to open doors that are artificially closed to you as someone without a degree. Even with a BS in MechE and programming experience I had a hard time getting interviews, but as soon as the MSCS hit my resume I started getting unsolicited calls. YMMV.


👤 myroon5
Most CS Masters students are international because 20k out of the 85k total H-1B visas are reserved for graduates of graduate programs, so the value differs depending on your immigration status (if your goal involves working in the US)

👤 jokethrowaway
Not for the job.

Do it if you like the idea of it but it's an expensive hobby.

I'd rather just learn the topics I care about online


👤 onetimeusename
ya, in my biased opinion, you should do it. I think it will be hard but also I don't think it will harm your career. So worse case scenario it has no effect at all on your career prospects. But that's the worst case - in all likelihood it will benefit it.

However, the biggest benefit, in my opinion, is taking challenging classes, improving your knowledge, and making contacts. The benefit may not necessarily be career enhancement or learning the latest technical skills. The biggest advantage school has over self-learning is more on the theoretical and experimental side of computer science. You will be able to see and learn things you couldn't see on the job that I think could be very interesting if you like the topic. You can actually enjoy getting the degree and I think UK master's degrees are generally reasonably priced as opposed to the absurd prices some US universities charge. Sometimes software development can be kind of mundane so maybe this is a chance to see something new and challenge yourself.

If you are strictly focused on career prospects though, which is fine, I will caution that the classes can be time consuming and difficult and you might find all your free time is spent doing them instead of relaxing after work. I am biased about this but not everyone would agree with me about what is interesting or fun so I think it's good to know your motivations before going into this. If all you want is technical skill advancement I don't think a master's is a good choice. Universities often lag industry as far as teaching tools you could learn for free anyways.


👤 jwlit
I did an MSc (at Manchester Uni) after a bachelors in Modern Languages and some time as a (tech) lawyer. (Since the MSc I’ve worked in production support, mostly algorithmic trading, with some light development and integration work as part of that.) Although I don’t think there was anything that I learned there that I couldn’t have got from some dedicated self-learning, I do think the requirement to do some things that were quite difficult or intimidating was very rewarding and has also given me a lot more confidence to dig deeper into the patterns below the surface of program behaviour. (For example, I found the maths behind signals processing really hard, but although I’d imagined that assembly programming would be incredibly difficult I actually found it quite enjoyable to work direct with the “bare metal”.) I thought it was worthwhile. I think the benefits are likely to be more oriented toward your own intellectual satisfaction and depth of knowledge than career enhancement though.

👤 mrverify
Definitely worth it. I have actually used my classes in AI and Simulation Theory along with Numerical Analysis a ton. I started as a hacker--coder not cracker--from childhood with basic/assembler/c and only one undergrad comp sci course and often rely on my MSCS to lend authority to my knowledge of computers. It can't hurt to get a MIS masters instead or a masters in engineering management and lean heavily on the basics; Algorithms and Data Structures, Theory of computation, and operating systems/computer architecture. You can study simulation, ai or numerical analysis at your leisure using a MOOC. Stanford is great, so is the FastAi course. You will not need a ton of math beyond diff-eq and linear algebra, heavier on the linear algebra.

👤 atlgator
I was in Georgia Tech's MS Computer Science (traditional not online) for a year. It was a complete waste of time. Switched to ECE and finished out there.

👤 davidrupp
My first job after completing mine gave me ~25% pay increase, and it's gone only up since. I don't claim this is causal, but I'm not displeased with the correlation. Personally, I found I enjoyed the coursework more than I had during undergrad, and I challenged myself to strive for actual mastery of the material, rather than just doing the minimum to get the credential.

👤 navbaker
My current company actually puts you into a higher pay range band based on both work experience and degree earned.

👤 sircastor
I got a bachelors in software engineering about 15 years into my software development career. I had anticipated that taking the courses would fill in the gaps in my knowledge. It did give me some theory, but not much and not anything that I couldn’t learn on my own.

I did appreciate my digital logic class a lot.


👤 kazinator
I would tentatively say: yes, today it is. Or might be.

For someone young today who is still in school. Or just out and has only worked a couple of years, if any.

The reasoning is that people with bachelor's degrees in CS are increasingly a dime a dozen. It may be that the master's degree is the new bachelor's.


👤 breakds
Those programs are most useful in teaching you how to self-teach, which seems like a skill that you have already mastered and excel at.

The degree can definitely make your resume look better, but past work experience and projects speak much much louder.


👤 WithinReason
Not for the degree itself, but you could learn something useful that could be helpful later

👤 nextos
Where will you be studying? Some UK-based degrees are really good, others not so much.

👤 mattsfrey
IMO no degree is necessary or worth the money today for doing software/computer related things, there's virtually nothing you'd be taught in classes you can't learn with an internet connection.

👤 arcticadder
TIL one could get MSc without doing BSc first.

👤 secondcoming
Are you a Computer Scientist or a Programmer?