in reply to How do I become a good programmer?
I have found that experience is the best teacher... find something that you like and cannot stop. I know it seems silly, but writing command line utilities (okay, scripts and such that *act* like command line utilities) fascinate me. If I write something that *looks* like a utility (and can fool its user), that gives me no end of pleasure. My first major perl script I almost got fired for, because I went waaaay overboard with it... (and besides, there are a million broken link checkers that I could've used.). Bottom line, find a project, find people that have done projects similar to yours, and emulate, change, and make it work... most of all, though, have fun. If you can't stare at a screen for 8 hours and have fun, you're in the wrong business.
hope this helps!