One of the best beginner programming books. I was never really confident in programming until I worked through this book. It taught me so much; proper usage of git, persistence using a database, using a programming language that isn't verbose to the point of being confusing, TDD, and most importantly how to think through problems and think about the incremental design of new features. I purchased the hard copy of this book, but I'm amazed that it's always been free online!