There is a lot of variety when it comes to the different types of programmers. In general, is beneficial for a programmer to learn how to build a compiler? In what cases would
I learned a lot.
Audrey Tang, developer of PUGS, recommends Types and Programming Languages.
Personally, I loved From NAND to Tetris - probably the best course I've taken, and a shining example of what higher education should be.