Compilers was the first (and, perhaps, only) course where having playid a lot worth computers before didn't matter. At. All.
At the same time, you learned some theory you didn't know (couldn't even have predicted) - that actually had direct practical application!
It was amazing and a microcosmos of CS - in that you first get a general understanding of the problem and desires outcome, learn theory that you couldn't have predicted but is amazingly apt for this, and end up making stuff work thanks to all of this.
It's an amazing experience that everyone with an interest in CS deserves to have.
On one hand, they help you get things done. On the other, it can be _so_ hard to understand how things really work. Most programmers don't peel back too many layers, but that's okay.
If you're really interested, the Code book is fantastic in explaining how computers work: https://www.microsoftpressstore.com/store/code-the-hidden-la...
Combined with a proper OS class, it's the first time a student can truly understand all the levels of abstraction from the language to the logic gate.
And it also helps to recognize and solve parsing problems. How many programs end-up containing a parser, even if rudimentary, to read non-trivial input of perform validation? No, you can't use regex for that...