I throw this out there as a general wondering… But what if brand new software developers were taught Test Driven Development from the beginning? What if in CS101 along with learning to write StandardIO programs and other foundations of Computer Science, you were taught testing? I myself have seen how Test Driven Development has improved the quality of my code, given me more confidence while working, and helped me to approach problems from different perspectives.
Now, when I first learned how to program, I jumped straight into the functional code. I wanted to make things work quickly (which is often a good thing). But once my programs reached a level beyond the most basic functionality, automated testing could have been a huge lifesaver. Would my skills, opinions, and enjoyment of the software craft be different if I learned testing from day 1? We could certainly do a huge benefit to brand new developers by teaching them testing hand-in-hand with taking the first steps in software craftsmanship; if only so they are aware of the powerful tools available to them.
What do you think?