How the Web helps people turn ideas into code

Publisher Summary This chapter investigates the role of online resources in building software. It focuses specifically on how programmers—an exemplar form of knowledge workers—opportunistically interleave Web foraging, learning, and writing code. To understand this, it presents both how programmers work in the lab and analyzes Web search logs of programming resources. The lab provides rich, detailed information and context about how programmers work; online studies offer a naturalistic setting and the advantages of scale. It was found that programmers engage in just-in-time learning of new skills and approaches, clarify and extend their existing knowledge, and remind themselves of details deemed not worth remembering. The results also suggest that queries for different purposes have different styles and durations. These results contribute to a theory of online resource usage in programming and suggest opportunities for tools to facilitate online knowledge work. Additionally, with ready access to good examples, programmers may need less training in languages, frameworks, and libraries and greater skill in formulating and breaking apart complex problems. It may be that programming is becoming less about knowing how to do something and more about knowing how to ask the right questions.