I'm almost done with "Writing an interpreter in Go"[0] which I highly recommend. Even though it's less theoretical than the usual books in this area I learned a ton of practical stuff and a lot of things I "knew" from more theoretical sources make now much more sense. Looking forward to work through the second book of the series [1] which is aimed at compilers.