The great thing about RefactorMercilessly is you don't even need to learn what the code does, first.
I like it! And when you're done refactoring, you can have wonderful, informative names and comments like:
// This code has been Braindead Refactored if(IReallyDontKnowWhatThisChecks()) { AndIHaventAClueWhatThisDoes(); }Both are wrong. Proper (non-braindead) refactoring is one of the best ways to learn a code base. But you need to be prepared to think and learn while refactoring.