I have been on a journey of studying compilers and despite only knowing some of the basics and despite writing only a few small compilers, my compiler studies have been illuminating. I feel like I have a much deeper understanding than I use to about the programming languages that I use and I am starting to visualize how high level programming constructs such as arrays, tuples, if statements, if expressions, loops, lexical scoped functions, tail calls, type checker get compiled to x86 which in turn has given me a better feel for how the cpu executes the compiled program. It has also been worthwhile because I have a better understanding of how memory is laid out in a process and how your high level program uses this memory.<p>I think compilers are really fundamental software systems.<p>I encourage you to build a compiler yourself. Its really fun