1. A method of programming a memory cell of a NAND flash memory array, the flash memory array having a plurality of word and bit lines, said method comprising: applying first programming operation signals to the memory cell, the first programming operation signals comprising an inhibit pulse for preventing programming of memory cells that are not selected for programming followed by a program pulse; determining if said memory cell is programmed in response to the first programming operation signals; and if said memory cell is not programmed, applying second programming operation signals to said memory cell, the second programming operation signals comprising an inhibit pulse for preventing programming of memory cells that are not selected for programming followed by a program pulse, wherein pulse characteristics of the program pulses of the first and second programming operation signals are different.