Before I took programming courses in high school and college (which did not teach me much besides new syntax for new languages), I started out with a Python tutorial that served as a general introduction to programming. It included variables, if statements, loops, etc. At that point I was so excited about programming that I picked up Learning PHP and I put my first web application together.
The problem I think I have is that I started out too quickly and consequently the quality of my code suffered. In fact, I would rather not look at the code I wrote 2 years ago ever again.
In summer I read Code Complete and The Pragmatic Programmer. Although I found them somewhat useful, these books seem to be targeted at developers with much more experience than I have. I did start using source control and try to adhere to the DRY principle, but basically what I am looking for are some resources (books, preferably) that would help me quit being a hacker and become a developer who is proud of the code he writes.