I am curious about experiences of programmers who have gone beyond college or university and now work in the industry. I am not talking about academia (you need PhD there anyway). Do you have a Master's degree? Has it helped your career? Are there any other benefits besides the knowledge one gains while pursuing the degree?
It can surely help in getting your career started - getting your first, maybe second job. But after you have a few years of experience under your belt, then it's what you've actually done that matters.
A degree is, after all, just a degree. It's an indication that you've studied, but no more than that (nor less). Employers are interested in what you're going to do if they hire you. When they're trying to figure that out (in the interview), a degree is certainly better indicator than nothing, but actually completed real-world projects (or lack of them) are way better indicators than a degree (or lack of it).
Did Bill Gates ever graduate? Actually he did, in 2007, 30 years after dropping out of Harvard.
I took an MSc in Computer Science mostly for the fun of it, but also to assist my career. I wasn't expecting massive returns financially from my input, but it certainly opened my eyes to a lot of new areas of compsci that I had not touched on in my BSc. It really helps putting "University of Edinburgh - Distinction", and besides, it was a lot of fun, worked my ass but played just as hard too! Don't just do it for the career prospects, do it because you want to too.
I may be a bit of a special case because although I have an MS in Computer Science, my undergraduate degree was a BSEE. The combination has been the core of my freelance embedded software career (which I started about a year after getting my MS, some 32 years ago). I did my graduate studies over a period of six years, going to night school.
I know having a master's degree on my resume is looked upon very favorably in interviews (I've been told as much).
I think I also learned a lot more computer science in graduate school than I would have getting a BSCS, both because I took things more seriously (evidenced by a big jump in my GPA from undergraduate to graduate school), and because I wasn't distracted by taking all of the other required courses one must have to get a bachelor's degree.
Like many career questions, the answer is, "It depends..."
The single best programmer I have ever met didn't finish undergrad. He's heads and tails above everyone else, and it's obvious to everyone who has worked with him. It's inconceivable that he couldn't find a great job just by word of mouth. He's been a manager, architect, individual contributor - you name it.
Then there is the rest of us...
I've seen a masters in computer science help people in any of the following situations:
Less than 5 years technology experience.
- Non-CS undergrad.
- In a company with an academic bent. (Example: the old Bell Labs)
- Intellectually curious and bored at work.
- Strayed too far from technology.
- Want a differentiator in lieu of work experience. (Example: 5 year BS + MS)
In no way is it mandatory, but it can be useful. A lot depends on your intellectual curiosity.
Not sure how related my story is, but I actually double majored in Philosophy and Political Science, and programming was always just a hobby. When I couldn't find any "Philosopher Wanted" adds on Craigslist and realized that people wanted software developers I dove right in and found a job. I think that because it was a hobby and not just bunch of classes I had to take, I became very passionate about learning the field and tried to do the best i could to match my CS classmates. Well now I have good job as a developer, but am definitely nervous what could happen in the future when I apply for a software engineering job with a basketweaving degree. I'm leaning towards not getting it and waiting a while, hoping that connections and experience will pay off. I wouldn't count on it in the science/military sectors though.
A masters degree is not neccesary in the software industry. There are plenty of jobs you can land simply having an undergraduate degree combined with the right experience. Avoiding post-grad studies can save you time and money. Having said this, if you want to work for companies such as Oracle, Google, Microsoft, IBM etc then getting a masters/PhD is recommended.
Perhaps generally speaking it can help but it also depends on the hiring manager. I hire .NET developers to join my team. As a developer, I am pretty picky about who I hire since we're handling some seriously sensitive data and large sums of money as well. We are a small, agile, passionate team of software developers that range from high school grads to masters degrees in CS and even Physics. I don't really ever look at college degrees, or even work experience in your early years. I want to see how you communicate, get along with the team, handle real problems, and of course show me the code. You think you're a bad ass programmer? Show me the proof. You have to be working on some sort of open source project, have a github/bitbucket/CodePlex/etc... account with something going on it. Degrees are paper - it's all about what you can do.
For me personally, I joined a company that will pay for my Masters in CS. It's part of my decision on choosing careers. I choose to go after my MS because it deepens my knowledge of CS much better. In my undergrad I didn't get much exposure to AI, but in my Master's work so far I have, and that's far more rewarding and useful, to learn a new area of CS, than doing it strictly for potential job advancement.
I think work / real-world experience can go a long way too.. and personal projects..
Instead of going to school, set that time aside to build a really awesome system / service / website. Learn along the way and use the most current technologies you're comfortable with.
While I think that learning at a "schools pace" isn't bad, and good teachers are even more valuable, you can teach yourself a lot faster and learn a lot more, especially if you're fueled by ambition. It'll be easier for you to learn what you want, instead of trying to find a job that will give you that chance to get the experience.
By doing that you'll get a solid understanding of those technologies (hopefully) and when you're interviewing, you'll have examples of your abilities, instead of a piece of paper that says you can go to school, and how knows.. maybe you'll create yourself a job and be hiring yourself!!
For me, it adds a few years to my experience. Often you will see like 3-5 years + bachelors's or 1-3 years + master's in a job description, and it my case having a Master's degree has given me the benefit of the doubt. I started off as an FPGA designer, and now that I am a web developer, managers could care less about the years I spent doing that so the years the degree gives me are so valuable. Skillwise, no way! No difference in quality between a programmer with a bachelor's and a programmer with a master's. Many other things you can do to make yourself a better programmer
Whether it helps your career is hard to tell. Certain industries and hiring managers may have a preference for or against. You could get a job at a university without being an academician, but they prefer people with higher education.
It can help you be a better writer and consumer of research literature. Most of your courses will have a written component (they did the last course I took). A key is to have professors who will critique your writing and research and give quality feedback and force you to work at a higher level.
Of course, you can get by without it and learn this on your own. It's not a requirement and doesn't benefit everyone. Most people will get high grades, but not everyone gets the good recommendation.
To answer the question more directly, having an MSc is better than not having one. Speaking as someone who hires technical staff, if you take 2 very similar candidates, but the only difference is that one has an MSc, pending their performance in an interview, the MSc person will get the job. Also, on a related note, doing a degree (at least a recognised Computer Science degree for example) involves doing presentations, communications skills and various standard things that you would expect an employee to do.
Just by doing a degree and attaining one, a candidate proves something and provides a tick in a box which someone without a degree does not have. It is less relevant where candidates have a many years of professional experience.
I'm also thinking about a degree in computer science and I'm coming from what you might call the exact opposite end of the educational spectrum (B.A. in Speech Communication W/ some emphasis' - also unrelated to anything in the fields classified as "hard sciences".
One thing I've noticed a lot is an emphasis on experience trumping education, to an even greater degree than seems to be the trend in most every sector since the job market took a fall. I honestly feel like education has been getting a bad wrap.
I'm sure a lot of my reasoning is biased as I have the degree without experience and a job incapable of allowing me to achieve economic independence. Still, I think there are enough grounds for employers to give a little more weight to education than most seem to. Maybe its because of these stupid "online adult education - be a doctor in 6 months" new "universities", which seem more like business organizations (that somehow received accreditation) with primarily financial objectives as opposed to educational. Maybe they're graduates are giving education a bad wrap. Or, maybe the influx of Zuckerbergs and Gates' are overshadowing the value of education. One thing I do know, however, is that I know how to learn (in the truest sense of the word) and how to do so in a much more systematic manner than I could before attending a Cal State. And while my initial work experience (limited, but I do have some) has shown me that I lack some of the professional skills displayed by those with extensive experience and limited education, the quick manner in which I've been able to attain a good chunk of professionalism is definitely faster than what it takes the experience guys to increase their capabilities (But then again, I work at RadioShack, so...lol).
I think learning things you don't need to apply in the workforce teaches you how to be more effective at learning things you do.