(The Necessary Skills of Agile Development specifically explains the knowledge of code refactoring, layering, and code smell in Agile software development, which is of great help to programming. The content of the book is not limited to Java.
Essential skills for agile development full version.pdf)