Introduction to Compilers and Language Design
compilerbook.org
compilerbook.org
On this topic, the LLVM's tutorial is also kind of great and if you are impatient, there are also parser generators. If you are really that impatient but still want to write a compiler, I wrote a guide on how to make a (toy) compiler as easy as possible here https://github.com/quangIO/Lucix