Comment Re:No, it's not time to do that. (Score 1) 299
>I can't tell you how many of these bozos who've learned in a "formal" setting can barely manage a coherent if/then statement, much less successfully complete even a small in-house application.
I'm going to start teaching CS in January. My approach will be to have the students writing code every class, which will be automatically tested by code that I write for correctness. If they can't get it done in class, they have until the next class (48 hours later) to finish it.
It is somewhat inspired by the code competitions I used to do. If a CS student can't write code to save his life, why is he taking a programming class?
>Granted, most of the self-taught crowd is weak on specialized algorithms and data structures
This is a bigger weakness than you think. Sure, some concepts like hashing and linked lists can be learned pretty quickly by an auto-didact, but the lack of formal training in discrete math means that their code all too often isn't correct. I can look at a recursive algorithm and immediately see when it was written by someone who never learned to do a proof by induction.
Also, their understanding of big-O notation is often (but not always) weak, and they'll tend to just try to use the one or two structures they understand for everything, which leads to inefficient implementations.