Programming Books

Recommendations

Here are books that I have found helpful for getting better at programming and software engineering.

Languages

Effective Java by Joshua Bloch

This is the definitive guide to Java, covering its core features, idioms and pitfalls.

Kotlin in Action by Dmitry Jemerov & Svetlana Isakova

An excellent introduction to the Kotlin programming language by core members of its development team. It covers all the main features and idioms, with clear explanations of design decisions.

Design

Clean Code by Robert C. Martin

A great read about the basics of designing clean, extensible code from function-level to module-level.

Clean Architecture by Robert C. Martin

A follow-up to Clean Code which tackles the design of large systems, and how to properly manage the dependencies between their moving parts.