There is a website <a href="http://software-carpentry.org/" rel="nofollow">http://software-carpentry.org/</a> intended to teach scientists the basics of reliable programming.  It's python based and covers version control, debugging, shells, testing, and the basics of databases and other stuff that would be useful for scientists without computer training.  Since a lot of practical stuff like this isn't covered in any systematic way in most comp sci programs, it is useful even for people who have programming experience.