@gdinwiddie Apparently it's in the name. A mental model is a model: a simplification and view of a reality that allows us to reason about that reality, such as by making predictions or decisions in line with the model.
e.g.: this CountdownTimer class is modeled like a sand clock or hourglass, reducing the "amount" of time at each tick. (Allows me to predict its behavior and know what will happen when it "runs out of time")
A heuristic is a prescriptive guideline, sometimes generic and without much context.
e.g.: pass the current time as a parameter to a method, instead of injecting a clock as a dependency, to make it easier to test.
(I'm sure @rebeccawb would have much more to say on this!)