Given the discussion about what programming is, lets consider more specifically the kind of cognitive skills which apply at the extremes of coding and the whole life cycle.