6 ms·
I realize my situation isn’t typical, but I’m retired and have dealt with depression most of my life. The thing I miss most about work (yes, you really can mis
by LatencyKills 8mo ago
I realize my situation isn’t typical, but I’m retired and have dealt with depression most of my life.
The thing I miss most about work (yes, you really can miss work) is collaborative problem-solving. At Microsoft, we called it “teddy bear debugging”—basically, self-explaining a problem out loud to clarify your thinking. [1]
These days, when I’m stuck, I open Claude Code and “talk it through.” That back-and-forth helps me reason through technical issues and scratches a bit of that collaborative itch that helped keep my depression in check.
[1]: https://economictimes.indiatimes.com/news/international/us/why-explaining-something-out-loud-clarifies-your-own-thinking/articleshow/128373563.cms https://economictimes.indiatimes.com/news/international/us/w...
- poszlem 8mo agoOr "rubberducking" as it's called now: https://en.wikipedia.org/wiki/Rubber_duck_debugging https://en.wikipedia.org/wiki/Rubber_duck_debugging
- righthand 8mo agoBut talking with an Llm isn’t teddy bear/rubber duck debugging because your llm has some high odds of outputting good feedback. Teddy bear/rubber duck debugging involves the other party not knowing anything about your problem let a lone even capable of giving a response (hence why it’s not go-ask-a-coworker/teacher/professional debugging). It’s about getting yourself to refocus the problem and state what you already know and allowing your brain to organize the facts. I’m not trying to be rude but it seems like you’re conflating collaborative problem solving with rubber duck debugging. You haven’t actually collaborated with a rubber duck when you’re finished rubber duck debugging.
- salawat 8mo agoRubber duck debugging is a null-llm offloading to your gray matter for the other half of interlocution. A fancy way of recruiting your other brain matter into the problem solving process. Perhaps by offloading to a non-null LLM, there is decreased activation/recruitment of brain regions in the problem solving process, leading to network pruning over time. Particularly in the event you take the position that the "tool" isn't something worthy of having it's inner state reacted to and modeled via mirror networks. But what do I know man, I'm just a duck on the Internet. On the Internet, no one knows you're a duck. Quack.
- righthand 8mo agoBut the point is that as soon as you get feedback and a response you’re back in traditional reasoning, puzzle solving, teaching, learning, etc. paradigm. Not in the rubber duck debugging paradigm. RDD is clearly defined as different. The GP is just choosing to remove the elements that make it unique but keep the metaphorical branding. Even bots responding is not RDD. Rubber ducks can’t respond or understand. You don’t send kids to Rubber Duck Debugging Class (you send them to School) because you can’t see the teacher in the classroom while you’re at work. You’re debugging yourself, not the actual problem per say.
- salawat 8mo agoRDD is using an external object, the rubber duck, as an external anchor from which to project sub/unconscious processing elements onto. Think about it. Your brain doesn't know the difference between imagining an interaction, and actually having the interaction. The passive duck, even as little more than a passive anchor to project mental faculties not currently employable without consciousness destabilization, still gets you into an "effective collaboratory mode" with yourself. Like have you ever tried and succeeded at RDD without the external focus? Tis' a pain in the ass. The addition of a model that isn't your brain* spitting out output just gets registered as just another message from somebody's brain matter, not yours. I am increasingly looking at generative coding with an LLM as having a substantive rewriting effect on expectations around how computers are capable of behaving. This isn't just transform hiding a pile of abstractions that our brains mirroring systems can accurately feed forward, giving us a sense of interoception and the ability to kinesthetically navigate and "feel" what we're doing with the machine or how the machine should behave given our inputs. It just does. It breaks the rules. We're helpless in the face of knowing or simulating what's next. This forces neurons to start to rewire. Rewiring and severing of old connections in times of great change, at least to me, comes with feelings indistinguishable from acute depression. Please don't ask how I know. It should, in theory, settle down given enough time to learn the quirks of a specific snapshot of a model, and probably flare up again after substantial changes to weights occur. Our brains, like it or not, are specifically designed to use anything outside themselves to "pour" subconscious faculties into. Just started messing with these things, and it at least to me seems to resonate.
- nottorp 8mo ago> involves the other party not knowing anything about your problem let a lone even capable of giving a response I prefer grabbing a colleague that is technical but does not work on this particular project. Seems to force me to organize the info in my head more than an actual rubber duck.
- righthand 8mo agoSure no one likes being seen ranting at no one either. Rubber ducks can be pencils, dogs, hamsters, and teddy bears, even friendly Carroll in accounting too.
- LatencyKills 8mo ago> But talking with an Llm isn’t teddy bear/rubber duck debugging because your llm has some high odds of outputting good feedback. That isn't how we did it at either Microsoft or Apple. There, we defined it as walking another engineer through a problem. That person may or may not have been an expert in whatever I was working on at the time. You truly aren't suggesting that rubber duck debugging only works when you don't receive feedback? I use Claude to bounce ideas around just like I did with my human teammates. I think you're being pedantic, but it doesn't matter to me: in the end, I work must better when I can talk through a problem; Claude is a good stand-in when I don't have access to another human.
- righthand 8mo agoNo I’m suggesting that RDD is not a mechanism to reason and solve your problem, but rather a mechanism to get your mind thinking into the problem solving state. It is asking you to physically repeat what is in your brain. The same as writing it out on a marker board or handwritten notes. Rubber duck debugging is about debugging you, not debugging the code. That’s why it doesn’t matter who you talk to about the problem in rubber duck debugging. The part where your colleague or Llm returns more information or advice is past the rubber ducking state. Depending on the difficulty of the problem you may not need to ask a colleague to lead you to water. And if rubber duck debugging can be done solo, what is the actual process you get from it as non-relative to you coworker/code assistant?
- byproxy 8mo agoYep, this, so far, proven the most promising use of LLMs, to me. I've read about people's Rube Goldberg machine-eqsue setups for getting agentic LLMs to work for them, but I find simply having a dialectic with an LLM to be more fruitful. Rubber-ducking with a duck that quacks back.
- magicpin 8mo agoHow do you prevent it from just taking the reins and writing an entire function or class for you when all you wanted to do was just talk about the code you already had.
- fzzzy 8mo agoYou don't turn on editing mode.
- sgc 8mo ago"Do not write any code ..." If you are using LLMs for highly restricted work, it is rather trivial to keep them in check enough to receive useful responses.
- lanyard-textile 8mo ago"No coding. (Explain|Debug|Analyze|Talk through) this with me:" "Talk with me first:" (Implying anything other than talking, like coding, would be a separate distinct step that is not to be done) Proposal is the best keyword imo if it fits what you'd like. "Propose changes you would make to (this repo|staged changes|latest commit)." "Propose alternatives." "Propose flaws." / "Propose flaws in my reasoning."
- LatencyKills 8mo agoI keep Claude in "planning mode" (shift+tab) so it cannot touch my codebase.
- FajitaNachos 8mo agoYou tell it to only talk about the code you already had.
- tclancy 8mo agoI've found something similar. I've been using Claude Code to build lots of things I would but fear failing at or hitting an iceberg. Having seen success for that, I've started rubber ducking it through a number of things. Changed the carburetor on my snow blower for the first time ever and with minimal pain mainly because "asking Claude about it" meant making myself stop and think through the process, plan an approach and put together a mise-en-place rather than starting, realizing I needed a couple of tools, leaving things a mess and not coming back due to anxiety. Basically, it helps me avoid what they called "gumption traps" in Zen and the Art of Motorcycle Maintenance.