I’m 100.00% in favor of mentoring and, I hasten to add, regression testing. I mentor junior devs all the time but I don’t try to actually code while doing it.
I can get into flow pretty easily. And yes I know that some people don’t have the experience and self-discipline to plan out and execute a feature, which is why I’m so adamant about documentation; to write out a func spec you need a better grasp of the project than you start with and as you write, as you have outline points to fill in, you think of details you hadn’t realized you had to design yet.
Anyway I’m never going to be able to feel anything but revulsion for pairing. Go out and read what it’s done to some people; not being able to control one’s “personal space” can be very harmful, and a lot of people forced to pair program have ended up in therapy.
I’m one of them.