You are sitting side by side with an unknown person. One laptop, one programming idea. All you need is the working algorith you are both familiar with. You make one little step by another. This man is looking to you, watching how you do write your first test to cover the simplest scenario - red scenario. Then you give him a shot - he must implement the minimum to make the test green. And you repeat...
It's not very hard. But it is the first time you are working in the pair. You are so excited and scared at the same time. You think you will fail. But fault is not a problem. The problem is to see your mistakes and make any progress.
These feelings filled me when I touched pair programming at the first time. It was one year ago and I didn't had a chance to touch it again.
But these weekends I did.
These weekends I'd participated at great event in Kyiv - Coderetreat
Coderetreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. By providing developers the opportunity to take part in focused practice, away from the pressures of 'getting things done', the coderetreat format has proven itself to be a highly effective means of skill improvement. Practicing the basic principles of modular and object-oriented design, developers can improve their ability to write code that minimizes the cost of change over time.
24 people in one place are going to do pair programming during the whole day. 12 pairs. So many opportunities to learn.
The basis of the programming algorithm is the famous Conway's Game of Life. I would not describe the rules here, you can refer to the link. It's not necessary to select this particular game - you are free to choose any algorithms you want. The main idea is the pair programming and TDD.
You have a lot of people to choose from. Want to try the a language - select Ruby guy. Wanna NodeJS TDD session - welcome to guys from dark side :) Are you comfortable in .NET TDD - stay at your stack. Nobody will force you. You are the one who came here to make the progress in TDD and pair programming. You should push yourself out of comfort zone, and nobody will help with this.
My primary stack is .NET, but I touched JS / NodeJS also. Unfortunatelly I was not able to do pair programming with Ruby guy - he was looking for new languages too.
I learned a lot during this weekend session. The main idea is collaboration. You need collaborate with your partner to produce any idea. You need to talk and make decisions. You need to code like a hero and understand what kind of hero is your partner. You should ask all questions you want to be the better programmer at the end - hotkeys, algorithms, TDD idea and tricks, and so on.
Here is my advice. If you are feeling you are not good in TDD / pair programming, or if you are feeling you are OK, or maybe very good at TDD / pair programming - it does not matter. Just stand up, visit your nearest Coderetreat event, learn, teach, and have fun.
I want say thank you to organizers and wish participate again. See you there!