Hacker News new | comments | show | ask | jobs | submit login

Question here: how do you teach a new developer using pair programming?

When and how often is it the newbies' turn at the keyboard?

And as the senior feels slowed down, how can he then cope with impatience?

OP here.

I think it's often hard to tell. One way of addressing this problem is to eliminate the friction associated with switching roles.

We always pair with two keyboards, two mice, and two monitors plugged into the same machine. There's just too much friction associated with switching spots if you only have one keyboard.

If you don't have the equipment for that setup, you can set up a virtual pairing station with ssh and tmux pretty easily.

ok, definitely interesting to learn how you define "pair programming".

so basically both are fiddling around with the same cursor?

I guess you can skip the 2nd monitor and maybe the 2nd mouse

But yeah, 2 keyboards are a necessity

I think the physical space has a lot to do with it. If you are using one computer then it needs to be easily accessible to both people. Don't sit in a desk with the computer in the corner (ie. you don't want your partner sitting behind you).

The senior should assume he will be slowed down (if working with a noob). This is just a matter of how much patience the senior has. One easy solution is to take breaks.

I'm a fairly junior developer at Braintree. I spent two months this summer working in our West Coast office pairing with one of our most senior developers. I spent almost the entire time at the keyboard. The senior developer provided guidance, a sounding board for ideas, kept me from diving too deeply into rabbit holes, provided context about the choices made in the project, etc. It was one of the most rewarding experiences I have had as a software developer.

Another thing to mention is that we generally rotate pairs fairly regularly. A developer will work with others with very different levels of experience both in general and within Braintree.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact