This document proposes a human-centric approach to program understanding through three dimensions: documentation, runtime behavior, and readability. It suggests using machine learning and programming language techniques to model and generate artifacts related to each dimension. This would help automate aspects of program understanding and software development tasks. The proposal outlines several research projects involving metrics and algorithms to capture various aspects of program comprehension. The goal is to develop new tools and insights that support software analysis, development, and maintenance activities.