Both. Do not expect a college to teach you how to write good code; they won't. You can write terrible code and still get Cs/Bs. ("Cs get degrees") It's up to you to learn how to write good code. If you want to progress in your career, you will need to be able to write good, maintainable code, and that isn't a skill that's taught in college. If you're "that guy" on the team that writes shitty code, sure, you'll get a paycheck every month because management can't justify firing you when they're behind schedule, but you'll never get promoted, either.
That being said, having a degree makes it significantly easier to get your butt into a chair and have the opportunity to prove that you're a good programmer and deserve a raise. When you don't have a degree, the burden of proof is on you to demonstrate to the interviewer that you're a good programmer, and then the burden of proof is on the interviewer to convince HR that you would be a good hire. But if you have a piece of paper with the magical words "Bachelors of Arts/Science (doesn't matter) in Computer Science/Engineering" and there's a strong need in the organization for people, the burden of proof is on the interviewer to convince HR that you can't program and that HR shouldn't hire you.
It's a role reversal. It's the difference between "proof beyond a reasonable doubt" in a criminal trial vs "preponderance of the evidence" in a civil trial. With a degree, you can get a job just because you don't suck. Without a degree, you'll have to convince a startup CEO that you're a ninja/rockstar/MacGyver or whatever the buzzword is this month.
That being said, having a degree makes it significantly easier to get your butt into a chair and have the opportunity to prove that you're a good programmer and deserve a raise. When you don't have a degree, the burden of proof is on you to demonstrate to the interviewer that you're a good programmer, and then the burden of proof is on the interviewer to convince HR that you would be a good hire. But if you have a piece of paper with the magical words "Bachelors of Arts/Science (doesn't matter) in Computer Science/Engineering" and there's a strong need in the organization for people, the burden of proof is on the interviewer to convince HR that you can't program and that HR shouldn't hire you.
It's a role reversal. It's the difference between "proof beyond a reasonable doubt" in a criminal trial vs "preponderance of the evidence" in a civil trial. With a degree, you can get a job just because you don't suck. Without a degree, you'll have to convince a startup CEO that you're a ninja/rockstar/MacGyver or whatever the buzzword is this month.