My greatest error was having my first programming job be an Access developer on Windows, and what I learned from it was to be a Perl and Linux zealot. :-)
Seriously, the single worst mistake that I made was to edit a production script so that it passed an accidental undef (rather than an argument) to a program (which I didn't write) that interpreted the lack of an argument as "send everything" rather than "bad data". The result was that I proceeded to attempt to send to Bloomberg's ftp site every file that they had been sent in several years - and I said attempt because the ftp server did not prove to have enough disk space to load all of these files.
As for what I learned, well, I learned a lot about the value of prompt apologies, having programs validate your assumptions, (later) to appreciate the typo checking from strict.pm, not to permanently leave stale garbage in a production directory, and several other lessons.
Unfortunately the developer who wrote the code that I was maintaining learned none of those lessons from the incident since he'd left the company and was not around to benefit from the experience. :-(