1. A method of programming non-volatile memory cells of a non-volatile memory array, comprising: receiving first write data and second write data; and adjusting the programming of the first write data into a first plurality of memory cells of a non-volatile memory array to compensate for interference by the subsequent programming of the second write data into a second plurality of memory cells of the non-volatile memory array, wherein the memory cells of the first plurality are physically adjacent the memory cells of the second plurality in the non-volatile memory array.