[psych, tech, Patreon] The Two Worlds
Dec. 1st, 2017 01:41 amCanonical link: https://siderea.dreamwidth.org/1368412.html
0.
There is a thing called "rubber duck debugging". It's a practice for figuring out mistakes in a computer program. When a programmer observes that their program is not doing what it should, but can't figure out why what they wrote doesn't do what they thought it would (so that they can change it so it does), they might, after scrutinizing their code to no avail, attempt this rubber duck debugging approach.
Rubber duck debugging is explaining your program, line by line, to a rubber duck.
"Rubber duck" is not a euphemism. It refers to the small plastic toy for use by small children, in the bath. As in the famous song, sung by Ernie, on Sesame Street, "Rubber Ducky, You're the One".
I swear I am not making this up.
Alec Morgana at ZenHub attributes the term to Hunt and Thomas' The Pragmatic Programmer, and describes it this way:
No.
Here
hwrnmnbsol tells the story of their own introduction to rubber duck debugging in another field entirely:
hwrnmnbsol has a different explanation, one I hadn't previously encountered: that doing so causes you to see it from the hypothetical answerer's perspective:
One is that they're not explanations of why rubber duck debugging works. They're proposed descriptions of how rubber duck debugging works. They're mechanisms. Whether it's by focusing the mind of the asker on fine details of the code, or causes you to see it from someone else's perspective, neither explains why do you need the damned duck?
Of course, you don't need the duck. In
hwrnmnbsol's story, they go on to use a picture of Newt Gingrich. Other people have related usefully explaining their programming problems to their pets. And of course, many have had the experience of beginning to explain their problem to another person, only to have the answer pop into mind before their listener can respond.
But what you do need to do, to harness the much observed rubber duck debugging effect, is to talk aloud.
The other thing both explanations have in common is that they start with the observation –
Yes. That's what rubber duck debugging does. It causes a change in how one thinks.
Let us be clear of what debugging without the rubber duck consists of: examining one's code, line by line, even character-by-character, trying to suss out the error. In sort, rubber duck debugging consists of doing pretty much the same thing as ordinary, silent, staring into a monitor style debugging consists of. Only doing it out loud.
Oh, the other potential difference is that you summarize the function of each line as you come to it, explaining to the duck. Perhaps most programmers don't do that when trying to debug their code in the privacy of their thoughts, and that is what introducing the duck does?
No, rubber duck debugging, as generally understood, requires talking aloud to the duck; trying to explain to the duck in your mind is not generally understood to be as effective (if at all effective!) as explaining to the duck aloud.
Put another way, for whatever reason rubber duck debugging works, the cognitive change effect only kicks in when you attempt to work through the problem with outside voice instead of inside voice.
Outside voice is the words you use your vocal apparatus to make as soundwaves. Inside voice is the words you imagine in your mind.
Rubber duck debugging demonstrates a phenomenon, whereby using speech to describe a problem or question changes how one's mind works such that one successfully completes the intellectual task you couldn't when you tried to do it in the silence of your mind.
Rubber duck debugging demonstrates that our minds can react radically differently to the exact same cognitive challenge when we take it from the purely imaginal, interior world of our minds, and instantiate it physically as sound. Problems we cannot solve when we turn them around in our heads can – at least sometimes – become tractable, even immediately obvious, when we speak them aloud.
Hmm, problems that you cannot figure out, going around and around on them in your mind, but which become tractable when spoken: I know something else that works that way.
Psychotherapy.
"Wait," I hear an indignant voice, "Siderea, are you saying that getting psychotherapy from a psychotherapist is no better than explaining your problem to a rubber duck?"
First of all, don't be insulting the ducks. As I just described, they're apparently enormously helpful. Show some respect for their considerable contribution.
For another, pretty much all versions of psychotherapy involve the psychotherapist doing something for the client in addition to providing the client with a venue for speaking their inner problems aloud. But well nigh all psychotherapy involves providing the client with a venue for speaking the inner problems aloud. Some forms of psychotherapy (such as the kind I do) involve the therapist doing things to make the client more able to speak aloud things that are difficult for them to talk about, for reasons of either aversive emotions such as shame, or cognitive difficulties such as lack of language to describe their experience. Most forms of psychotherapy involve the therapist doing things to elicit verbalization by the patient, of their problems.
There's all this research claiming that how good the psychotherapy a given psychotherapist delivers, as evaluated by resolving client problems, depends not at all on what school of therapy the therapist belongs to, but how good a therapist the therapist is. This leads to study of the "common factors", those things that are done by all schools of therapy. As far as I know – and I no longer have access to these research databases – nobody's really investigated the therapeutic role of verbalization, to facilitate patients figuring out their own answers.
But given the experiences of programmers and others with rubber duck debugging, it sure sounds like this is a possibility in need of investigation.
"So, instead of paying money and having to travel out of my nice warm home to see a therapist, I could just explain my problems to a rubber duck?"
Yes, you could try that! It won't have the other things that therapists bring to psychotherapy, and your rubber duck – unless they are a particularly understanding rubber duck good at communicating a non-judgmental stance of unconditional positive regard – probably won't help you be able to say the things that scandalize your own ears to hear spoke aloud. But if you don't need those things, it may be very helpful to you.
In fact, if you can bring yourself to do it, you maybe can dispense with the actual rubber duck, or rubber duck substitute. There's this other thing people do, called "talking to themselves". And it may be that the reason people fall into the habit of doing that is because it actually helps them think clearer.
There are actually specific psychotherapy skills – things we teach patients – which entail speaking aloud to one's self, to bring about a change in mental functioning, such as saying aloud to oneself, "Stop!", when one starts ruminating pathologically.
So it would seem that psychotherapy, one way or another, has likely been utilizing this same phenomenon as rubber duck debugging: there's something about taking a problem that has been contemplated and explored only in one's own mind and bringing it into speech that changes how we think about it, to the extent that it can make insolvable problems solvable.
1.
Coming up on 100 years ago, Jung proposed a psychological theory that if you've been around on the internet at all, you know a bit about. He proposed these concepts of "extraversion" (sic) and "introversion".*
Or perhaps more accurately, "extravert" and "introvert". The root "vert" comes from "to turn" (same as "advert" meaning, "to turn aside"). An "extravert" is a person given to turning to that which is outside themselves. An "introvert" is a person given to turning to that which is inside themselves.
The concepts of extraversion and introversion as Jung conceived of them presuppose an important key idea: that we humans experience two worlds, an inner one and an outer one.
I don't think that's terribly controversial. There's nothing unobvious to what I'm describing. By "inner world", I mean that which we experience "inside" our minds (as if they were places!), in our imaginations and in our contemplative faculties. By "outer world", I mean everything else: rocks and trees and mosquitoes and the IRS and ice cream and the Crab Nebula and pandas and, above all, other people. You expect you have no trouble conceiving of minds this way, and possibly you find it very compelling.
But objectively speaking, there are not two "worlds", one inner and one outer. It's all one big contiguous world. We are made of matter and energy, just like everything else in it; we are part of the universe, not apart from it.
So this two world thing is phenomenological. It's how we subjectively experience ourselves in the world. Or, more accurately, it's how we experience our own minds. The "outer world" is our experience of experiencing, when we turn our attention to things outside our minds. The "inner world" is our experience of experiencing, when we turn our attention to things inside our minds.
So we might further say, our minds can be in one of two modes: either attending to that which is inside the mind, or attending to that which is outside the mind.
Jung's theory, as you know it, is that people seem to prefer attending to that which is outside their minds – extraverts – or to prefer attending to that which is inside their minds – introverts. But Jung didn't stop there.
Jung's theory proposes that there are four interesting things the mind does that seem to have something important to do with this whole introversion/extraversion, inside world/outside world thing. He called them "functions", which is a really good name for them, because they're four functions of the mind. They are, to paraphrase, the function of observing directly concrete reality, the function of observing indirectly by extrapolating abstractions from information, the function of syllogistic reasoning, and the function of value judgment. But the details of those four functions and what they do are not pertinent here. What is pertinent is that there are several of them, and that Jung proposed that human beings dedicate them to the inner and outer worlds
This is Jung's theory of function recruitment (and if you ask anybody other than a Jungian what "function recruitment" is – and sometimes even if you ask Jungians, you will get a blank look.) Jung's theory is that the process of growing from an infant to an adult entails "recruiting" – or assigning – specific functions to either the inner or outer world. Once a function is assigned, it stays "there", which is to say, it tends to be (or perhaps is only able to be) used exclusively for operating on stimuli either experienced as internal or those experienced as external.
Jung's theory has a bunch of rules about how this can happen, which wind up with everyone having two functions associated the "inner world" – functions we use when thinking about the contents of our minds – and two functions associated with the "outer world" – functions we use when thinking about things outside our minds.
Or put in the jargon of Jungian, one's functions are each either introverted (recruited to the inner world) or extraverted (recruited to the outer world.)
Which functions are inner and which are outer? Depends on the person; different people wind up recruiting different functions inwardly and outwardly. Jung wasn't trying to explain anything about cognition. He was trying to explain the diversity of human personality.
Jung's theory also holds that people pick (or have assigned to them by genetics or early environment) one function to be their favorite. This is the function they are most given to use, become (unless something hideous happens in childhood) most practiced at using, and are, in adulthood, most adept and comfortable using.
According to his theory, if your favorite function is recruited to the inner world, this is what makes you an introvert; if your favorite function is recruited to the outer world, this is what makes you an extravert.
This, then, may explain why introverts can be (and often are) described as people who find social interactions draining. One of the things that's "outside world" is other people. If your dominant function is dedicated to your inner world, and can only be accessed when you turn your attention inward, and cannot be accessed when you turn your attention into that outer world, where other people are, then when you do turn your attention to the outer world, you have to use a less favored, less comfortable function. A function the use of which is more effortful.
For introverts, focusing on the external world – which is where other people are – may be the psychological equivalent of a lefty trying to write with their right hand. Not impossible, but always taxing.
2.
Jung wasn't trying to explain something about cognition, but maybe he did anyway. This theory of function recruitment offers an explanation of the rubber duck debugging phenomenon.
Jung's theory of function recruitment holds that there are literally parts of our minds we can only use when attending to things inside or outside our minds, but not both.
If his theory is true, when we attempt to solve problems with our introverted functions, stewing on them in the privacy of our thoughts, and can't solve them with those functions, by forcing the problem out into the outer world, we can literally bring to bear entirely different parts of our minds, the part of our minds we extraverted.
So, from this Jungian perspective, it's not that rubber duck debugging makes your mind work differently. It's that rubber duck debugging makes you work a different part of your mind.
And so does psychotherapy.
I am proposing that what rubber duck debugging does is exploit function recruitment, by moving the problem from the inner world, where it can only be tackled by one's introverted functions, to the outer world, where it can be tackled by one's extroverted functions.
I am proposing that the way rubber duck debugging gets one to use "outside voice" (verbalizing aloud), instead of "inside voice" (thinking silently) is what toggles one from considering one's problem within the context of one's inner world, to regarding it as part of the outer world.
Perhaps – if this is all true, and I appreciate we're way out on a speculative limb of ramified syllogisms – it is the sensuous physicality of formulating words with one's mouth and larynx – or, for sign-language speakers, hands and face – that may trip one into outer-world attention. It may be that those physical sensations, themselves, invoke our attention outward. It may be that we associate so strongly by adulthood the physical sensations of speech production with engaging with the social, an necessarily outer, world, that we toggle into outer-world attention out of the habitual assumption that if we are speaking, someone else is there.
Perhaps it is the under-appreciated sensory experience of hearing one's own voice – as it comes out one's vocal apparatus and then comes right back in via one's own ears – or, for sign-language speakers, the analogous experience of seeing their own hands** – that may trip one into outer-world attention. It may be that hearing vocal speech or seeing signed words is so strongly associated with others that our minds in this regard effectively mistake our own utterances for indicating the presence of someone else, tripping us into outer-world attention.
These possibilities are not exclusive of each other, and may combine.
It would seem that together, they rather abruptly re-orient one's attention into outer world, when we speak, and activate one's extraverted functions.
3.
Taking a step back, I have just explained the concepts of introversion and extraversion in terms of preference for inner and outer worlds, where popular understanding of introversion and extraversion is social, a preference to do with engaging (or not) with people.
Well, "people" – meaning "others not ourselves" – is a subset of "all that which is not us". It is also the most representative part, to us. To H. sapiens, the ape that lives in vast hives, nothing about the world outside our heads is quite so salient and pertinent and just plain important to us as our fellow humans.
It's an error to conflate the ideas of "that which is not self" and "other people", but it's an understandable error to make. To humans, humans are the world. The most important part of it, anyway. The part that has agency and will come and kill us if we're not paying attention. We experience our fellow humans as representative of all that is outside us.
It should come as no surprise that we do, since we only experience our fellow humans when we turn our attention on the outer world where they always are, right?
Right?
Well....
[To be continued]
* He also made it very clear, at a couple hundred pages of very great length, that this idea was not original to him, but reflected through thousands of years of typologies of humans.
** My impression is that sign speakers do not have the same experience observing their own utterances as vocal speaker do, for several reasons: sign languages typically (all?) use facial gestures which cannot be seen, only felt, by the person making them; sign speakers do not look directly at their hands as they talk, so they only see their utterances incompletely and in passing; they see their hands from the reverse side and backwards. I wonder if this impacts the efficacy of rubber duck debugging for people whose first language is a sign language. Any Deaf hackers want to chime in? Your anecdotes are solicited!
This post brought to you by the 139 readers who funded my writing it – thank you all so much! You can see who they are at my Patreon page. If you're not one of them, and would be willing to chip in so I can write more things like this, please do so there.
Please leave comments on the Comment Catcher comment, instead of the main body of the post – unless you are commenting to get a copy of the post sent to you in email through the notification system, then go ahead and comment on it directly. Thanks!
0.
There is a thing called "rubber duck debugging". It's a practice for figuring out mistakes in a computer program. When a programmer observes that their program is not doing what it should, but can't figure out why what they wrote doesn't do what they thought it would (so that they can change it so it does), they might, after scrutinizing their code to no avail, attempt this rubber duck debugging approach.
Rubber duck debugging is explaining your program, line by line, to a rubber duck.
"Rubber duck" is not a euphemism. It refers to the small plastic toy for use by small children, in the bath. As in the famous song, sung by Ernie, on Sesame Street, "Rubber Ducky, You're the One".
I swear I am not making this up.
Alec Morgana at ZenHub attributes the term to Hunt and Thomas' The Pragmatic Programmer, and describes it this way:
Despite the silly name—and initially bizarre concept—rubber duck debugging is a popular, well-established programming practice. Even veteran programmers often use it to find problems and issues with their code. When nothing else seems to work, "rubber ducking" has saved many programmers from tearing their hair out in frustration. [...]But it seems to me that leaves a crucial detail out, something that's understood by active practitioners of rubber duck debugging. By that description, you might imagine that what rubber duck debugging looks like from the outside is a programmer, sitting quietly at their keyboard, with a rubber duck sitting on their monitor or desk, nearby. Perhaps from time to time, they silently stare at the rubber duck, brow furrowed in concentration.
As the name suggests, rubber duck debugging refers to debugging your code with the aid of a rubber duck. You describe and explain each step of your code, in detail, to the duck, until you notice the problem that's been causing the unexpected behavior.
The first step in rubber duck debugging is to obtain a rubber duck and place it next to your computer. If you're not near a bathtub, you could improvise by drawing a picture of a rubber duck, or finding a similar object.
Next, after exchanging polite greetings with the duck, start to walk through your code line by line. Explain the function and purpose of each line to the duck, and be sure to follow any logical branches or function calls that may take you to other places in the code base. Maintain a balance of eye contact between the duck and the current line of code so that you always know where you are, and use your finger as a pointer to the text that you're discussing.
If all goes well with the debugging, you should eventually notice the point in your code that has been causing issues.
No.
Here
Bob pointed into a corner of the office. "Over there," he said, "is a stuffed duck. I want you to ask that duck your question."So why does rubber duck debugging work? There are a variety of explanations frequently offered. Alec Morgana at ZenHub proposes some classics:
I looked at the duck. It was, in fact, stuffed, and very dead. Even if it had not been dead, it probably would not have been a good source of design information. I looked at Bob. Bob was dead serious. He was also my superior, and I wanted to keep my job.
I awkwardly went to stand next to the duck and bent my head, as if in prayer, to commune with this duck. "What," Bob demanded, "are you doing?"
"I'm asking my question of the duck," I said.
One of Bob's superintendants was in his office. He was grinning like a bastard around his toothpick. "Andy," Bob said, "I don't want you to pray to the duck. I want you to ASK THE DUCK YOUR QUESTION."
I licked my lips. "Out loud?" I said.
"Out loud," Bob said firmly.
I cleared my throat. "Duck," I began.
"Its name is Bob Junior," Bob's superintendant supplied. I shot him a dirty look.
"Duck," I continued, "I want to know, when you use a strap hanger, what keeps the sprinkler pipe from jumping out of the strap when the head discharges, causing the pipe to..."
In the middle of asking the duck my question, the answer hit me. [...]
I turned to look at Bob. Bob was nodding. "You know, don't you," he said.
Often, just the very act of breaking down the problem into simpler terms, piece-by-piece, is enough to make the issue apparent. It isn’t the duck that fixed the issue — it was your own doing all along. [...]This is a fascinating explanation in that it takes for granted that thinking about your code piece-by-piece, line-by-line is not "the usual programming mindset". That's not at all a foregone conclusion. In any event, Morgana proposes that explaining to the rubber duck line-by-line forces one to pay attention to small details one would otherwise miss.
Rubber duck debugging is intended to cure you of the "tunnel vision" that programmers often fall victim to by forcing you to acknowledge and explain each piece—it's as if you're looking at the code with a fresh set of eyes all over again. This gives you the benefit of having someone else help you examine your code without actually having to ask someone else for assistance. After all, in order to explain something to someone else, you first need to completely understand it yourself.
Why is rubber duck debugging so effective? It makes your brain switch tracks and work in a different way than the usual programming mindset. Rubber duck debugging requires you to slow down, stop taking things for granted, and process the realities of your code line-by-line. You pay more attention to smaller details, like variable names and typos, that could be otherwise easily overlooked.
Why does this work? I am not sure. I think there is something about framing your question as a verbal inquiry that causes your brain to work on it differently. You turn the question around and see it from another angle -- the angle of the person answering the question. This, in turn, causes your own brain to put itself in the answerer's shoes -- and, because we are basically clever apes, we have the tools to come up with smart ideas all on our own.But both sets of explanations have two important things in common.
One is that they're not explanations of why rubber duck debugging works. They're proposed descriptions of how rubber duck debugging works. They're mechanisms. Whether it's by focusing the mind of the asker on fine details of the code, or causes you to see it from someone else's perspective, neither explains why do you need the damned duck?
Of course, you don't need the duck. In
But what you do need to do, to harness the much observed rubber duck debugging effect, is to talk aloud.
The other thing both explanations have in common is that they start with the observation –
It makes your brain switch tracks and work in a different way than the usualand
I think there is something about framing your question as a verbal inquiry that causes your brain to work on it differently.– there's something about rubber duck debugging which causes a change in cognition.
Yes. That's what rubber duck debugging does. It causes a change in how one thinks.
Let us be clear of what debugging without the rubber duck consists of: examining one's code, line by line, even character-by-character, trying to suss out the error. In sort, rubber duck debugging consists of doing pretty much the same thing as ordinary, silent, staring into a monitor style debugging consists of. Only doing it out loud.
Oh, the other potential difference is that you summarize the function of each line as you come to it, explaining to the duck. Perhaps most programmers don't do that when trying to debug their code in the privacy of their thoughts, and that is what introducing the duck does?
No, rubber duck debugging, as generally understood, requires talking aloud to the duck; trying to explain to the duck in your mind is not generally understood to be as effective (if at all effective!) as explaining to the duck aloud.
Put another way, for whatever reason rubber duck debugging works, the cognitive change effect only kicks in when you attempt to work through the problem with outside voice instead of inside voice.
Outside voice is the words you use your vocal apparatus to make as soundwaves. Inside voice is the words you imagine in your mind.
Rubber duck debugging demonstrates a phenomenon, whereby using speech to describe a problem or question changes how one's mind works such that one successfully completes the intellectual task you couldn't when you tried to do it in the silence of your mind.
Rubber duck debugging demonstrates that our minds can react radically differently to the exact same cognitive challenge when we take it from the purely imaginal, interior world of our minds, and instantiate it physically as sound. Problems we cannot solve when we turn them around in our heads can – at least sometimes – become tractable, even immediately obvious, when we speak them aloud.
Hmm, problems that you cannot figure out, going around and around on them in your mind, but which become tractable when spoken: I know something else that works that way.
Psychotherapy.
"Wait," I hear an indignant voice, "Siderea, are you saying that getting psychotherapy from a psychotherapist is no better than explaining your problem to a rubber duck?"
First of all, don't be insulting the ducks. As I just described, they're apparently enormously helpful. Show some respect for their considerable contribution.
For another, pretty much all versions of psychotherapy involve the psychotherapist doing something for the client in addition to providing the client with a venue for speaking their inner problems aloud. But well nigh all psychotherapy involves providing the client with a venue for speaking the inner problems aloud. Some forms of psychotherapy (such as the kind I do) involve the therapist doing things to make the client more able to speak aloud things that are difficult for them to talk about, for reasons of either aversive emotions such as shame, or cognitive difficulties such as lack of language to describe their experience. Most forms of psychotherapy involve the therapist doing things to elicit verbalization by the patient, of their problems.
There's all this research claiming that how good the psychotherapy a given psychotherapist delivers, as evaluated by resolving client problems, depends not at all on what school of therapy the therapist belongs to, but how good a therapist the therapist is. This leads to study of the "common factors", those things that are done by all schools of therapy. As far as I know – and I no longer have access to these research databases – nobody's really investigated the therapeutic role of verbalization, to facilitate patients figuring out their own answers.
But given the experiences of programmers and others with rubber duck debugging, it sure sounds like this is a possibility in need of investigation.
"So, instead of paying money and having to travel out of my nice warm home to see a therapist, I could just explain my problems to a rubber duck?"
Yes, you could try that! It won't have the other things that therapists bring to psychotherapy, and your rubber duck – unless they are a particularly understanding rubber duck good at communicating a non-judgmental stance of unconditional positive regard – probably won't help you be able to say the things that scandalize your own ears to hear spoke aloud. But if you don't need those things, it may be very helpful to you.
In fact, if you can bring yourself to do it, you maybe can dispense with the actual rubber duck, or rubber duck substitute. There's this other thing people do, called "talking to themselves". And it may be that the reason people fall into the habit of doing that is because it actually helps them think clearer.
There are actually specific psychotherapy skills – things we teach patients – which entail speaking aloud to one's self, to bring about a change in mental functioning, such as saying aloud to oneself, "Stop!", when one starts ruminating pathologically.
So it would seem that psychotherapy, one way or another, has likely been utilizing this same phenomenon as rubber duck debugging: there's something about taking a problem that has been contemplated and explored only in one's own mind and bringing it into speech that changes how we think about it, to the extent that it can make insolvable problems solvable.
1.
Coming up on 100 years ago, Jung proposed a psychological theory that if you've been around on the internet at all, you know a bit about. He proposed these concepts of "extraversion" (sic) and "introversion".*
Or perhaps more accurately, "extravert" and "introvert". The root "vert" comes from "to turn" (same as "advert" meaning, "to turn aside"). An "extravert" is a person given to turning to that which is outside themselves. An "introvert" is a person given to turning to that which is inside themselves.
The concepts of extraversion and introversion as Jung conceived of them presuppose an important key idea: that we humans experience two worlds, an inner one and an outer one.
I don't think that's terribly controversial. There's nothing unobvious to what I'm describing. By "inner world", I mean that which we experience "inside" our minds (as if they were places!), in our imaginations and in our contemplative faculties. By "outer world", I mean everything else: rocks and trees and mosquitoes and the IRS and ice cream and the Crab Nebula and pandas and, above all, other people. You expect you have no trouble conceiving of minds this way, and possibly you find it very compelling.
But objectively speaking, there are not two "worlds", one inner and one outer. It's all one big contiguous world. We are made of matter and energy, just like everything else in it; we are part of the universe, not apart from it.
So this two world thing is phenomenological. It's how we subjectively experience ourselves in the world. Or, more accurately, it's how we experience our own minds. The "outer world" is our experience of experiencing, when we turn our attention to things outside our minds. The "inner world" is our experience of experiencing, when we turn our attention to things inside our minds.
So we might further say, our minds can be in one of two modes: either attending to that which is inside the mind, or attending to that which is outside the mind.
Jung's theory, as you know it, is that people seem to prefer attending to that which is outside their minds – extraverts – or to prefer attending to that which is inside their minds – introverts. But Jung didn't stop there.
Jung's theory proposes that there are four interesting things the mind does that seem to have something important to do with this whole introversion/extraversion, inside world/outside world thing. He called them "functions", which is a really good name for them, because they're four functions of the mind. They are, to paraphrase, the function of observing directly concrete reality, the function of observing indirectly by extrapolating abstractions from information, the function of syllogistic reasoning, and the function of value judgment. But the details of those four functions and what they do are not pertinent here. What is pertinent is that there are several of them, and that Jung proposed that human beings dedicate them to the inner and outer worlds
This is Jung's theory of function recruitment (and if you ask anybody other than a Jungian what "function recruitment" is – and sometimes even if you ask Jungians, you will get a blank look.) Jung's theory is that the process of growing from an infant to an adult entails "recruiting" – or assigning – specific functions to either the inner or outer world. Once a function is assigned, it stays "there", which is to say, it tends to be (or perhaps is only able to be) used exclusively for operating on stimuli either experienced as internal or those experienced as external.
Jung's theory has a bunch of rules about how this can happen, which wind up with everyone having two functions associated the "inner world" – functions we use when thinking about the contents of our minds – and two functions associated with the "outer world" – functions we use when thinking about things outside our minds.
Or put in the jargon of Jungian, one's functions are each either introverted (recruited to the inner world) or extraverted (recruited to the outer world.)
Which functions are inner and which are outer? Depends on the person; different people wind up recruiting different functions inwardly and outwardly. Jung wasn't trying to explain anything about cognition. He was trying to explain the diversity of human personality.
Jung's theory also holds that people pick (or have assigned to them by genetics or early environment) one function to be their favorite. This is the function they are most given to use, become (unless something hideous happens in childhood) most practiced at using, and are, in adulthood, most adept and comfortable using.
According to his theory, if your favorite function is recruited to the inner world, this is what makes you an introvert; if your favorite function is recruited to the outer world, this is what makes you an extravert.
This, then, may explain why introverts can be (and often are) described as people who find social interactions draining. One of the things that's "outside world" is other people. If your dominant function is dedicated to your inner world, and can only be accessed when you turn your attention inward, and cannot be accessed when you turn your attention into that outer world, where other people are, then when you do turn your attention to the outer world, you have to use a less favored, less comfortable function. A function the use of which is more effortful.
For introverts, focusing on the external world – which is where other people are – may be the psychological equivalent of a lefty trying to write with their right hand. Not impossible, but always taxing.
2.
Jung wasn't trying to explain something about cognition, but maybe he did anyway. This theory of function recruitment offers an explanation of the rubber duck debugging phenomenon.
Jung's theory of function recruitment holds that there are literally parts of our minds we can only use when attending to things inside or outside our minds, but not both.
If his theory is true, when we attempt to solve problems with our introverted functions, stewing on them in the privacy of our thoughts, and can't solve them with those functions, by forcing the problem out into the outer world, we can literally bring to bear entirely different parts of our minds, the part of our minds we extraverted.
So, from this Jungian perspective, it's not that rubber duck debugging makes your mind work differently. It's that rubber duck debugging makes you work a different part of your mind.
And so does psychotherapy.
I am proposing that what rubber duck debugging does is exploit function recruitment, by moving the problem from the inner world, where it can only be tackled by one's introverted functions, to the outer world, where it can be tackled by one's extroverted functions.
I am proposing that the way rubber duck debugging gets one to use "outside voice" (verbalizing aloud), instead of "inside voice" (thinking silently) is what toggles one from considering one's problem within the context of one's inner world, to regarding it as part of the outer world.
Perhaps – if this is all true, and I appreciate we're way out on a speculative limb of ramified syllogisms – it is the sensuous physicality of formulating words with one's mouth and larynx – or, for sign-language speakers, hands and face – that may trip one into outer-world attention. It may be that those physical sensations, themselves, invoke our attention outward. It may be that we associate so strongly by adulthood the physical sensations of speech production with engaging with the social, an necessarily outer, world, that we toggle into outer-world attention out of the habitual assumption that if we are speaking, someone else is there.
Perhaps it is the under-appreciated sensory experience of hearing one's own voice – as it comes out one's vocal apparatus and then comes right back in via one's own ears – or, for sign-language speakers, the analogous experience of seeing their own hands** – that may trip one into outer-world attention. It may be that hearing vocal speech or seeing signed words is so strongly associated with others that our minds in this regard effectively mistake our own utterances for indicating the presence of someone else, tripping us into outer-world attention.
These possibilities are not exclusive of each other, and may combine.
It would seem that together, they rather abruptly re-orient one's attention into outer world, when we speak, and activate one's extraverted functions.
3.
Taking a step back, I have just explained the concepts of introversion and extraversion in terms of preference for inner and outer worlds, where popular understanding of introversion and extraversion is social, a preference to do with engaging (or not) with people.
Well, "people" – meaning "others not ourselves" – is a subset of "all that which is not us". It is also the most representative part, to us. To H. sapiens, the ape that lives in vast hives, nothing about the world outside our heads is quite so salient and pertinent and just plain important to us as our fellow humans.
It's an error to conflate the ideas of "that which is not self" and "other people", but it's an understandable error to make. To humans, humans are the world. The most important part of it, anyway. The part that has agency and will come and kill us if we're not paying attention. We experience our fellow humans as representative of all that is outside us.
It should come as no surprise that we do, since we only experience our fellow humans when we turn our attention on the outer world where they always are, right?
Right?
Well....
[To be continued]
* He also made it very clear, at a couple hundred pages of very great length, that this idea was not original to him, but reflected through thousands of years of typologies of humans.
** My impression is that sign speakers do not have the same experience observing their own utterances as vocal speaker do, for several reasons: sign languages typically (all?) use facial gestures which cannot be seen, only felt, by the person making them; sign speakers do not look directly at their hands as they talk, so they only see their utterances incompletely and in passing; they see their hands from the reverse side and backwards. I wonder if this impacts the efficacy of rubber duck debugging for people whose first language is a sign language. Any Deaf hackers want to chime in? Your anecdotes are solicited!
This post brought to you by the 139 readers who funded my writing it – thank you all so much! You can see who they are at my Patreon page. If you're not one of them, and would be willing to chip in so I can write more things like this, please do so there.
Please leave comments on the Comment Catcher comment, instead of the main body of the post – unless you are commenting to get a copy of the post sent to you in email through the notification system, then go ahead and comment on it directly. Thanks!

Comment Catcher: The Two Worlds
Date: 2017-12-01 08:49 am (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 09:31 am (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 09:57 am (UTC)I'm also wondering about how this might be related to the fact that humans are the only primates known to deliberately teach one another, and even most small children seem to have a strong drive to teach others something they've learned. Nifty stuff...
Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 10:16 am (UTC)So from here it looks as if it's the context switching, not the 'speaking aloud' part that really counts.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 12:57 pm (UTC)I think this move from "inside voice" to "outside voice" is also something that I experience when journalling with pen and paper, which is an intermittent but important part of my own practice; there is something about physically holding the pen and moving it across paper that allows me different insights than I get from thinking-to-myself, some way in which my thoughts and feelings become more real to me if I write them down. Interesting to me is that this feels substantially different to me than typing; I do some of my "thinking" online, but typing e.g. Dreamwidth posts that nobody else but me can read turns out to be nowhere near as therapeutic as actually using pen and paper. I didn't really type much at all before I was around 11, and it was a few years later (when I discovered IRC, so I must have been 15 or 16) that I got any real fluency; whereas I was writing from a much younger age.
I wonder whether any of this is also related to issues around proofreading and pattern recognition. Proofreading prose text, when it's my own work, works best for me if I have it printed out and read it aloud, though one or the other will do in a pinch if I'm stuck. Proofreading metrical text that I know well (poetry, hymns), I actually have to read each verse in reverse order: the last line, then the second-to-last, and so on, or I will miss glaring errors. These are not texts that I consider myself to have memorised, but I clearly remember enough, with some part of my brain, to disregard what is actually in front of me. I think it's worse with hymns, but then I have more exposure to those than to other types of metrical poetry, and I'm also more likely to end up proofreading them.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 01:08 pm (UTC)This is why I find this often works for me to send an actual email to my actual boss when stuck on something at work -- some large percentage of the time when nailing down all the details to explain EXACTLY what I did in lab to an outside observer, by the time I've written the WHOLE question out I have an answer and don't have to send the email to my boss.
"Writing" it out without a SPECIFIC audience in mind doesn't work, but having a certain person who I have a good model of how I have to explain things to them is enough to kick over that function in my head to the other mode.
I have been saying the rest of what you have written here (in fewer words :) to people for years with regard to therapy and the support of friends and why "just go journal about it" doesn't work for me. For emotionally difficult things, I discover fascinating important things BY saying them out loud to a SPECIFIC audience, and other modalities Just Don't Work. "How come you didn't tell me this earlier?" "Because I didn't know it until it came out of my mouth" is an exchange I am very, very familiar with.
(no subject)
Date: 2017-12-01 01:27 pm (UTC)Yes, I was going to say a similar thing: it can't be literally talking aloud that's important for the rubber-duck effect, because email works too, both for me and for people who try to explain their problem to me.
(I know the latter because some of those people send the email anyway – they stop writing the explanation, finish off with '... oh, now I see!', and hit send, presumably in case I find it useful or amusing or both :-)
"Writing" it out without a SPECIFIC audience in mind doesn't work, but having a certain person who I have a good model of how I have to explain things to them is enough to kick over that function in my head to the other mode.
I think I'm somewhere in between: I've been known to experience the effect when I'm writing to a specific but unknown person.
For example, sometimes I become mistakenly convinced that my problem is due to a bug in the software I'm using. So I start writing a bug report addressed to the maintainer of that software – and that can often be enough to make me rubber-duck myself into the realisation that actually I was doing something wrong at my end.
But this still works even if I don't know the maintainer in question – if I've never interacted with them before, and the only thing I know about them at all is that they're some kind of software developer who has responsibility for this particular program.
(no subject)
Date: 2017-12-01 01:42 pm (UTC)(no subject)
Date: 2017-12-01 05:04 pm (UTC)I have had similar experiences when writing bug reports.
One thing I think made me an unusually good tester was that I would frequently send the detailed chain of actions -- and accompanying thoughts -- that led to what was, technically, a "user error" to demonstrate how the system in question *encouraged* that specific user error through poorly-chosen affordances. The nature of these affordances usually wasn't consciously apparent to me until I got to the point of explaining the original "bug" where I realized it was technically user error.
(no subject)
Date: 2017-12-02 04:45 am (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-02 02:57 am (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 02:56 pm (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 10:17 pm (UTC)My hypothesis is: they don't. That is, the people who understand that an essential part of effective programming is talking out loud are not the same people that think an open plan office is a reasonable environment to program in. The people making the decision to have open plan offices are managment. The people with the relevant, valid opinions as to what facilitates effective programming are programmers.
A whole lot of terrible technical decisions "made" by "organizations" can be explained by the fact organizations have internal status systems, and the frequent dynamic that the people making the decisions as to the disposition of resources are not the people who know how those resources would be best disposed, because the people doing that work and most familiar with its exigencies are lower status, have low or no authority, and aren't listened to, or asked, by the high status, decision-making authority figures. C.f. WordPerfect vs Microsoft Word circa 1988.
More on your other questions and comments later hopefully.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 04:52 pm (UTC)"[* Jung credit]"
Was that meant to ne a placeholder for a citation?
Content reaction:
This makes me wonder if the "making you speak out loud" mechanism is part of why (many) people derive value from speaking with psychics, mediums, etc.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 10:07 pm (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 09:38 pm (UTC)"Conversations between self and self as Sigmund Freud—A virtual body ownership paradigm for self counselling" (https://www.nature.com/articles/srep13899.) where they use VR to alternately embody you as yourself and Freud, so that you explain your problem to Freud(yourself) and then listen to your avatar explain their problem and give yourself advice as if you were Freud, then listen to Freud(you) give you advice, etc.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-01 09:59 pm (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-02 12:01 am (UTC)Beyond rubber duck debugging, for me, when my mind gets stuck going around in little circles, just getting up and moving around is often enough to jar it loose. (For really hard problems, sometimes I need to pace around and talk to myself.) You provide a good model for why that actually works.
Ooo, anecdatum: I like to listen to music (trance music -- repetitive, no lyrics, predictable patterns) while I'm writing code because it helps me focus. I have often described it as taking up the attention of some part of my mind that would otherwise distract me, but it hadn't occurred to me how completely literal that description might be.
So how do strong ambiverts, who go back and forth between introversion and extraversion, work under the function recruitment paradigm?
Re: Comment Catcher: The Two Worlds
Date: 2017-12-02 01:37 am (UTC)I like the idea of preparing for therapy with a rubber duck, in the same way you'd do the programming rubber duck thing before taking your bug to another human for help.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-02 02:30 am (UTC)Interestingly, I never outline when I'm writing fic. Or I kind of do, but in very limited detail (for an 11k leverage fic my outline was like.... 7 not-quite sentences). I do quite often think through scenes in my head without any externalization, and then just sit down and write.
That's kind of the other end of the problem from debugging (which I also often do either out loud or by writing things out), but it seems to be a similar issue of externalization of thought processes.
I also have ADHD which if i understand right tends to make externalizing things more necessary--and I'm a STEM person who's terrible at mental arithmetic, which seems to support the idea.
And in re therapy, the things that bother me most are things I can't make words about. If I can put it into words then I'm on my way to understanding it and then it's much less daunting, whatever "it" is. It's when I have feelings or memories or whatever that I can't explain well enough in words that I get really stuck and upset. My therapist's most useful ability is helping me be able to put words to things. Rubber ducks/journals can't help much with that.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-02 03:08 am (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-10 08:26 pm (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-02 11:44 pm (UTC)(Not sure if other people have the same phenomena or not.)
Re: Comment Catcher: The Two Worlds
Date: 2017-12-05 05:08 am (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-10 08:29 pm (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-04 02:19 am (UTC)I have sometimes solved, and seen other people solve, a problem by writing the question on Stack Overflow. Or, as others said, by composing the email or bug report. This doesn't involve vocalization but it does involve explaining the problem to another person (or group of people), and that means you can't take the shortcuts that you take with inside-voice debugging where you're talking to yourself. I can take shortcuts with me because I know me knows stuff... (Uh, grammar falls down here.) But if I want coworker Bob or some Stack Overflow user to solve my problem, I can't take those shortcuts. The extra steps and extra care needed to get it out of my head and explain it to someone else can cause me to see the problem.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-10 05:02 pm (UTC)Re: Comment Catcher: The Two Worlds
Date: 2017-12-10 06:03 pm (UTC)I would like to propose a non-Jungian explanation for these things, drawing on the theories which propose that the main purpose of reasoning is communication and persuasion: see e.g. http://www.dan.sperber.fr/wp-content/uploads/MercierSperberBBS.pdf . For example, experiments suggest that the amount of cognitive effort people put into their reasoning, depends on the extent to which their reasoning is challenged; interpreting some results of psychological experiments on human reasoning through this light, starts making human reasoning look much better than if the experiments were interpreted through the lens of a more classical view. From the linked paper:
The first studies that systematically investigated argument production used the following methodology. Participants were asked to think about a given topic, such as “Would restoring the military draft significantly increase America’s ability to influence world events?” (Perkins 1985) or “What are the causes of school failure?” (Kuhn 1991). After being left to think for a few minutes, they had to state and defend their view to the experimenter. The conclusions of these studies were quite bleak and highlighted three main flaws. The first is that people resort to mere explanations (“make sense” causal theories) instead of relying on genuine evidence (data) to support their views. However, later research has shown that this is mostly an artifact of the lack of evidence available to the participants: When evidence is made available, participants will favor it (in both production and evaluation) (Brem & Rips 2000; see also Hagler & Brem 2008; Sa´ et al. 2005). A second flaw noted by Perkins and Kuhn is the relative superficiality of the arguments used by participants. This can be explained by a feature of the tasks: Unlike in a real debate, the experimenter didn’t challenge the arguments of the participants, however weak they were. In a normal argumentative setting, a good argument is an argument that is not refuted. As long as they are not challenged, it makes sense to be satisfied with seemingly superficial arguments. On the other hand, people should be able to generate better arguments when engaged in a real debate. This is exactly what Kuhn and her colleagues observed: Participants who had to debate on a given topic showed a significant improvement in the quality of the arguments they used afterwards (Kuhn et al. 1997; for similar results with analogical reasoning, see Blanchette & Dunbar 2001).
The third flaw, according to Perkins and Kuhn, is the most relevant one here. Participants had generally failed to anticipate counterarguments and generate rebuttals. For these two authors, and indeed the critical thinking tradition, this is a very serious failing. Seen from an argumentative perspective, however, this may not be a simple flaw but rather a feature of argumentation that contributes to its effectiveness in fulfilling its function. If one’s goal is to convince others, one should be looking first and foremost for supportive arguments. Looking for counterarguments against one’s own claims may be part of a more sophisticated and effortful argumentative strategy geared to anticipating the interlocutor’s response, but, in the experimental setting, there was no back-and-forth to encourage such an extra effort (and participants knew not to expect such a back-and-forth). If this is a correct explanation of what need not be a flaw after all, then the difficulty that people seem to have in coming up with counterarguments should be easily overcome by having them challenge someone else’s claims rather than defending their own. Indeed, when mock jurors were asked to reach a verdict and were then presented with an alternative verdict, nearly all of them were able to find counterarguments against it (Kuhn et al. 1994). In another experiment, all participants were able to find counterarguments against a claim (which was not theirs) and to do so very quickly (Shaw 1996).
When people have looked at reasoning performance in felicitous argumentative settings, they have observed good results. Resnick and her colleagues (1993) created groups of three participants who disagreed on a given issue. Analyzing the debates, the researchers were “impressed by the coherence of the reasoning displayed. Participants . . . appear to build complex arguments and attack structure. People appear to be capable of recognizing these structures and of effectively attacking their individual components as well as the argument as a whole” (pp. 362 – 63; see also Blum-Kulka et al. 2002; Hagler & Brem 2008; Stein et al. 1996; 1997). It is worth noting that a strikingly similar pattern emerges from developmental studies (see Mercier, in press b).
To sum up, people can be skilled arguers, producing and evaluating arguments felicitously. This good performance stands in sharp contrast with the abysmal results found in other, nonargumentative, settings, a contrast made particularly clear by the comparison between individual and group performance.
If this view is correct, then it would make sense that people's reasoning is worse when they are just thinking by themselves, as opposed to when they are trying to communicate the same things to someone else. After all, under this view people carry out reasoning "on demand", in response to other people being skeptical or needing additional persuasion; if someone else becomes convinced or there isn't anyone present, then there's no need for additional reasoning.
Of course, if you're working on an unsolved programming challenge, then there is a need for additional reasoning: but that being logically necessary for solving the problem, isn't the same thing as the situation actually triggering whatever additional cognitive resources that are necessary for solving it. In that sense, the Jungian explanation and reasoning-as-argumentation explanation agree, in that they both suggest that addressing someone else brings to bear parts of our minds that would otherwise remain inactive.
Re: Comment Catcher: The Two Worlds
Date: 2017-12-10 09:00 pm (UTC)On the other hand, I've noticed that when a website sends me a temporary password via SMS that I have to type into their form, I can only remember 3 or 4 digits before I have to look back at the SMS for the rest of it-- but if I read the password out loud first, I usually remember the whole thing! I can remember the sensation of hearing myself speaking the digits, apparently better than I can remember the sight of the password from the SMS. Maybe memory is different from cogitation, but it's plausible that they both are influenced by the input medium.
(no subject)
Date: 2017-12-01 11:39 am (UTC)(no subject)
Date: 2017-12-01 11:40 am (UTC)(no subject)
Date: 2017-12-01 10:07 pm (UTC)(no subject)
Date: 2017-12-01 08:57 pm (UTC)For some reason I stopped talking out loud to myself several years ago, but recently I've been doing it again, and often in the context of counteracting bad self-talk. It seems to help.
(no subject)
Date: 2017-12-02 11:59 am (UTC)Further back, I remember hearing it described as the 'cardboard programmer' effect, in that you explain your problem to another programmer, and realise your error before finishing the question, so that the other programmer might as well have been a cardboard cutout for all the actual input they needed to provide. I've even heard of offices actually making a life-size cardboard cutout of some local personality for use in these situations.
(But 'cardboard programmer' is not in the Jargon File either, so there we go.)
(no subject)
Date: 2017-12-03 01:27 am (UTC)(
(no subject)
Date: 2017-12-10 08:32 pm (UTC)(no subject)
Date: 2017-12-03 01:25 am (UTC)"a major part of therapy is the process called 'guided discovery', which is essentially asking the right questions so that both the client and therapist can build a model and get some clarity on what's going on"
The Jung thing... doesn't quite feel right to me. It seems to imply that the primary use case for rubber ducking is people with introverted thinking?
(no subject)
Date: 2017-12-03 03:03 am (UTC)The phrase "people with introverted thinking" has a specific technical meaning per Jung/Type. Is that how you meant it? (I've been being a bit careful to avoid that specific technical jargon here, because reasons.)