1. A method of programming a select non-volatile memory cell having an associated select transistor, wherein said non-volatile memory cell having a control gate for receiving a programming voltage and wherein said select transistor having a select gate for receiving a select voltage, said method comprising: applying said programming voltage to said control gate of said select non-volatile memory cell in a program command sequence, said program command sequence comprising a plurality of separate pulses of programming voltage applied to said control gate of said select non-volatile memory cell, and a plurality of separate pulses of select voltage applied to said select gate of said select transistor, each pulse of select voltage corresponding to a pulse of programming voltage; and varying the magnitude of each of said separate pulses of said select voltage to said select gate of said select transistor during said program command sequence.