Pair programming is when two developers are working together on a project in real time. Common practice is for one developer to verbally guide the other, while the other developer works directly with the code. It is important for the two people working together to do a check-in with each other to get a sense of how each is feeling. If someone hasn't had sleep or is dealing with something in their personal life, it may be important to know these things up front because they can affect productivity.
Many people assume that programmers work independently, but this isn't typically the case. Developers work with other people in teams. Pair programming can help you become a better team member and developer by learning from your pair and exchanging feedback. Pair programming lets us know where our strengths and weaknesses are relative to other programmers, so that we can work together to focus on improvement.
The Driver is the person who is in front of the screen working with the code, while the Navigator is directing the actions of the driver. Navigators will often be looking up code or other references to make sure the pair is on track. The driver's job is to "keep her or his eyes on the road," and let the navigator give all directions.