I've been writing SAS (statistical programming language used by academics, among others) for about 13 years now. All false modesty aside, I'm pretty good at it - I know a lot of stuff, write pretty good code, and even (in my better moments) comment it fairly well.
One of the first lessons I "learned" when I started programming was to save changes to my programs regularly in case something happens (power goes out, the mainframe crashes, etc...). When I'm being good, I may have a save the current version in a new file every hour "just in case". Then, at the end of the day, I delete all the old versions and just save the daily changes.
Of course, when do I forget to save my changes? After I just put in about 8 hours of work. To make it more fun, the program takes about a half hour just to get to the point of the program where I made the changes. So, I not only wasted the 8 hours, I also have to wait 30 minutes just to get set up.
At least I can gripe about it to y'all while I'm waiting.