MBA vs MS Computer Science
I took the question seriously and did some research and maybe a little soul-searching too. So what's best? MBA vs MSCS Here's my conclusion:
MS Computer Science
An MS in computer science is time sensitive. Once your degree is 20 years old, it doesn't hold much value. To stay current and valid, an MSCS (masters in computer science) needs to get certifications and complete ongoing education. Right now, there are massive layoffs in the technology sector. Older companies like Sun Microsystems are laying off lots of people with 20+ years of experience in technology. Supposedly lots of these people are computer science graduates. Sure google & facebook are hiring fresh grads, but more experienced people in the industry are getting laid off just as quickly.
(Assume education at an elite school) Immediately after graduation, an MSCS can earn $100k per year (+/-15k), while only working 50 hour a week in a cushy environment where they can dress casually and play billiards or other games during their breaks. Right now there is a big push from google & facebook to hire all the best graduates--so computer science salaries at the entry level are on the rise. However, I have read claims that long term computer science salaries are going down.
The large number of layoffs, and falling salaries at senior levels (in some cases) explains why the number of MSCS graduating every year is going down! Apparently, the salary ratio 20 years ago was 2.5x -- you could earn 2.5x your entry level salary eventually with an MSCS. However, today, the ratio is only 2.0x--you can expect to earn less than your MSCS predecessors did once you reach senior levels of experience.
MBA
An MBA from an elite school can lead to a job as an investment banker, strategy consulting, private equity, corporate finance, or other management roles. There are limited positions in Ibanking, Private Equity, and Strategy Consulting, and they are almost completely filled by just a few of the top schools. Probably the most rewarding work is in private equity--apparently, graduates from schools like Wharton that are lucky enough to get hired by private equity can expect salaries of $500k to $700k per year (and up).
Most MBA graduates agree that the networking which an MBA creates is substantially more valuable than the actual education. The reason is, if you go to a school like Havard, or Stanford, you can expect that most of your classmates will be successful executives in 10 to 15 years. MBA schools create some strong bonds between students who see themselves as being part of a very special elite group. Just an email or a phone call can easily re-ignite these old relationships--and being alumnus from the right school can and does often lead to great job or venture opportunities.
There are probably those that might somewhat regret earning an MBA. I would venture to say that very few of those people went to top schools; the salary curve heavily favors graduates of top schools, and so do the opportunities. Right now, the number of MBAs is growing annually. People have seen the gravy train and they want a ride. However, some don't understand that an MBA from a poorly ranked school is a commodity. The true value of an MBA is the networking and the reputation you gain from going to a top MBA program. Without that, the MBA is not worth much at all. In fact, supposedly (according to some bloggers), the actual education for MBAs is actually quite outdated at many schools. While case studies do help with problem solving skills, what you learn, ends up being less important than where you learn it (hopefully a top MBA school) and how you learn it (team environment).
MBA vs MSCS
An MBA usually requires 3 to 7 years of experience depending on the school attended. An MSCS requires nothing other than a bachelors. MBA admissions expect well rounded, experienced, potential future leaders, with good test scores and grades. With an MSCS, no experience is required. MBA students participate heavily in a case study, team environment which creates a lot of bonding, and a lot of long term loyalty. An MSCS is a student of science, and the case study environment simply is not used (not the MBA format at least).
An MBA is the only way to get into the top strategy consulting, investment banking, and private equity jobs. However, it is also seen a mark of approval, or a sign that you're one of tomorrows future business leaders. Admittedly, a lot of these top jobs are truly horrible careers that pay very well, and take all of your time (and perhaps some of your 'life essence' too)--e.g. investment bankers should expect to work 80hrs+ per week. An MBA is the possibly the best degree to have if you want to go places in the business world. On the other hand, an MSCS is one of the best degrees to have if you want to go places in the technology world.
An MBA is like fine wine, because it becomes more valuable with age--that is if you build an excellent network of associates, your MBA could be your connection to CEOs and executives at top companies around the country. An MSCS is like milk that quickly becomes stale with age. An MSCS loses value as time goes by, as the knowledge you've gained, slowly becomes outdated (unless the MSCS works on certifications and education on an ongoing basis).
Sure, some of that theory knowledge is still great, but 20 years in technology feels like more than 100 years in the real world (i.e. a generations passes every few years in technology). Technology goes through a generation at least once every 10 years... Sure, the fundamentals in many areas stays the same, but the constant change can be difficult to cope with. The advantage that the MBA has, is that the knowledge itself is not what is valuable; its the networking & the reputation you gain (assuming you go to an 'elite school'). An MSCS from an elite school will surely still hold some reputation in 10 or 20 years. However, MSCS students are less likely to bond and network like MBA students-simply because they are not in the MBA case study / team environment.
Anyway, I think if a person loves technology, they can & will take that big risk with computer science. And if you love money *cough* business, you can & will take that risk with an MBA. In truth though, an MBA from an elite school with 20 years of experience doesn't seem a likely layoff candidate. And even if an MBA does get laid off, they can fall back onto their network of friends and alumni. While in fact, people with 20 year old MSCS degrees are getting laid off even as I am writing this. An MSCS will surely have some friends and acquaintances from their schooling, but it's just not the same level of networking and bonding that an MBA builds.
An MSCS is a good ticket in the near future to a cushy, well paying job. An MBA leads to elite jobs, many of which pay in the stratosphere, but they also require a commitment in the stratosphere. However, an MBA can also lead to many excellent cushy corporate jobs--although probably not as cushy as MSCS jobs. An MBA can potentially become more valuable with time, while an MSCS slowly becomes outdated. If you love programming, then an MSCS is worth the long-term risks. It is really difficult to gain entrance to an elite MBA school, due to the combination of requirements in leadership experience, grades and test scores. I'm sure it's not easy to get into a top computer science program either. But, an elite MBA program is definitely the harder of the two to enter. While MBAs from poorly ranked schools are commodities, an MBA from a top school is truly a treasure.
Summary
An MBA from a top school is like an entrance ticket to an excellent career in business. It's no guarantee, it's an investment, and like any investment there are associated risks. An MSCS is the same, except it will lose value with age, and its simply not valued as highly as an MBA (probably due to a general lack of real life experience in most graduates). Top MBA school graduates in 2009 could expect $150k per year on average, while top MSCS graduates could probably expect $110k per year on average. Long term an MBA appears to be a better choice, except for the fact that an MBA doesn't give you any actual skills. In contrast, an MSCS will help you gain some real skills related to software development and programming. If you don't mind being laid off in 15-20 years, an MSCS is an excellent ticket to enter a cushy software development job. If you don't mind the fact that an MBA gives you no actual skills, and many people will view you as overpaid, then an MBA is an excellent foundation for a successful business career.
And as usual, have a craptastic day!