I took almost 30 years of professional programming to understand my real passion in it. Oddly enough it appears to be working with legacy code. Don't get me wrong, I don't like legacy code at all. I swear all the time, while I work with it.
But just think about it for a bit, legacy code comes already packed with all its real life usages. If it's a piece of big proprietary monolith, then everything is there. Just start your favorite IDE and let it help you. If it is some open source project, you're probably aware of some other projects using it. You may even have a chance to find them all, if you care to look really good.
Therefore, you can refactor all your way, basing your decisions on actual data, instead of guesses, like when you work with completely fresh code, which was never really used. And when you see that old rusty code improves after your changes, it feels sooo good. :)