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 :)
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.
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.
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.
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.
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.
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".
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.
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
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).
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.
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.
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.
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 :)
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.
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 :)
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.
Otherwise, you're probably better off working on side projects and contributing to open source projects to develop your resume.
We just hired a fresh graduate for 80k a year.
You might find something else you like other than VR too!.
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.
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.
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...
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.