In my 10+ years of professional programming, I have suffered a lot of pain and unhappiness maintaining other people's poopy code (some of it my own >_>), and I have learned a lot about how to be a good programmer, and more importantly, a professional one.
I have been programming computers since I was 11 years old; the time before that doesn't count because I didn't have the slightest clue how to program, but knew I wanted to make video games. The weird thing was, by the time I was 13, I was hooked on structured programming and other "professional" programming methods. So even while writing my pathetic games on the Commodore 64, I took pride in writing specs, test plans and documentation as well as having beautiful code.
I worked in the video game industry for three years before realising what an exploitive, stressful and unfun crock it was, and that I'd rather play video games than code them. Then I went to work for an IT company that did consulting work for a specific electric utility. That company then got bought up and became part of a global conglomerate.
I still work on the same systems for the same utility, but I also architect and design new applications, teach the younglings how to code well, and bitch to my co-workers about the crap code they write.
After one particularly long, angry rant at Tim Horton's to a member of the choir, I realised I should share this information. I don't know if anyone will ever find this blog, but maybe, just maybe, my rants and wisdom will provide consolance to another angry, burning-out programmer working at 11pm on someone else's crap code...