

- Refactoring by Martin Fowler, having patterns to help identify parts of code that could be changed for the better helps a lot.
- Test-Driven Development with Python, because testing is important and you should atleast have tests in mind when writing you code, even if you dont write them first. I like this one, because it’s very hands-on.
- Head first java by Sierra and Bates, good introduction to programming with languages that offer object orientation and not as dry as the gang of four book, but definitely aimed at beginners
- Fundamentals of Software Architecture by Richards and Ford, working as a programmer often means talking with big picture people or being one yourself, and they have their own strange language.
- Domain Driven Design by Evans, for a similiar reason as Fundamentals of Software Architecture.
- Neuromancer by William Gibson, because fun is important ;)