I can only speak from personal experience, and preferences.
First, I am a software developer. So this only counts in that one single field. I have also been doing this for a long time (about 20 years), so again, make sure you account for that when reading.
As an applicant: I have found that a degree can help get past the HR person collecting the resumes. Some HR people really want to see that degree and will move those resumes up to the top of the list. Obviously this can be more important, of you have to go through 5 non-technical people to even get the interview with your soon to be boss. That said, once you're past the HR people I have found degrees to be absolutely worthless. In some cases even a hindrance (more later). What an employer wants to see is rather you have a skill set that matches their team and goals. These change frequently, and if your not staying on top of current trends and technology, then your doomed (in most cases). Most employers will ask you about skill sets, past projects, language skills, and the like, very few ask about education.
As a hiring employer:
- I take that stack from HR, and move all the people with CS degrees or the like to the bottom. If I see one with a Business degree, that counts a bit more.
- Then I set aside those with a CS degree, and re-order the remaining stack. If there is a person with a CS degree and a large chunk of real world experience, then I put them in the normal stack.
- I look for project, and languages, that seem close to what I want. I order those towards the top.
- Then I look for "years experience" and move those to the top.
- Then I take those resumes with a CS degree (that were set aside) and stick them on the bottom of the stack.
- I start reading the resumes and when I get to 5 I like, I put the rest of the stack in a drawer and start interviews.
Usually the "drawer stack" will have to be pulled for a time or two more, But in the end I want 5 people to choose from. Then those 5 get a call back, and a better "team" interview, and finally a choice is made.
So the stack is:
- Years Experience
- Relevant Projects and Languages
- Degrees in Business
- Degrees in CS (or similar)
Now, it's important to know that it's just "my way" and not everyone will have the same way of doing things. I don't like candidates with a degree in "computer stuff". I usually have to spend the next 6 months un-teaching them what they learned in school, and another 6 months teaching them real world (non-laboratory) coding skills. Degrees in business however are very helpful, I'm always looking for another developer that can do any kind of business level ROI analysis on the code that's written, but to be honest that's secondary to the ability to code.
Now with that said, this is my advise:
- Stop listening to your school "people" for advise on this topic. Instead do more of what your doing now, open it up to others. The school has a vested interest in keeping you enrolled. Others will give you a better sample.
- Ask other programmers what they think. A lot of other areas will want a degree. IT and Software development are a kind of odd ball situation in that respect. IT will favor Certifications over a degree any day, and Development will focus on experience and skill sets over a degree. Other trades/carriers will not have said focus.
- Stay in school while you figure it out, or maybe take a semester off to figure it out. But if you decide to stay in school keep your momentum.
- If you want to go into programming take a month or two and contribute to some open source projects that you use and find interesting. It will help your Resume, and give you a better idea what areas of programming you like.
- Go to a workshop/boot camp/training course. THIS IS REALLY IMPORTANT for you. You will likely get hired right out of this boot camp. Specially if it's a credible one. It will also give you a better idea of, and more confidence in, your chosen programming path.