DEV Community

Cover image for How pair programming can change your coding experience

How pair programming can change your coding experience

πŸ§©γ€β„‚π•£π•šπ•€π•₯π•šπ•Ÿπ•’γ€‘πŸ’‘ on February 07, 2023

As a self-taught developer, I have mostly spent my time doing online courses, following tutorials, coding and building projects alone. I hardly got...
Collapse
 
marcinwosinek profile image
Marcin Wosinek

You have a good point, pair programming can be a very effective way for a fast knowledge transfer or to let people figure out stuff together. I didn't have many opportunities to practice it, but every time I did, I was surprised:

  • how efficient it goes,
  • how tired I'm afterwards:)

As senior dev how onboard people, for people I onboard on a project, I usually:

  1. give small, well-defined tickets;
  2. ask them to ask questions when they get stuck,
  3. review closely their code.

When all points work as expected, I find this asynchronous approach almost as efficient as pair-programming.

Collapse
 
crispitipina profile image
πŸ§©γ€β„‚π•£π•šπ•€π•₯π•šπ•Ÿπ•’γ€‘πŸ’‘

Thanks for sharing! I am also surprised about seniors also getting tired ;)
I guess asynchronous also works but when getting hands into code, I find pair synchronous simply faster.

Collapse
 
marcinwosinek profile image
Marcin Wosinek • Edited

Yes, we doβ€”we are humans too:)

Yeah, pair programming is definitively faster, especially from the perspective of the learner. In case of async approach, you drop juniors at problems they will struggle with, and after they despair a bit you help them out. It's a trade-off between using senior time to save junior time (and a bit of their self-esteem too).

Collapse
 
chrisgreening profile image
Chris Greening

Really great reflection Cristina!

I'm in a similar situation being self-taught and working remotely with folks from all over the world and pair programming is hands down one of my favorite learning experiences/exercises

I was solo-developing relatively large codebases and projects before breaking into my first true tech job and it was Earth shattering realizing how much of an echo chamber I'd been learning in - I had to unlearn a couple of nasty habits that are fine when you're working by yourself but not so fine when collaborating and I'm significantly better off now having gone through that initial shock πŸ˜…

As clean and readable as I thought my code was didn't mean everyone else would understand what I was doing. Receiving critiques and feedback in realtime has dramatically improved my code's quality and maintainability in ways I wouldn't have thought of prior

Collapse
 
crispitipina profile image
πŸ§©γ€β„‚π•£π•šπ•€π•₯π•šπ•Ÿπ•’γ€‘πŸ’‘

That sounds great! Happy to hear that pair programming has also helped you improve a lot. Congrats!

Collapse
 
alvarolorentedev profile image
Alvaro

Pair programming should be the go to practice in any team.
I need to clarify is not only a tool for newbies to be onboarded or learn is a way to generate better code and actually achieve CD.
Its a peer review methodology that allows removing the overhead of async comunication that causes rework, and provides multiple points of view on the fly, specially if you apply pair rotations.
Actually, there are quite a few ways of doing pair programming, the one i enjoy and recommend the most is ping-pong, doing TDD and pair programming at the same time, is the best way of doing robust and minimal code that is not overengineered (very common among senior engineers).

Collapse
 
juzarantri profile image
Juzar Antri

Is there any platform for pair programming?

Collapse
 
crispitipina profile image
πŸ§©γ€β„‚π•£π•šπ•€π•₯π•šπ•Ÿπ•’γ€‘πŸ’‘

I would suggest you getting a mentor or joining any coding community like Freecodecamp or Codebar :)

Collapse
 
__masashi__ profile image
Masashi

Well, the feature exists on replit.com

Collapse
 
vulcanwm profile image
Medea

yea replit is really good for multiplayer programming

Collapse
 
Sloan, the sloth mascot
Comment deleted