Having grown up in the era before Auto-Saves and Dropbox, I was constantly reminded that Ctrl+S was a shortcut that I needed to use every two minutes. If you didn’t heed this advice you were guaranteed to lose your work because that’s just how life worked back then. Did your PC just bluescreen? Lost your work. Power outage in your neighborhood? Lost your work. Accidentally pressed the power button on your desktop? You’re damn right you lost your work.
Perhaps the worst of these anecdotes I can recall was during college. During a programming exam we were reminded to save to the network drive and to save frequently. We had 90 minutes to complete the test. Just as the 50-minute mark was coming up I smiled at my work. I had breezed through the test and knew I had aced it. I looked around at the rest of the students as they toiled to solve the problems and congratulated myself by stretching really wide in my seat. While doing so, the PC’s power cord looped around my foot and I unplugged it. Karma got be for being smug.
Oh. God. No!
I rebooted the machine but my work had vanished completely.
The reason they insisted over and over again that you save directly to the networked drive is because when you rebooted these workstations they loaded from a backup. Every single time. This was to ensure that students weren’t leaving behind programs or code that they could use to their advantage during tests. I can also imagine the nightmare that it must be to maintain a computer that hundreds of programmers have been working on.
I called the TA over but there was nothing he could do. He shrugged and said, “Sorry. Just do as much as you can in the remaining time.” I wallowed in self-pity for about 30 seconds and then re-coded my programs from scratch. I still finished ahead of everyone and killed it. #humblebrag
The Upside
When I finished my exam the second time, two things happened: I was able to optimize my code and use fewer instructions to achieve the same result, and I actually realized that I had made mistakes in my first iteration that I was able to correct in version 2.
Realizing that you just lost hours of work in an instant is a horrible feeling. Anyone that has ever worked on a computer knows what that feels like and developers know that feeling better than anyone. The thing is, it isn’t the end of the world. You just have to learn to get over that initial dread, accept your situation, and start over again. Once you get the ball rolling you’ll be amazed at how fast you can rebuild what you created, and in the process improve in ways that may not have been obvious.
This doesn’t just apply to developers. I have friends that to this day will lose long emails they write (don’t ask me how that’s even possible in this day and age). The best strategy is always to save your work frequently and to have solid backups in place. I use Dropbox for storing project documents (it makes sharing easier), Copy.com for larger multimedia backups (they offer much more space on signup), and BitBucket and GitHub for actual version control on development projects.
Don’t let your loss get you down. When it happens, close your eyes, take a deep breath (scream into a pillow if you have to), and accept the situation as a (forced) opportunity to improve on what you did. You never know what new things you’ll learn on the way.
I’ve thought about this before but only as a passing thought. I never got to the gist of how exactly losing all your work could actually result in better work. Now I see. Thanks for putting this out there. Much appreciated.