Let's think about this for a minute. Most students earning their BS are around 20-22. Were very good at programming when you were ~21 with little to no experience?
I'd expect a 21 year old who studied computer-science to have programming experience outside school exercises, and not show any signs of sucking at it.
If this isn't the case I see no reason to expect them to improve to a level that they "can program your socks off" after another 2-3 years.
We can argue about what "bad at programming" and "program your socks off" means, but my main point is that there is no excuse not to have some programming experience by the time you graduate.
I'd expect a 21 year old who studied computer-science to have programming experience outside school exercises, and not show any signs of sucking at it.
If this isn't the case I see no reason to expect them to improve to a level that they "can program your socks off" after another 2-3 years.
We can argue about what "bad at programming" and "program your socks off" means, but my main point is that there is no excuse not to have some programming experience by the time you graduate.