There is a little more than just knowledge acquisition in grad school. your advisor, research partners and other researchers from other schools/industry are vital to learning your domain, how to (not) approach problems. Of course, some will say that I am talking about a PhD, but I think this applies as well to a Masters program (to a lesser degree of course).
I think with a little preparation you can address all these concerns. It is possible to find a mentor online to act as an advisor, and if you (for example) found a start-up in the field you want to study, then you can partner with other 'researchers' (co-founders) and industry(customers) partners. If you are diligent enough to create a well rounded learning track for yourself, it shouldn't be a problem to also include the valuable things you mention.
I'm doing my M.Sc in Software right now. I want to do a startup right after this is finished (August cannot come soon enough). The one glaring omission from your post is that there is no thesis!
My thesis is in something I am genuinely interested in, I'm doing "proper academic" research in a field that I can see myself working in full time after this is complete.
My classes are all just preparation for the thesis and using what I have learned in them to research & write something which can be given back to the academic and professional community.
Up-voted even though I don't think you are 100% correct. Its not so much a thesis that is needed, but something similar.
For example, I am embarking on an intensive self-study course, in a lot of different subjects. Instead of a thesis, I have given myself a bunch of objective, observable outcomes. These are 'things' that can be observed and/or measured objectively.
Due to the fact that I have a lot of varied subjects I want to learn/understand more about, I decided the best way to make my learning more efficient is to combine subjects as much as possible into these OO outcomes. Here are a couple of the outcomes I am working on, with the subjects that relate to them.
Herb Garden: Biology, chemistry(making own fertilisers etc) agriculture history, hydrology, genetics, molecular gastronomy, design and geometry
Risk-like game of different time eras: Military history, python, databases, data visualizations, dashboard design, social network design, math- probability and statistics, cartography skills, 2D artificial intelligence(bots), application of a few books on mil strategy: Art of War, Book of 5 Rings, Warfighting, and On War.
I am hoping that by having concrete things to build, it will force me not only to learn the subjects needed, but to really get a proper understanding of them.
I have taking this path because I realized recently that I have been starting to become a "Cargo-Cult Programmer". I can build software and get results, but not really understand why the results are what they are. I would like to change that.
At least in my master's program, I was advised that an MS without a thesis was essentially a terminal degree. If you want a research job at Google, you need the PhD, and if you want the PhD, you must do the thesis.
I was talking about 'rolling your own' degree. Of course if you are in university then you should do what is required. But if you are studying for knowledge sake, then the 'thesis' can take a very different form.
This is a great benefit of being a software developer. With a decent amount of motivation it's possible to increase our knowledge and skills by a huge amount.
The internet puts so much information at our fingertips. Especially in recent years there are so many new languages, databases, libraries, etc. that if you want to learn something you can just do it. You don't need to go through a masters program, or even through a training course for that matter.
This is true of languages and libraries, but learning entirely new concepts is harder. First of all, one has to figure out what to learn, and then actually learn it.
If you just start reading some of the code-bases you use (libraries, compilers, operating systems, etc) to find out how they do the things they do, you'll quickly figure out what you need to learn—it'll feel like having absolutely no idea how the code you're looking at works.
That really hits the nail on the head. I am currently trying to learn chemistry, and trying to figure out the what to learn part has been extremely hard. Even trying to get a handle on the correct terminology so that you can then search online for more information was hard enough. I am trying a two-pronged attack on this problem. First I am reading Asimov's short history of chemistry, to try to get a basic understanding of the field. Second, I am trying a couple of projects where I think chemistry could be useful, and so by exploration I hope to also get a handle on some aspects of the field.
If you really look at it, this is true for just about any field. For example, most of my mathematics education has come from the Internet or sources that were pointed out/purchased using the Internet. Other than giving you access to smart people face-to-face and a stupid piece of paper, the Internet can give you everything valuable about a college education and more.
(I know you can earn degrees online, but they are usually extremely poor quality and often inconsistent.)
What do you find is the problem with the MIT OCW? Personally I find it is a bit of a pain to work through their different tracks and to try to compile a complete list of materials, and put together a study program. I am also trying a logic course at https://oli.web.cmu.edu/ Not as many subjects there, but I like their approach so far.
I wish this method were more applicable outside of CS. Applied computer fields (meaning mostly programming, IT, DBA, networking, and the like) have more of an "it's what you know, not the letters after your name that matters" culture than just about any other field requiring any sort of specialized education that I know of. Unless it's for your own personal knowledge, going this route in a field like chemistry or biology will get you nowhere professionally (and may not even be possible in fields like experimental physics).
(Aside: the possible exception to this is Calculus and other advanced math classes, unless you are one of those people who absorb that with a minimum of effort; you either understand Calculus (et. al.), or you don’t, you can’t really just push your way through those one. YMMV.)
First day of my Calculus class: "This is a proof-based Calculus class! This means you must memorize these proofs for the test...".
Actually understanding Calculus is hard work. If you don't believe me, pick up Michael Spivak's Calculus book sometime. Regurgitating the exact formula for integration by parts or the difference quotient will get you nowhere in solving real mathematics problems, which assume that knowledge as a base-step and require you to apply critical thinking and creativity to actually get somewhere. But universities are run like a business: the more money, the better. Students who become frustrated and quit because they're too lazy and/or stupid to actually think do not give them money, so it's easier just to make the tests easy for idiots who spend all their time memorizing things without analyzing their meaning or worth.
Calculus and other math courses, and languages both computer and human, are skills - you must practice them to actually be able to use them. Memorizing proofs, or equations, or words, will not teach you the subject - at most they will teach you about the subject.
I agree. The special skill you need to really do mathematics - creative problem solving - is a very hard skill to develop in anyone. It seems like schools are taking the easy way out by not requiring you to use it that much.
tl;dr. This didn't need to go on beyond, "I'm not interested in jobs where a CS masters is useful." This was just a primer on being a decent software engineer.
He actually said he is not interested in jobs which just require you to have the piece of paper saying you have a CS masters, but more interested in jobs which require you have the knowledge a CS masters gives you. From this conclusion he then comes to the idea of just gaining that knowledge doesn't require you go to a university.
This was more on a primer on really thinking about why you want to go to university. Do you need the piece of paper? Or do you just need the knowledge?
Exactly. And honestly, it's basically a first draft vomited up onto the web. It's not as if it's a manifesto on education/college/etc, just some thoughts on the topic.
Of course it's not a "degree"... and yes, I have a bachelors degree, and this is what we learned also. That said, I just used an existing course list from _one_ graduate program in (yes) software engineering as a base.
The whole idea is that if you wanted to do this, you could make your own list of topics to cover. :)
If anyone is interested in a comprehensive course in video or website format, you should definitely check out the National Program on Technology Enhanced Learning (nptel.iitm.ac.in). It is an combined initiative by all the IITs, IISERs and IISc,Banglore staff. There are around 40 lectures in each course. This is not restricted to only CS, they have ECE, Mechanical, Civil, Mining, Ocean tech, Electrical and what not.
(You all may face some problem understanding the accent).