My dad trained programmers at IBM—this was way before any such thing as a CS degree—and he said when they switched from coding templates and once-per-day assembly runs to writing code in a terminal environment, his students consistently failed to complete their assignments.