Quantum computers on the other hand use a total other approach. To program such a device (if they ever should succeed) needs a good knowledge about quantum mechanics, especially about the solving of the Schroedinger equation https://en.wikipedia.org/wiki/Schr%C3%B6dinger_equation.
The Schrödinger equation is not particularly important to understand for quantum programming. Basically all you can learn from this is that you "cannot" understand how the logic work mechanistically. At least nobody to date can. Hence there is no requirement that you learn about quantum programming down to a level at which it is by definition incomprehensible. If it was comprehensible, in the sense used here, then it could be modeled (including speed) with a standard computer, but it can't.
To think about it in terms of something resembling Aristotelian logic you have to understand vector math and inner products. If you really want to understand how it's connected to quantum mechanics and observables in everyday life, read Feynman's QED, which is highly comprehensible without any math background. Reading Feynman's QED would be sufficient for me to expand my description of what makes quantum computing so powerful at a fundamental level.
Basically, in a logical sense, you can conceive of a quantum qubit (quantum switch) as a vectorial summation of any arbitrary number of qubits. If you relate it to a unit length, like in Feynman's QED, a qubit that is partly on and partly off (say 60% on) it merely represents an 0.6 unit offset in the sum of the vectors. It also corresponds to a 60% probability the switch will be on when you measure it, since you can't actually measure any single unit vector to be anything but 0 or 1. That's the basic notion behind Schrödinger's cat, with the question being, is the cats state 0 or 1. Once measured you can't return it to its original state before the measurement because the vectors representing this measuring device then get summed over the state of the system that was measured. Though a third measuring device can then sum the probability of the state of the [cat/measuring instrument] state, which remains in a superposition until such a measurement is made.
If you restrict the logic only to unit vectors operations the logic itself is quiet simple. It's only when you try to reconcile its everyday observable consequences with our prejudices about how everyday observables work (via Aristotelian logic) that it blows up in your face. This can be ignored completely, as even most quantum physicist do even within pure science, when speaking in terms of I/O. The term for it is "shut up and calculate". It's justified in the same way you don't object to standard computers on the grounds that switches are never actually off in an absolute sense. Rather their offness exceeded some threshold value. The main difference is that in quantum computing we are dealing with the offness sum of all the switches, rather than each switch individually.
Quantum Programming:
Basically at the machine code level you select qubits the same way you select a memory range, where a register consist of 2 qubits, qureg x1[2] where x1 is the number of registers. Many different
quantum programming languages are under development, which some can mix quantum and classical instructions and/or adhere to a classical control flow. You don't even have to obtain a quantum computer to play with programming one. You can simply use (
PDF link) Quantum Virtual Machine and program it. The only real difference is it's not going to be fast enough to crack those bank codes to take over the world
