> Creating useful one-offs is a long, long way from consistently shipping.

Yes it is. There is a lot of software, consistently shipped, that is shit. And if you honestly think creating one off items is useless, please go down to your local universities research department and tell me why one off items like robots, exoskeletons, autonomous quad copters, that came straight out of the university from the work of students means nothing.

>Software-for-fun, without constraints, is really, really cool, and completely unlike software in the private sector.

Yeah, as if students have all the time in the world to produce software without anything like a budget, or schedule, or progress meetings. Yup, we all take one class a term. That's why it takes us 4-5 years to graduate.

> This is the line that separates a very good, but very green programmer from a guru-level senior.

So, you want senior level, but you're willing to start from scratch by pulling people who have no degrees. How can you have any guarantee of a formal knowledge base? Why the hell would you want to waste time fixing things like style and teaching people software engineering (which isn't only about shipping product that you are so gun-ho about)? You do know software engineering is in most computer science curriculum.

> They will be rough around the edges on the CS side, but that's something you can fix with experience and training.

Something you wouldn't have to do if you pulled college students, like me for example.

> You ship product. You ship it a lot, either on your own, or you do it as part of internships with other companies, or you join active open source projects with strong leadership. You do not learn this from hacking on class projects or assignments.

I fail to see how that makes getting a CS degree worthless. It says that either a lot of junk is put out, or you are in the parcel business. Shipping code is something for product managers and sales people if you're working for a company. The Internet if you aren't. If you think that's what separates the men from the boys, see points 1-3. I wonder why I don't see a lot of books on shipping code when I go on Amazon or to the local book store... I wonder why... I guess we can all just forget about good software if "shipping code" is the grand answer...

Yeah, I've done an internship with a company and guess what? There are people without CS degrees that are commercially certified in the languages they develop in and suck. The code they ship is buggy with hardly any input validation and doesn't work according to customer requirements. There are people that don't even know OOP concepts, or even basic design patterns. They don't produce any UML diagrams because they use their own ass backwards design notation and they don't have a consistent development methodology.

> Lots of hustle along with experience are much more valuable than academic knowledge.

Except with my academic knowledge I don't need to be hustled or have basic, remedial things fixed. I can also identify problems with existing systems and solve them competently. I don't need to be "taught" basic practices. I may need to be refreshed from time to time, but I know "what" I need refreshing on and "why".

> And what percentage of CS graduates do you think will commit all of the above sins?

A low percentage. I've committed some, but my professor caught them and I fixed them. I don't have to be told those habits are bad by my boss. I don't need to be told how to do things efficiently. But hey, if you want to spend time fixing problems that programmers are clueless on, go ahead. So I ask the same question, how many programmers do you think can identify such problems and fix them themselves?

> Why wouldn't I value real world experience that actually trains shitty habits like this out of people?

Because I don't need real world experience to train those shitty habits out of me.