This is not a beginner's book. It ends up being a kind of manual for program design and development. It does an excellent job giving you a variety of things to consider when approaching the construction of your own program as well as a fair number of exercises and variations on each to suit your p...