Comment by accelbred

17 hours ago

Pair programming is a great way to do knowledge sharing and collaborate on tricky problems. Now, I don't really want a multiplayer editor, but I'll highly contest that coding is solely a solo activity.

Sometimes I feel like people online hate all their coworkers. Thankfully, such people have not been highly represented amonst those I've worked with.

It's not hating coworkers. It's more that state of flow is not compatible with collaboration with other people. Getting to pair programming flow is basically like the neural "Drift" in Pacific Rim: it just doesn't work with two random people, or with shifting moods, energy levels or priorities.

  • There aren't that many good ways to mentor or share experience in a team without pairing though. Sometimes it's just better to sit down with someone and directly collab, and let the person with less experience do the driving so they get the muscle memory. This is an easy transfer of skill and knowledge and it works well because it's hands on.

    AI doesn't make that very easy if you're just two people staring at an agent, but I think a lot of people who aren't already senior are going to hit a wall they can't climb when their experience limits what they are capable of doing with AI.

    As with many things, usually the bad experiences with collaborative methods come from a specific implementation and those experiences become the bias.

  • I don’t get in flow but I do feel like it’s similarly productive though. Right where I would lull in energy or lack the motivation to think through something difficult I can unload some of that on the other person and feel like as a pair we are keeping each other accountable. Can be productive this way even without the same flow state.

  • You reach a different kind of flow state with two people, if you have chemistry. I think it’s a more productive flow state than the solo flow.

    But, it’s not 2x. Companies are cheap, they don’t want to pay for it.

  • It does happen, but it's very very rare. I met maybe 2 people in my career I could do this with.

    • That actually makes the "Drift" analogy perfect, because you have to be "Drift compatible", you can't just grab two people off the street and throw them in a Jäger together and have it work.

It's less hating coworkers and more enjoying the perfect logic that comes from interacting with a cpu versus the fuzzy nature of human moods etc. It's likely why a lot of people (myself included) got into coding.

Ah, now I hate all my coworkers because I don't want to share a keyboard. Incredible insight.

  • Bro I can drive the car alone why do rally racers have two people in the car? Now I hate my coworkers because I don’t want to share a wheel? Smdh

I read "coding" as literally the act of being in the text editor and writing the code, not the encapsulating job of defining requirements, desigining a solution, etc. which is definitely not a solo activity.

But I agree with OP that when comes the time of sitting down and writing the code, it is a solo activity. I want to lock in and not see multiplayer cursors or avatars popping up around the editor. The part before and after that are for collaboration, but writing your piece of the code is (or at least I like it to be) solo.

pair programming is when two people collaborate on engineering decisions while one of them codes.

  • Yea that never made sense to me. I think and solve problems as I code, and having someone yapping while I'm trying to do that is a great way to disrupt my thinking process.

    • You might be working on much smaller and well constrained problems, pair programming works well when the problem is unconstrained with many complex and interconnected layees

      1 reply →

    • In my limited experience, the 'pairness' part of pair programming , is best done in silence. The discussion / planning happens up front, the keyboard person does the implementation and the second person doesn't 'backseat drive', but thinks about test cases (writes it down), thinks about weaknesses (writes it down) and writes documentation while the code is written.

      All of these are reviewed before commit.

      The 'interrupting' while coding is the shitty part (I agree with you), not having someone working with you.

I am willing to bet there’s a strong correlation between people who post/comment on Internet forums and anti-social behavior.

There’s tons of reasons

- antisocial people

- larpers and students and shit who don’t even have a job where they write code but comment like they do

- people who don’t do shit for 3/4 of the day and don’t want to be accountable for that

- people who work with too many idiots

Probably lots of other reasons. Personally I think it’s fun and useful, but I wouldn’t want to do it exclusively. Maybe scheduled hours a couple times a week. LLM aided development can be very similar experience.

Also a great teaching tool.

Big part of my job currently is taking slop level Pinocchio prototypes and turning them into a real boy. I’ve decided that I’d much rather have all of the conversations these people have had with Claude when creating the project than the final code artifacts. Hopefully we get more tooling in that direction.

  • ASOCIAL people prefer solitude.

    ANTISOCIAL people doesn't care about society, are harmful towards other people, break laws, etc.