Programming
Code complete is a practical introduction to software craftmanship.
The pragmatic programmer is a good introduction to sound programming practices.
Clean code introduces quality software practices showcasing different examples and good principles from the agile world.
Extreme programming explained can be extremely useful to teams and developers embracing a more agile way of working for the first time.