Many moons ago I earned a Master's degree from the UT Austin CS department while I was working full-time. Reading the article, I was struck by how much my own experience differed. Because of my Master's degree I feel that my technical abilities improved significantly, and I enjoyed career advancement as a direct result of my efforts.

That said, I'm going to agree with a lot the article. If you're going into $300k debt to get an advanced degree in screenwriting, you're probably making a poor decision. As is the case with most things in life, there can be a tremendous variation in what a "Master's degree" ends up being for you.

My undergraduate degree was Computer Engineering, which at the time was under the purview of the EE department at my university. As such, it was heavier on things like BJT properties and lighter on topics like algorithm complexity theory, modern language constructs, and database and networking theory. Once I got into industry, I quickly realized that I was missing a lot of knowledge that my peers had in these areas, and I felt it was important to find a way to fill those gaps.

My employer had a program where they would let me work as a full-time employee while I simultaneously pursued higher education. They covered my tuition so long as I maintained a minimum acceptable GPA. Since UT Austin was nearby, I jumped at the opportunity, as they have a very reputable CS program. Tuition ended up costing all of $13k over the 3 years that it took me to complete the program while working full time. Meanwhile I pulled an entry-level tech salary with benefits.

I already knew that I wanted to focus on security in my career, so in every class that had a term paper or final project, I focused on something security-related. For my databases course I studied and implemented k-anonymity. For my computer architecture courses I implemented Blowfish on an experimental CPU architecture and implemented data cache tagging as a mechanism for isolating regions of memory to specific chunks of executable code. For my networking class I wrote a paper summarizing some recent advancements in onion routing protocols. For my machine learning class I implemented a k-nearest-neighbor algorithm to look at access patterns done on encrypted storage to infer the types of files being accessed and the applications manipulating the files.

All the while I filled many gaps in my knowledge on Computer Science as a discipline, and that helped prepare me to eventually be able to pass the infamous highly technical Google interview loop. From that point I leveraged the expertise I had developed in the field of security to build some notable security features, one of which you are using right now if you happen to be reading this on an Android device.

If I hadn't pursued my Master's degree, I honestly can't say whether I would have had the same level of career success in the years that followed. Because I went to a public university that didn't charge exhorbitant fees (and because my employer covered them anyway), I did it without accumulating any debt. I had specific personal goals for what knowledge and skills I wanted to develop in the program. I took advantage of the opportunity to deep-dive on topics with knowledgeable professors who were accomplished in their respective fields. I honed my knowledge of data structures and algorithms to be better prepared for technical interviews.

So the takeaway perhaps is that there is a right way and a wrong way to go about a Master's degree. If you're going into significant debt to zombie through the base requirements to get a piece of paper, in general you can't expect to get the same results as you would if you were highly intentional and strategic about where you go and how much you pay to go there.