Nicola D'Oronzo

Front-end developer

Structure and Interpretation of Computer Programs

Harold Abelson, Gerald Jay Sussman, Julie Sussman

A complex, dense, mind blowing book...it is incredible how fast you get used to Lisp syntax

Game Programming Patterns

Robert Nystrom

A book that explains the most common and useful OOP patterns in the context of game programming, but this knowledge goes beyond this context. You can find techniques that give you a better understanding of complex design systems, i.e frameworks.

F# For Fun and Profit

Scott Wlaschin

I know it is not a book, but it is a great collection of lectures and articles about functional programming. Scott Wlaschin demonstrates that functional programming is not more difficult than Object Oriented Programming, it is just unfamiliar.

Refactoring

Martin Fowler

This book is the bedrock of my approach to programming. Refactoring is the only way to properly design continuously evolving systems. Don't repeat yourself, but still avoid to abstract too early. Let code smells tell you what is the best design pattern to apply.

Clean Code

Robert C. Martin

I've heard that this book is outdated. Not to me. What is clean code? This book gives you a great starting point, and also allows you to further develop your conception of what clean code means. I will always suggest this book to everyone starting programming.