Me sorprende que nadie haya dado la respuesta obvia y, sospecho, la que más se usa en la práctica: simplemente no lea los mensajes de error.
La gran mayoría del valor de la mayoría de los mensajes de error es simplemente que algo está mal en tal o cual línea. La mayoría de las veces solo miro el número de línea y voy a esa línea. Mi "lectura" del mensaje de error en ese punto es generalmente lo que mis ojos captan al pasar, ni siquiera un vistazo. Si no se aclara inmediatamente lo que está mal en la línea o cerca de ella, leeré el mensaje. Este flujo de trabajo es aún mejor con un IDE o herramientas que resaltan los errores en el lugar y automáticamente cumplen con la sugerencia de Karl Bielefeldt de considerar solo pequeños cambios.
Por supuesto, los mensajes de error no siempre apuntan a la línea apropiada, pero a menudo tampoco apuntan a la causa raíz apropiada, por lo que incluso una comprensión completa del mensaje de error sería de ayuda limitada. No toma mucho tiempo para tener una idea de qué mensajes de error son más confiables para localizar la línea adecuada.
Por un lado, la mayoría de los errores que probablemente cometa un novato probablemente sean dolorosamente obvios para un programador experimentado, sin que sea necesaria la ayuda del compilador. Por otro lado, es mucho menos probable que sean tan obvios para el principiante (aunque muchos serán obvios, la mayoría de los errores son errores estúpidos). En este punto estoy completamente de acuerdo con Robert Harvey, el principiante simplemente necesita familiarizarse con el idioma. No hay forma de evitar esto. Los errores del compilador que hacen referencia a conceptos desconocidos o que parecen sorprendentes deben verse como indicaciones para profundizar los conocimientos del idioma. De manera similar, en los casos en que el compilador se queja, pero no puede ver por qué el código es incorrecto.
De nuevo, estoy de acuerdo con Robert Harvey en que se necesita una mejor estrategia para utilizar los errores del compilador. He esbozado algunos aspectos arriba y la respuesta de Robert Harvey da otros aspectos. Ni siquiera está claro qué espera hacer tu amigo con un "glosario" de este tipo, y es muy poco probable que dicho "glosario" sea realmente útil para tu amigo. Los mensajes del compilador ciertamente no son el lugar para una introducción a los conceptos del lenguaje 1 y un "glosario" no es un lugar mucho mejor para él. Incluso con una descripción clara de lo que significa el mensaje de error, no te dirá cómo arreglar el problema.
1 Sin embargo, algunos lenguajes, como Elm y Dhall (y probablemente Racket), así como algunas implementaciones de lenguajes "orientadas a principiantes" intentan hacer esto. En este sentido, el consejo de MSalters para utilizar una implementación diferente es directamente relevante. Personalmente, considero que esas cosas no son convincentes y no están dirigidas del todo al problema correcto. Esto no quiere decir que no haya formas de hacer mejores mensajes de error, pero, para mí, tienden a girar en torno a aclarar las creencias del compilador y la base de esas creencias.