1. A method for programming a non-volatile memory device, comprising: providing a non-volatile memory device including data cells capable of storing N-bit data (N is a natural number) and at least one monitoring cell capable of monitoring whether the N-bit data has been programmed into the data cells; performing a first programming operation for programming the data cells while inhibiting programming of the monitoring cell; and performing a second programming operation for programming the monitoring cell while inhibiting programming of the data cells, wherein the second programming operation is performed differently from the first programming operation.