Programmers often discover solutions while explaining a problem to someone else, even to people with no programming knowledge. Describing the code, and comparing to what it actually does, exposes inconsistencies. Explaining a subject also forces the programmer to look at it from new perspectives and can provide a deeper understanding.

  • Canonical_Warlock@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 hour ago

    Not a programmer but at my last job I couldnt count how many times I would walk into our engineers office and start explaining a problem only to stop mid sentence and say “wait, I’m an idiot” then walk back out. Sometimes talking about it is all you need to make the pieces fit.

    • MoonRaven@feddit.nl
      link
      fedilink
      English
      arrow-up
      4
      ·
      57 minutes ago

      It might have escalated a bit after that though. There are hundreds of rubber duckies all around the office now…

  • fibojoly@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    34 minutes ago

    A corollary to this is that it’s often very difficult to explain what’s wrong because if you could explain it clearly, you would probably be fixing it already.

  • doesit@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    38 minutes ago

    I used to teach design. Before a presentation, I always asked my student to explain their project to someone with no knowledge on the subject, like their grandmother or so. Mainly to discover the logic flaws in their presentation.

  • da_cow (she/her)@feddit.org
    link
    fedilink
    English
    arrow-up
    1
    ·
    51 minutes ago

    While I havent explained my code to a rubber duck I did find The solution to my Problem just because I started to write it down in order to get help in a forum.

    • nullptr@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 hours ago

      the number of times I found the error, while describing the error on stackoverflow …

    • BorgDrone@feddit.nl
      link
      fedilink
      English
      arrow-up
      8
      ·
      2 hours ago

      No. Brainstorming is when you’re with a group and everyone is throwing out ideas unfiltered.

      Rubber duck debugging is when you are trying to solve an issue by describing your problem to another person (or a rubber duck) and through the act of describing the problem you gain a better understanding of the issue and often this causes you to get a ‘eureka moment’ where the solution is suddenly clear to you.

    • Snazz@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 hours ago

      I’d say brainstorming is what you do before writing code and rubber ducking is what you do to debug code that you’ve already written.

      They also work kinda differently. Brainstorming an idea is different from explaining it out loud, detail by detail.

  • becausechemistry@piefed.social
    link
    fedilink
    English
    arrow-up
    125
    arrow-down
    3
    ·
    10 hours ago

    Now, hear me out: what if the rubber duck burned tons of energy, poisoned the water and air, caused a global shortage of computer parts, was built with material without the permission of creators, made it easy to make nonconsensual sexual images of people, and lied to you?

    • Cellari@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 hours ago

      You can fix the world by putting an AI into the rubber duck without electricity and expensive parts and it still works!

      AI enhanced by that smile and those eyes and quiet posture helps solve problems :)

    • shrugs@lemmy.world
      link
      fedilink
      English
      arrow-up
      9
      ·
      6 hours ago

      Yeah, but it always tells me my ideas are good and he is wrong. So there is that

      • halcyoncmdr@piefed.social
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        8 hours ago

        exploit and traumatize developing country workers to filter nsfw/nsfl

        I’ve always felt like there’s a place in there for the early internet users through millenials (and maybe some early Gen Z) who spent a lot of time getting tricked by places like 4chan to see nsfl stuff and developed a tolerance to that sort of crap.

        I’m sure there are a lot of people that already gave up on humanity years ago and have the psychological damage/callouses to deal with that more than a random selection of a population that hasn’t been affected yet. Let the already damaged use that ability, like a super power, to save those who haven’t experienced enough to the point where they’ve given up yet.

        • oce 🐆@jlai.lu
          link
          fedilink
          English
          arrow-up
          2
          ·
          53 minutes ago

          I don’t think they care as much for minimizing trauma as they care for cheap labor from a developing country. I doubt there are a lot of 4chan users there.

    • 4am@lemmy.zip
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      3
      ·
      9 hours ago

      It’s a moron detector.

      Most of us would avoid it like the plague, but morons will let it write their code in the first place.

    • affenlehrer@feddit.org
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      9 hours ago

      But this rubber duck knows about programming. However, especially early on the duck lied a lot and now often insists that the API version it learned a year ago is still the latest and everything you’ve done with the new one is wrong. Well, now you l can let it read the new documentation beforehand but it’s still a weird rubber duck.

      • affenlehrer@feddit.org
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        9 hours ago

        I hope NPU hardware like CIX Clawcore will become more common for Developers. They can run 30B models locally and these smaller models are getting better and more efficient as well (MoE etc).

        The hardware still burns energy and resources and costs money but locally so you are responsible for it and don’t externalize everything into some data centers and investor / public money.

        • 4am@lemmy.zip
          link
          fedilink
          English
          arrow-up
          4
          ·
          9 hours ago

          I admire your optimism.

          You know what hardware is going to become common with developers? Dumb terminal tablets and cloud accounts, unless we stop the capitalists right away.

          • affenlehrer@feddit.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            3 hours ago

            You’re not wrong. At work I have the bizarre situation that I have a laptop which is pretty powerful but I’m not allowed to develop on it and have no admin rights on it so I have to remote desktop into a less powerful VDI running in a different country with exactly the same access to company information but I have local admin rights on that machine. Also development is super cumbersome because it’s a windows VDI so I have to use WSL2 for a lot of the things I’m doing. Really weird, inefficient and expensive.

  • LillyPip@lemmy.ca
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    4 hours ago

    This has a name? I thought this was just how it works. It’s why we think out loud.

    eta: thinking + speaking + hearing engages more of your brain. That’s obvious, right? More engagement == more connections?

  • kurikai@lemmy.world
    link
    fedilink
    English
    arrow-up
    24
    ·
    10 hours ago

    works even for non programming stuff. its letting our brain process the information in order ans organising it

    • pet the cat, walk the dog@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      35 minutes ago

      I write a lot of notes, because I can’t trust myself to remember details of any project after a day or more of hopping through multiple other tasks and online information onslaught. This particularly concerns any problems on which I get stuck — and whaddayaknow, writing out what specifically doesn’t work and how it should work, helps with realizing why it might not work.

    • cageythree@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      4 hours ago

      Yeah. I’m no programmer but I’ve had it often that I couldn’t find a solution for a problem myself, said ‘fuck it, I’ll have to ask the internet’, and by writing out what my problem was I figured out the solution so I never even posted the half-written posts lol

    • WHARRGARBL@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      8 hours ago

      I used to tutor college chemistry and calculus. I secretly sucked at both, but I knew what questions to ask students to start them thinking. They got excited to discover the answers while explaining it to me.

  • hperrin@lemmy.ca
    link
    fedilink
    English
    arrow-up
    5
    ·
    7 hours ago

    My wife is my rubber duck. She doesn’t mind when I explain the most jargon-heavy stuff to her.