The paper presents a case study that investigates programmer learning during incremental program development. Dialog based protocol and protocol analysis are used to explore the learning from the point of view of self-directed learning theory. The replicated case study confirmed that the Bloom’s levels of cognitive domain and the cognitive activities of absorption, denial, reorganization, and expulsion characterize the programmer learning and give insight into the differences between experts and intermediate level programmers.