Computer programmers are exceptional thinkers. By which I don’t necessary mean they are “exceptional” in the sense of “outstanding” (although no doubt some are). I mean they are trained to think about exceptions (to the rule), about what might happen.
Computer programmers, in general, think about all the possible paths a system could take. When creating email software, they have to think about all the possible ways a user might use the software. There are the obvious actions the user is supposed to perform to read or write email. But there are also “What happens if I click this?” moments to consider.
It’s not about just of the “correct” ways but also about the “incorrect” ways!