Non-code books for programmers? I always recommend How Buildings Learn, by Stewart Brand. It's a well-written and elegant study of the lifecycle of buildings, and holds many lessons for anyone who realizes their software continues to exist and change.
http://amzn.com/B00AFZ3PI4
Brand says the three enemies of a building are time, money, and water. What are the three enemies of a program?