&gt; Terence Parr, author of ANTLR, often uses the metaphor of parsing as a maze<p>As someone who had a technical but &quot;not <i>real</i> CS&quot; curriculum, I enjoyed Parr&#x27;s &quot;Language Implementation Patterns&quot; book [0] because it illustrates how certain grammar-forms become recognizable code-patterns and control-flow.<p>Granted, it&#x27;s definitely got a bent towards Parr&#x27;s ANTLR project and the Java language, but I still found it made things &quot;click&quot; a lot better than my daunting lack of progress an old &quot;Dragon Book&quot; [1] which IIRC tended to float along with more mathy-notations and theory than concrete examples.<p>[0]: <a href="http:&#x2F;&#x2F;www.amazon.com&#x2F;Language-Implementation-Patterns-Domain-Specific-Programming&#x2F;dp&#x2F;193435645X&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.amazon.com&#x2F;Language-Implementation-Patterns-Domai...</a><p>[1]: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Compilers:_Principles,_Techniques,_and_Tools#First_edition" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Compilers:_Principles,_Techniq...</a>