Programmers should learn ASM, or at least have a surface level knowledge of it, the same way electrical engineers should know how a vacuum tube works.