Debugging your code is a fact of life. No matter how good we get, how experienced we are, how closely we have followed best practices, stuck to the spec, and thoroughly planned our code, we still frequently come up against occasions when the app just isn't doing what it should.
And at first glance, we don't know why.
Code shouldn't get messy, but it often does. Classes shouldn't become bloated, but some of them inevitably do. And the big picture should always be clear and illuminated by divine light, but sometimes it's just not. And so we have to find a way to move through the maze without getting lost and disheartened, while tracking down that errant, explicitly unwrapped optional.
Now, one chapter in one book (not even this one) is not going to be able to provide a magical spell to make clarity wash over you, leaving you enlightened and...