1. A programming method of a multi-bit flash memory device, the method comprising: programming multi-bit data into selected memory cells through at least two programming loops, wherein, during each programming loop, the method includes varying an increment of a programming voltage applied to the selected memory cells in accordance with a result of program-verification of each data state of the multi-bit data, and skipping reading-verification for a data state if program verification indicates that data state has passed.