How do qubits interact to form, say, CNOT gates? There are very few comprehensive explanations of how quantum computing works. They all use obscure metaphors that don’t make sense (like Schrödinger’s cat). And even then, they never show the rest of the story, with how the qubits interact.
You may be aware that a classical NAND gate operates with two pullup transistors in parallel while concurrently operating with two pulldown transistors in series, to pull up the output signal iff the two inputs are grounded. But, these transistors are physical and built in silicon to realize the NAND gate. While, in quantum computing most of the time the quantum gates are more akin to pulses of electromagnetism and are not (necessarily) physical structures but are more akin to opcodes.
That is, depending on the modality of the qubits (e.g., how they are implemented), quantum gates are generally sequences of electromagnetic pulses applied to the qubits that induce changes to the wavefunction that the qubits represent. Two of the most popular modalities are superconducting qubits and ion-trap qubits - the former uses microwave pulses while the latter uses lasers fired at individual ions.
Because you asked about the CNOT gate in particular, I would point you to the Cirac–Zoller CNOT gate. By carefully controlling various properties (polarization, etc.) of the laser pulses one can change the state of one of the ions - to move it into various superpositions of a ground state and an excited state. One can also have the two-qubit CNOT gate realized by acting concurrently on two of the qubits.
The laser pulses induce the coupling between ions - so that one ion will be flipped from the excited state to the ground state (or from the ground state to excited state) iff another ion is in the excited state.