Note that Legacy-code TDD is not the same process as new-code TDD, though there are similarities.
While working on your real code (this is not a toy exercise; we work on improving your existing production code), I coach and show the team:
Developers find it tough to see how to do this without someone experienced directly coaching them, and developers find it tough to actually change their moment-to-moment coding behavior without this in-depth experience. They invariably say that this coaching is extremely worthwhile.
The style of learning is mob programming, a great way to intensively increase the learning about the code within a team. How does mob programming work? There is computer projector and screen on which the code is displayed. There is only 1 computer. Each team member drives the computer for a short period -- usually 12 minutes. Then it rotates to the next person. Constantly during this period I am guiding the team in how to do legacy-code TDD, refactor to clean code, and improve/simplify their designs.