a violinist learns to program
When I found out I was going to be pairing with "Captain Code", I was curious to work with this snazzy computer program that would somehow mysteriously assist me in my programming learning. I envisioned a chirpy little bot that would come out with such pearls of wisdom as, "Ahoy there, are you sure your constant is defined, matey?"
Needless to say, Captain Code is a loveable pirate captain who retired from the high seas when his wooden leg was destroyed in a cricket match. He has a keen eye for detail, drinks just enough rum to be constantly jolly, and was never a very good pirate because he chatted too much to his captives, became their friends, and let them off for absurdly low ransoms. His profit margins were crap so he reinvented himself as a programming coach and joined a ukulele band.
Turns out Captain Code is a polite way of saying, "You're on your own today."
So after 2.5 weeks of intense pair programming, today I became a lone wolf coder.
To be honest, I was really looking forward to today. I have found the pairing process rather exhausting, being in such close contact with another human being for so long. And while I've certainly grown better at it, and worked out when to take breaks and how to communicate to make the experience successful, I was delighted to have the chance to work untrammelled by a pair's lunch schedule.
So here's my run-down of a day of solo coding.
What went well:
1. My own schedule! I took my lunch break when I wanted it!
2. Pomodoros - I was really disciplined about 25 minutes on and 5 minutes off, and that timer really helped make my day productive.
3. Error debugging - I hit a stride today in debugging errors/fixing failing rspec tests.
4. Code production - I finished the Single Responsibility principle, so am very happy that I've come this far.
What didn't go so well:
1. I was lonely. I figured working on my own would be a walk in the park, after many years of practising violin 4-5 hours a day alone. Turns out I like talking to people, and this was the first day on the remote course I felt like I wasn't getting enough human contact. This loneliness had a cascading effect:
2. I was grumpy because I was lonely.
3. I struggled to take breaks, because I was already grumpy so kind of figured I might as well keep on being a grump, and my grumpiness wouldn't affect a pair. (I took 5 minutes because of my pomodoros, but really would have benefitted from longer breaks as well.)
4. Accountability. I didn't slack off, but I really wanted to take an hour-long nap or watch TV and finish coding in the evening. This isn't an option when you're pairing, so the temptation never comes up. So I wasted mental energy combating this desire.
5. Not having a pair means you miss obvious things! I had to ring up my coach because of an absurdly stuck test and he spotted immediately that "Borg: 3 LS" and "Borg: 3LS" weren't the same - a pair would have spotted it.
I had wondered if the pair process was the best way of learning - it can be unbelievably frustrating to be at a different stage (whether higher or lower) than your partner - but after today, I can definitely say that I'd rather the frustrations and trials of pairing than doing much more solo coding.
So cheers to my cohort for being full of awesome pair partners!