Reference - Object-Oriented Programming in C# Succinctly by Sander Rossel - Solid Principle by Gaurav Kumar Arora - Java Design Pattern by Vaskaran Sarcar - Clean Code by Robert C. Martin - Effective Java 3rd Edition by Joshua Bloch - Working with legacy code by Michael C. Feathers - Refactoring to Patterns by Joshua Kerievsky - Pragmatic Programmer by Andy Hunt and Dave Thomas Fundamental Android - Android Programming: The Big Nerd Ranch Guide 3rd Edition - Kotlin in Action by Dmitry Jemerov - Kotlin for Android Developers by Antonio Leiva - BDD in Action by John Ferguson Smart Test