In my long experience as a coder, systems architect, and manager of teams, I have found that for most programming jobs a college degree in CS just isn't necessary. In my early days, few programmers or 'software engineers' even had CS degrees - we had history majors, music majors, a few math majors, etc. Music majors tend to do quite well as they are attracted to patterns and elegance.
Especially today, web programming is rarely concerned with developing deep algorithms, rather with assembling a set of tools. So a mechanical mind may do quite nicely, and a strong desire to make sure things are correct given all possible inputs - like an accountant, a good programmer won't be satisfied unless every 'penny' is accounted for.
When hiring, I often found the CS majors as having an inflated sense of their own abilities, and a general lack of knowledge of how programming is generally done in the real world - hacking on some other schmuck's broken legacy code that nobody can figure out. And a kid who started programming in high school and just kept working at it may have five years of real experience before they get their first job, and does it because he/she can't _stop_ doing it.
The company I work for now has a chief programmer who started writing games in high school, never went to college. He's pretty good, though he needs more real world experience to see how to prevent problems - that's the hardest thing, knowing enough and gettin the habits to avoid the bugs in the first place, which is only possible AFAIK in just experience.
Once they are in the job, then I would definitely encourage, even require, continuing education - go ahead and take some classes, read the books, try things out. Then they will be learning the algorithms, the techniques, in the context of what they already know.