My first fifteen compilers
I&#x27;d strongly suggest diving into compilers if you&#x27;ve never studied the subject. Learning a bit on the subject unlocks a ton of incredibly useful skills. That knowledge helps you implement stuff like autocomplete, linters, syntax highlighting, etc.<p>The Super Tiny Compiler [0] is a very gentle introduction to the subject. It&#x27;s great because it helps you quickly develop an initial mental model.<p>To give an everyday usage example: I&#x27;ve used jscodeshift [1] many times to safely refactor large amounts of code. In one case, I quickly migrated a project&#x27;s test assertion library to an alternative which the team agreed was superior. This tool is also typically used by the react team in order to provide a smooth migration path whenever they make changes to the public API.<p>[0] <a href="https:&#x2F;&#x2F;github.com&#x2F;thejameskyle&#x2F;the-super-tiny-compiler" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;thejameskyle&#x2F;the-super-tiny-compiler</a><p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;facebook&#x2F;jscodeshift" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;facebook&#x2F;jscodeshift</a>