I'd like to know if there is a grammar rule stating when the last consonant of the verb has to be doubled. E.g. why: "to cut" -> cutter, "to program" -> programmer, but "to read" -> reader?
The general rule is: double a single consonant letter following a single vowel letter with a short vowel sound; don't double anything else. (The doubled consonant is a cue that the vowel sound should remain short.)
- cut has a short 'u' and a single 't': therefore cutter.
- program has a short 'a' and a single 'm': programmer.
- read has a long 'e' sound from 'ea': reader
- head has a short 'e' sound but it comes from a double-vowel 'ea', so header.
Of course, this being English, there will be exceptions.