Pair programming
I find that there's 2 types of pair programming:
- when you need to move fast, the more experienced person drives
- when you want to teach, the less experienced person drives
The second option can be super frustrating but it's more effective long-term.
The first option is great for picking up on little techniques that the expert wouldn't even think to mention because they're so ingrained you forgot you ever had to learn them. Like jumping around a debugger or git grepping to navigate a codebase.
Always have a goal in mind.
Pair debugging is best. Pair refactoring with a specific outcome is amazing. Pair coding a new feature … eh.
Cheers,
~Swizec
PS: pairing is most effective before you start to code. Start every project with a little system design session and things will go smoother I promise