Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin) (Paperback)
The book is structured like a course to improve their own programming style. It starts with the correct naming variables, over method name and the dividing long, confusing methods into smaller with clearly limited remit, to entire "clean" classe