Great article, on one of the Ubuntu mailing lists, titled my evolution as a programmer. It is written by a guy named Kragen Javier Sitaker and offers a pretty extensive overview of the different stages of mindset in the life of a software developer. It is worth the read if all you are interested in is a great list of programming books.