Another thing which is often missed is how complementarity may play out for certain jobs: it's NOT going to necessarily be "program / robot replaces every job X", but instead "program / robot allows one person to do the job previously done by 50." You can still have massive unemployment without getting rid of every worker doing a certain job (and their job may change more to be a machine guide / manager / error corrector.)
An example I see all the time now is in supermarkets. You have self-checkout lanes that are overseen by one person. It used to be 5 lanes staffed by people. Now you only need one to intervene when something goes wrong. 5 workers have become 1 without eliminating the job "register person" completely. Instead, they've changed into "auto register checkout manager" while everyone else got the ax.