Working effectively with legacy code
As I say always, hope that any code that you have written is already legacy and will be improved in the near future. So the book
is a necessary reading for every programmer.
The book is also good for a fast reading when you have a problem, because the names of the chapters are relevant, such as “II ‘m changing the same code all over the place”.