While the idea of pair programming is sometimes greeted with doubt, there is a growing body of research into its benefits.
It seems especially helpful for students, since working in pairs improves motivation, confidence and persistence (AKA 'grit', which is far more important for achievement than innate intelligence levels).
However, pair programming has also been found to be useful for experienced programmers. Even if they are working in an apprenticeship-style pair, their code is improved as they explicitly communicate their ideas to their partner.
The theory of distributed cognition helps to explain why pair programming is such a powerful tactic. Read the full infographic below to discover why.