This is something that bothers me, when people say "well you don't need a degree" as it trivializes the amount of work a person does when getting a CS or related degree. Yes, you don't need a degree, but you still need years of experience and aptitude for the field. A lot of people I've met who are working as programmers that don't have a degree were programming from a really young age. These people were already very experienced by the time they graduated from high school. If you are telling a person who is a complete beginner at age 23, that the only thing they need is code on GitHub, you are forgetting that it will take them years until they can actually have something interesting to put there.
I've yet to meet anyone who has gotten a good programming job without a CS degree, and no previous programming experience.
I work for a small startup, and so do a lot of my friends (before that I worked for a web company that does massive traffic, and thats where I met a lot of them). We've seen a lot of young people without CS/related degrees come through the pipeline. Here's the situation:
A lot of companies need code monkeys. They need you to push out web apps in a couple of months, they need you to make pages look pretty, they basically just need you to shit out code at an extremely fast rate. That is not a hard thing to do, any smart person can do it. It doesn't matter what the code actually looks like or does since they have 3000 users and their web, db, and batch server are all the same box (or on heroku, etc). You can start programming and become this person in a year, maybe even months.
Other companies are looking for engineers. These are the people who actually know how a computer works. They're the ones who can can keep your site running under heavy load, they're the ones who understand how complexity applies to a domain, etc. You can't become this person in a matter of months, you need a deep understanding of computational theory and/or real world experience.
I have interviewed countless kids from _great_ schools with physics/mech eng/math degrees. Those guys could build a website for sure. But when I asked some of them basic data structures questions, they looked at me like a deer in headlights. I don't want to hire these people. They aren't going to make me any better at what I do, and they're going to build things that are going to be a shitshow to maintain in the future. But small companies who just need code and have small bank accounts would be happy to have them, and I'm sure they can become great engineers in the future. No one starts good, you gotta get good.
Companies hire code monkeys for like 75k or less. That's great money in the grand scheme of things, and it's what startups can afford. Companies pay 100k+ for engineers, and that's on the low end (imo). (These are SF numbers).