1. A method of programming a semiconductor device, comprising: performing a Least Significant Bit (LSB) program operation on selected memory cells; performing a soft program operation on remaining memory cells other than memory cells on which the LSB program operation has been performed; and performing a Most Significant Bit (MSB) program operation on memory cells, selected from among the memory cells on which the LSB program operation has been performed and the memory cells on which the soft program operation has been performed.