How social engineering and programming works