Programmers must attain knowledge about a system before they can perform specific software maintenance tasks on it. Traditionally, computer scientists have described the activity of attaining this knowledge as ‘software comprehension’. However, if we look at the educational literature, attainable knowledge has been described with much finer granularity. Blooms’ taxonomy identifies six separate levels of knowledge within the cognitive domain, one of which refers to a (more constricted) definition of comprehension. Several other levels in Bloom’s taxonomy seem to correlate more directly to specific software maintenance tasks. This article reviews Blooms’ taxonomy as a richer descriptive framework for programmers’ knowledge of code and illustrates how various software maintenance tasks map to knowledge levels in this hierarchy. A pilot study is presented showing how participants’ knowledge of software may differ at various levels of this hierarchy.