“Thinking like a painter” does not prevent Anne from making a significant technical innovation in the context of her fourth-grade computer culture. She is familiar with the idea of using two sprites to form a compound object. Her classmates and teachers have always done this by putting the sprites side by side. Anne’s program is like theirs in using two sprites, one for the screen, one for the bird. But she places them on top of each other so that they occupy the same space. Instead of thinking of compound objects as a way of getting a picture to be bigger, she thinks of compound objects as a way of getting sprites to exhibit a greater complexity of behavior, an altogether more subtle concept.
Thus, Anne’s level of technical expertise is as dazzling in its manipulation of ideas as in its visual effects. She has become familiar with the idea of data structures by inventing a new one — her “screened bird.” She has learned her way around a set of mathematical ideas through manipulating angles, shapes, rates, and coordinates in her program. As a bricoleur, her path into this technical knowledge is not through structural design, but through the pleasures of letting effects emerge. …
Do programmers “graduate” from bricolage when they develop greater expertise? Will Anne become a structure programmer in junior high? Our observations suggest that, with experience, bricoleurs reap the benefits of their long explorations, so that they may appear more “decisive” and like planners when they program on familiar terrain. And of course, they get better at “faking it.” But the negotiating style resurfaces when they confront something challenging or are asked to try something new. Bricolage is a way to organize work. It is not a stage in a progression to a superior form. Indeed, there is a culture of adult programming virtuosos, the hacker culture, that would recognize many elements of the bricolage style as their own. And interviews with graduate students in computer science turned up highly skilled bricoleurs, most of them aware that their style was “countercultural.”
In the case of computation, the existence of the countercultural style challenges the idea of one privileged, “mature” approach to problems. This challenge is supported by countercultural styles in other domains, for example, those observed by Gilligan in the domain of moral reasoning.