The Nature of Code is a fantastic book about the world around us, programming, simulation, and beauty of math. I am in love. You will learn how to simulate natural systems of all kind. You will learn how intertwined math and nature are. I read this book to improve my user interface programming skills, but I learned much more than that. I'd argue that any software engineer should once at least skim through this book. Game developers, biologists, and physicists owe themselves to at least be aware of this book.
This book is not easy to read. I'd recommend doing a couple of passes. First, scan through and get some key ideas and concepts you'll learn after reading it. Then read a couple of chapters and decide if you need to dig deeper. Finally, go through the book once again and complete all challenges. I know I'll reread it at least twice more.