Programming as Live Performance

As I'm writing this, twenty people are watching their peers write code. They aren't looking over anyone's shoulders, or doing peer programming - they're watching mirrors of screens at the TopCoder Open, seeing exactly how competitors work their way through algorithm problems in C++, Java, and C#.

Sharing code publicly is common, but there's usually more of a time delay. I might write code, beat it up for a while, and check it into a repository when I'm comfortable with it. The idea that other people might actually watch the process of that writing and beating up is moderately terrifying to me - but in this case, competitors seem totally calm about it. (Maybe it helps that their audience is at least thirty feet away, and it's hard to tell who's watching what.)

As always, it's results that matter. The audience might enjoy particularly smooth switching between coding and testing, watching solutions come together easily, but there aren't points in the contest itself for development style. It's a bonus for the audience, mostly fellow coders and competitors in related tracks.

Programming isn't likely to catch on as a stage show. Only a few people understand it, and, unlike in pair programming where people can become familiar with each other's practices and discuss them, this kind of programming broadcast gives viewers a fairly limited sense of what's going on.

Perhaps, though, there are more places where this might be worth exploring, at programming conferences and especially at sprints. Programming is more than just creating code in sequence. It's a complex process with lots of back and forth, tools that assist the developer, and shortcuts that become second nature to people who've spent a lot of time working. Screencasts already provide some sense of how people write code, but at least for me, a screencast is a pretty tightly scripted and edited production, much tighter than the way I actually write code. Recording a normal programming session (and maybe then overdubbing an explanation of what I was doing) would yield a very different result.

What do you think? Could watching great programmers be worth the time? Would you like to have these kinds of opportunities?


You might also be interested in:

3 Comments

Absolutely! In almost every other field of human endeavor, we learn by studying the work of the great practitioners who preceded us. Even in those domains for which we emphasize the product over the performance (e.g. painting, writing, sculpture, carpentry, etc.) there's much to be learned by watching experts at work. This is especially valuable when they possess the skill of verbalizing the thoughts behind the tangible process, including those cases where a mis-step is taken and the practitioner can explain how the mistake was recognized and corrected.

I think it would be interesting. Certainly, watching several people working on the same problem independently would be interesting.

Participating, being one of the watched instead of watching, does seem pretty terrifying, but it might be interesting too.

It is an interesting idea and provides a different outlook on programming than one can get from screencasts. I once tweeted about the idea of doing a live coding session (http://twitter.com/rbates/status/1728562812) and got an overwhelming positive response (many dozen).

However I am really curious if it will be that valuable to the viewer. If they do not watch the entire session from the beginning it will be difficult to follow.

If I ever do this, it will be on a schedule or sprint. The audience members will be able to chat and ask questions. I will have a partner/pair to filter these and ask questions orally. This way the viewers can provide some feedback and give a sense of interactivity.

News Topics

Recommended for You

Got a Question?