I disagree with you. I also disagree that you learn social skills in college, you learn social skills in grade school. You don't learn social skills in college, by that stage you either have them or don't.
You learn technical skills in college, yes, but I disagree that hiring a software engineer team purely based on having a CS degree will result in the best hires.
I would hire entirely based on real world experience. If you have none, I don't care if you don't have a degree too me you are about as useful as someone applying with experience as an accountant.
If you sit in school and then go home and spend the rest of the night reading a text book and don't code any open source projects or make something for your portfolio, you really shouldn't be part of a software team. You should either be in a lab somewhere or a teacher, as you are only interested in learning about the topic, not applying it. Anyone who is actually interested in the topic will come out of school with experience in something (internship, hobby, etc).
You disagree with me because you completely misinterpreted what I wrote. Potentially I think that the world 'correlation' is being misunderstood here. I implied nothing about the strength of the correlation. I only said I believe it to be a positive one.
I am not talking about "social skills" in terms of hello, please, thank you, etc.. I am talking about the soft skills of working in a team with other technical people to achieve a common goal, working under tight timelines, with pressure, and thriving under such situations. This is not an innate skill that you learn at a young age. I'm nearing my mid-thirties and still coming across new team dynamics.
By no means did I say that a degree means someone will perform well in such a situation, but in the absence of all other information, I consider a degree a positive signal in this regard.
Put another way, you are chosen to hire an engineer to work on your team. I give you two "buckets" filled with millions of people from which you can randomly select one person to join your team. You know nothing about these people except that in Bucket 1, everyone has a CS degree and in bucket 2, no one does. You know nothing else.
Which bucket do you pick from?
p.s. statments like this "If you sit in school and then go home and spend the rest of the night reading a text book and don't code any open source projects or make something for your portfolio" make it sound like you didn't go through the degree experience, because that sounds nothing like what most undergraduate-level educations are like. Sure there is theory, but it's a lot more hands-on than you're making it sound.
You learn technical skills in college, yes, but I disagree that hiring a software engineer team purely based on having a CS degree will result in the best hires.
I would hire entirely based on real world experience. If you have none, I don't care if you don't have a degree too me you are about as useful as someone applying with experience as an accountant.
If you sit in school and then go home and spend the rest of the night reading a text book and don't code any open source projects or make something for your portfolio, you really shouldn't be part of a software team. You should either be in a lab somewhere or a teacher, as you are only interested in learning about the topic, not applying it. Anyone who is actually interested in the topic will come out of school with experience in something (internship, hobby, etc).