This paper attempts to describe the varied intellectual territory
that programmers work in. It offers several paths for researchers who wish
to explore this territory: controlled experiments, observational or field
studies, surveys, and cognitive theories. Finally, this paper suggests
several important destinations for researchers: refining the use of current
languages, imporving present and future languages, developing special purpose
languages, and improving tools and methods.