This past Friday I went to see another students defence to be more prepared for mine which will be coming shortly with my thesis in draft form. However, while most would think technical questions or issues with the work would stand out most to me it was actually a question posed after the defence which was: “If you were to do it again would you do a masters and would you recommend it to an undergrad” which stood out to me because it was something I’d thought of and changed over time as I did my research.
I’ve yet to see how much the masters helps in a real life job (it will vary greatly anyway) but from the perspective of an undergraduate student say in 3rd or 4th year you should have a good idea of what you enjoy most in computer science; it’s a broad field that has many jobs. I’ve found some people only want to program and are what might be referred to as a ‘code monkey’ and in this case I’d definitely say do not do a masters simply finish up and get a job, you can learn a lot in the field. If you are interested in the latest and greatest or learning more in-depth areas then a masters may be for you. One of its biggest offerings (at least in Canada) is that you generally have to take classes which introduce and expand upon some key areas of research. In my case this was machine learning and natural language processing which are two of the most important areas in research at the moment that are not seen in undergrad. While I took an artificial intelligence course similar to the machine learning the focus was on fundamentals and did not take the approach of the grad course which required researching recent papers to apply techniques to your unique data set. This I do feel is one of the strongest points of grad school.
The courses will likely sound exciting to a lot people even those simply interested in programming but the biggest part of a masters is research and that is a lot less glamorous as it involves reading 10s of papers to scope the area and determine where work must be done. Then experiments are designed, validated, and results are generated. Then of course you must write a thesis (a large undertaking) and defend it. The problem is a lot of people don’t actually like the research aspect since it is so different from programming; some masters students don’t write a single line of code in their research. Research is high level thinking and problem solving that does not focus on code structures that one does when coding.
In the end I wouldn’t recommend a masters, if you really want to do one you’ll likely know and won’t need a recommendation anyway. I feel you need to have the right personality to succeed and enjoy it since there are many hoops to jump through including funding, finding work, an advisor, and writing papers and presenting papers. Throughout my masters I’ve gone from thinking it was a complete waste of time to enjoying the research and not worrying about the rest with many ups and downs in between.