I have been programming, non professionally for about 23 years and find I am a little stuck in my ways. I find a tool I like, and it stays that way for year after year. Unfortun
Personally, I learned a lot from watching lectures and tech talks posted by google. They have a ton of content about software engineering. Watching videos is obviously a very different learning experience than reading but most of the people are very intelligent and are talented speakers.
http://www.youtube.com/GoogleDevelopers
http://www.youtube.com/GoogleTechTalks