1. A method for writing data to a multiple level cell (MLC) in a memory device, the method comprising, in the memory device: obtaining specified data to write to the MLC; selecting among multiple different programming techniques, each of which establishes a charge configuration in the MLC that represents multiple data bits, to determine a selected programming technique; and writing the specified data to the MLC using the selected programming technique.