As the introduction to Nystrom's
Crafting Interpreters (craftinginterpreters.com) says:
"Classic compiler books read like fawning hagiographies of these heroes and their tools. The cover of Compilers: Principles, Techniques, and Tools literally has a dragon labeled “complexity of compiler design” being slain by a knight bearing a sword and shield branded “LALR parser generator” and “syntax directed translation”. They laid it on thick."
My thinking is similar (at least for undergrads and most people who want to write a compiler): avoid the dragon book, and stick with simple recursive descent parsing.
(I do kind of like Wirth's Compiler Construction though. Wirth also likes recursive descent although he describes other methods as well.)