Yeah this is a good recommendation. A Fibonacci heap is probably one of the more fiddly data structures I've implemented. (It was just a toy implementation.) Outputting dot helped with debugging immensely.

I usually have list of "bad examples" to run the algorithm on. You can tell a lot about an algorithm by how it deals with pathologies. I run it by hand on these examples. For randomized or online algorithms, you usually need to come up with highly asymmetric examples, as these types of algorithms are usually designed to take advantage of symmetries in the structure of the problem, and try to get the "worst sequence of coin flips".

A combination of a window plus some window markers (inspired by A Beautiful Mind, cheaper than a whiteboard and I have a nice view too) and a proof of concept implementation with a debugger. That usually helps me understand algorithms.