All these concepts are accompanied by a ton of easy-to-read examples. After every chapter he also gives you some homework, because you learn coding by coding. After finishing this book you can also use the excellent Appendix for your reference.
I thought this was a great and very complete book. Definitely one of the best software books I’ve read in a while.
Get the book here (Amazon).