Visit https://www.lullabot.com/articles/drupal-serialization-step-by-step to see an explanation of each step.
Click through the commits to see the incremental implementation of the normalizer. The commit messages contain a summary of what happened at each step.