I know it is anecdotal but the majority of people I've worked with that are within about 5 years of college graduation with CS degree are among the least capable I've worked with. Among those that are self-taught and haven't a degree (or have a degree in an unrelated field), within their first 5 years or so are also among the least capable I've worked with. Those with degrees tend to be more stubborn mainly due to their indoctrination.
I don't mean any of this negatively. I myself am attempting to get my CS degree (dual computer engineering), after 15 years of practicing it and working up the ranks. For me, it is because it is what I want; I do not require it. There is little that I've been learning in these classes that I didn't already know. I studied all the books and topics on my own for many years before I took the classes in school. Being a practitioner I actually find the university frustrating as I have to be dumbed down to get a grade. When I complete an assignment differently than expected because there was a defect in the textbook (that I opted to correct) I get a bad grade (granted I wasn't asked to correct the mistake, but I don't like being forced into servitude, either, especially after being freely creative for so long before the class); funny considering revisions or errata of the same textbook eventually recognized and corrected the same defect. My statements are more a fact of the state of education and that I believe it does not truly adequately prepare students for life as a programmer. Rightfully so, CS is not software engineering, but most people opt for it because it is the closest available topic.
I do not have a college education, am a sr. software architect for a fortune 500 company, and I often end up teaching some of those CS undergrads a thing or two about when and when not to use certain data structures/algorithms, optimizations, or to stop thinking like a robot and make up their own mind about how to solve a tricky problem. I sometimes hold training for some of them and discuss how to augment the functionality of some data structures and algorithms to solve variations of the problems that those structures and algos are good at. I'd think they would have been through that already.
Electrical and computer engineers are different altogether, they are truly smarter than the typical CS grad of the one's I've encountered or worked with.
Most don't even know why GOTO statements are "evil". They never read the book (or heard of it) yet they religiously hold firm to avoid them because they would have had bad grades in class if they had used them. In other words, they are shoveled a level of dogma and do not quite think for themselves. Then when they come to me, they want me (or other mentor types) to hold their hand while they are afraid to do anything for themselves until some point in time where a light bulb goes off in their head and they realize that it is okay to think for themselves.
Not to stereotype, it is just an observation. Degree or no agree, certain people are made for code and other technical wizardry and others are along for the ride. In either case, their first few years in the work force and they are not very capable (with the odd exceptions here and there).
I've come to realize that CS actually really isn't about programming as much as people think it is. It's more or less a type of preparation but their first few years they don't have an anchor with which to apply the knowledge and think for themselves. Most people will need guidance their first few years; CS degree or not.
When it comes to hiring, that is the reason I don't care so much about whether they have a degree. If they can demonstrate ability to fill the open position competently, I'll hire them. It is not always easy to know whether the person is a good candidate, but when it comes to interviewing for positions related to high-performance computing and heavy parallel computations/computing, it is not so easy to fake your way through an interview. You can either do it or not.