00:00:05.180
Thanks, Evan, and thank you to RailsConf for inviting me to speak today. My name is Emily, and I use both they/them and she/her pronouns. I'm an early career developer, actually a second-career developer, and I'm currently working at Shopify.
00:00:20.640
A few years ago, I started teaching myself to code. For the first year of learning, I was alone. Eventually, I enrolled in a boot camp where I experienced a lot of pair programming and was guided by technical coaches through their Socratic method. They didn’t just spoon-feed me answers to problems; instead, they asked me leading questions to help me find my own way to the right solutions. That experience was really my first taste of both pair programming and mentorship.
00:01:03.180
About three months after graduating, I was hired at Shopify. When I started my job, my lead paired me up with a senior engineer on my team who was appointed as my official mentor. He became my point person whom I could DM on Slack and ask questions anytime I needed help with anything or had a question about code. My mentor offered to jump on a call with me and help me work things out. He didn’t just give me the answers; rather, we worked together to find solutions by using our shared knowledge and available resources.
00:01:38.820
We were both assigned to work on the same project, so we ended up pair programming a lot—usually because I’d be stuck on something or felt like I needed a second pair of eyes on my code. When we paired together, I got to learn from his past experiences and benefit from his higher-level knowledge in certain areas. I also gained much faster access to and awareness of internal resources that I would have otherwise had to find on my own.
00:02:05.400
Through pairing with my mentor on the project, I was able to build my confidence in explaining technical concepts and communicating about my code. After a while, I also started pairing with other people on my team, working with individuals who had a wide array of knowledge and experience levels. I even got to pair with interns on things I was more knowledgeable about.
00:02:52.020
After a few weeks, something surprising happened: my mentor reached out to me on Slack and said, 'Hey, can we hop on a call? I want to get your opinion on something.' My opinion! I was genuinely surprised. Here was someone with eight years of experience ahead of me who wanted my perspective on some code. Obviously, I said yes, and we ended up working through the issue together. He listened to my opinions; we tried different approaches and were able to come up with a better solution together.
00:03:24.300
This started happening more and more until I realized we had exited our mentor-mentee relationship and had become true peers, working together to share our ideas and solve difficult problems. Through all of this, I had become a more valuable member of the team, able to make more meaningful contributions. And this is where we come to the theme of my talk, which is pair programming as mentorship. I see a lot of people treat mentorship as a conversation, and while having an open dialogue is a really important part of that relationship and process, I think that when it comes to early career developers, having a mentor who sits down and works through code with you provides much more value than just talking once or twice a week.
00:04:03.840
When you solve difficult problems together, you give your mentee the opportunity to build their confidence, practice their skills, and use you as a live resource. Additionally, you get to share your knowledge in real-time along the way. The benefit of this relationship isn’t only to the mentee. At some point during the process, hopefully at many points, there will be a role reversal where your mentee teaches you something you didn’t even know before.
00:04:31.260
Even if someone is early in their career, they may have experience with some technology or concept you’ve yet to learn. It’s always safe to assume that everyone knows something you don’t know yet. As a mentor, you also have the experience of re-solidifying your knowledge by approaching problems you’ve encountered in the past through a new lens.
00:04:56.520
If I had more time, I could dive into much more practical advice on how, when, and why to pair program as much as you can, including tips for accessibility and the comfort of all participants. However, since I only have a maximum of five minutes to share this with you, what I hope you take away from this is that pair programming is something you should enthusiastically embrace, especially in your role as a mentor.
00:05:21.480
If you’d like to hear a longer version of this talk with all that practical advice, I hope I’ll be invited back to speak next year. Thank you again to RailsConf for inviting me today. If you’d like to get in touch to chat about software development, pair programming, Ruby, Rails, or really good coffee, you can find me on Twitter at @thecodepixie. Thank you so much!