A programmer is someone who has written at least one program, and who will write at least one more in their lifetime.
The moment a programmer will not write another program in their lifetime, they are no longer a programmer.
You would think this implies that nobody can ever be absolutely certain wether they are a programmer or not.
The limit as the difference between real time and the moment a person finishes typing an instruction approaches 0 = programmer, if and only if that instruction will be used. The limit as the difference between real time and the moment this instruction is successfully executed = validation.
However, because these moments are not likely to ever be simultaneous, a person can most likely never know if they are a programmer or not. It is however possible for a person to know that they were a programmer.