In this post I will try to explain the differences between the two approaches. I'll do so in a way which is more friendly for beginners, as the documents you'll find on GitHub are quite technical.
The performance is a number from 0 to 10, which indicates how well an employee did this year. It will determine how much of an increase the employee will get.
The reason our helpers copy instead of mutate, is that we, as the HR manager, want to compare the old and previous wages. We like to use the developer console to interactively run some simulations. When the employee is not actually mutated we can call our helper functions safely, without fear of mutating the data.