Note: these thoughts are intuition based and are not refined. I'd need 20 hours at least to make a text like this refined.

I'm a CS master student in Amsterdam. I feel I have more similarity to you since you're also from Europe. The US system is nuts, I don't get it. My current debt is gasps 3000 euro's! If I finish my master degree it will be looks in horror 300 euro's! When someone from the US thinks about giving advice, please know that educational systems are different everywhere. So you need to disclaim where your experience is based upon. Mine is based upon the Dutch educational system, where the whole experience was (back then) funded by the government.

Furthermore, the idea of a university and also the idea of getting a master degree (in The Netherlands) have different cultural connontations. In The Netherlands it is kind of a given to do a master degree after a bachelor. No one knows why, but I feel that a lot of children were raised with the idea to "finish school," and most people feel that getting a master degree is what "finishing school" is like (there are exceptions of course).

Should you get a master degree? I'm going to give you a very opinionated answer. I'd be delighted if people countered me, because my story might be dangerous to take at face value, though less dangerous than having no or not enough information.

I'm a programmer teacher myself right now and one thing I've never realized is that you need to keep pace. Some students fall below the pace, others above it and to some it's the right pace. Chances are high that you're either above it or below it, since I can literally divide my students into 3 equal groups.

Furthermore, my Dutch curriculum gave me a many many obligatory courses during my bachelor. It gave me some freedom in my master. This is bad. Get as much freedom as possible. I've noticed that -- on average -- obligatory courses teach me less useful things. In some cases, I did need to learn certain basics that I didn't want to learn, but more often than not: I learned some academic arcane wizardry that I'm never going to use again (or at least, chances are a lot lower).

By the way, good obligatory courses are everything that's involved with how computers work. So distributed systems, computer systems and the like. Other good obligatory courses are theory of computation, algorithms, etc. You're not necessarily going to use that knowledge but they teach you a certain way of thinking.

Bad obligatory courses: anything that has to do with ontologies (as an optional course it's great, as an obligatory course, not so much), research on Multimedia Systems (too in-depth), software engineering courses (if they don't have a practical/pragmatic basis and emphasis), basically anything that focuses too much on science and research. They're all great as optional courses, but having them as obligatory courses, no. Also, obligatory courses that only show powerpoint slides and academic research paper assignments are a no go. Even as optional courses I'd be wary to take these (from a pragmatic computer science standpoint, go ahead if you want to be more broadly educated).

The next thing that is really important is the student body. You want to be in a student body that suits your goals. If you want to overachieve during your studies, you need to go to a university of overachievers. If you just want to go solo at it, you need a university that's not getting in your way when you do that.

These 3 things:

- pace

- ratio of obligatory courses and optional ones

- the type of students that are here

Are all metrics to answer one single question: to what extent does this study program fit your learning goals and your learning style?

Anything below 80%, don't do it. Everything between 80% to 85%, meh. You'd want at least a 90% fit or higher to consider it to be worth it. Remember, if you have an 80% fit, that means that you'll most likely waste at least 20% of your time on university, time that you could otherwise spend on self-study and creating an amazing portfolio. Also, when the fit is 90%, then you'll most likely at least waste 10% of your time there, which is twice as less compared to at least 20%.

If I could do the uni thing again, I'd aim for a 95%, personally. Otherwise, I'd do self-study. Why? Well, self-study means that I need to create an eco-system for myself (support group, learning the right material, having discipline). When that eco-system is up and running it's very hard for any university to beat that. You know better what you need than any university program out there for most cases.

That's one thing I want to leave you with (another realization since I began to teach): there's no perfect university program for you. It's impossible, since it needs to cater to different needs for different students. I'm noticing I cater to the lowest performing students, otherwise they won't get anything out of the programming bootcamp I provide. This bores the better students. My 'duck-tape-style' solution is to give them a codeschool account (like fixing with duck tape, it works but.... yea I think you see how this is a quick fix). So by nature, study programs have to compromise. The only thing that could be a perfect fit is when you design your own curriculum.

The advantages of a 95% fit with a university program is in the synergy it provides. For a slightly lower learning rate you get:

1. contacts

2. experts who you can bother with questions

3. various incentives to study

4. a proof that you know this stuff (your degree)

5. a broader view

All these advantages elude to the point of: you don't have to setup your own eco-system (remember that discipline thing? Or finding outside help? It's pretty hard for most). If you're really good at doing that, then I'd say university is not going to help you. Consider the advantages of setting up your own ecosystem:
1. you have contacts with more work-experience
2. you know experts in more specific/niche fields
3. clients will give you a strong reason to know more
4. your portfolio is your proof
5. you'll have a more real-world view

The advantage of uni: you don't need to set it up. Most of it is already there. The advantage of doing it yourself: more tailor-made, more real-world experience.

To wrap this up, you need to ask yourself the question: what educational system (uni, work experience, self study or otherwise) will give me the most alignment to my learning style and learning goals? How do you progress the fastest, and can you have some sort of showcase (i.e. degree or portfolio or blog -- like Scott Young with his MIT challenge) of that progress?

Goodluck

Disclaimer: I finished psychology (bachelor + honours courses), business informatics (bachelor) and information science (master). I'm working as a teacher for a programming bootcamp nowadays and am in the final phase of doing computer science. I also didn't finish some studies, I dropped out of business school, twice (don't do business school, it's only powerpoints and some writing but nothing pragmatic). I'm recently beginning to learn how well I stack up to self-learned individuals and the answer is: about the same (since HN keeps me up to date with the real world).