1. 2

  2. 1

    I’m not sure I agree with the author’s use of “social” here to simply mean something that involves more than one person (if that were an appropriate use practically everything humanity does would be “social” and the term would lose its meaning) which results in a number of different activities being lumped together (notably the idea that “teaching requires interaction with others and one might want to teach programming to another therefore programming requires interaction with others” which doesn’t make a great deal of sense).

    Programming can be (and generally is) strictly social in the sense of people sharing a similar goal in most projects but that’s uninteresting and obvious.

    Probably more importantly, programming is inherently collaborative in the sense that abstraction allows the direct employment of others’ work in ways that are unusual in fields of human endeavor. To a certain extent, that’s true in any developed technical field since one is always using someone else’s tools and techniques but since programming is itself procedural specification and a properly specified procedure is the tool it’s particularly true in programming.