1. A method of programming a memory, comprising: selecting one of two different logic states as a selected logic state for programming a first bitcell of the memory, wherein the first bitcell includes a first one-time-programmable (OTP) element and a second OTP element, and a logic state of the first bitcell is based on a difference between resistances of the first and second OTP element after providing a programming current through the first and second OTP elements; programming a first one-time-programmable (OTP) element of the first bitcell using a first set of conditions to provide a first programming current through the first OTP element intended to achieve a first target resistance in accordance with the selected logic state which results in a first degree of programming of the first OTP element; programming a second OTP element of the first bitcell using a second set of conditions different from the first set of conditions to provide a second programming current through the second OTP element intended to achieve a second target resistance in accordance with the selected logic state which results in a second degree of programming of the second OTP element, wherein the first and second degrees of programming are visually indistinguishable, wherein the programming the first and second OTP elements occur after the selecting one of two different logic states as the selected logic state; and determining if the first bitcell has the selected logic state, wherein the determining comprises determining if the first OTP element has a lower resistance than the second OTP element.