Me sorprende que nadie haya dado la respuesta obvia y, sospecho, la más utilizada 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, por lo general, lo que sea que atrape mi atención al pasar, ni siquiera un vistazo. Si no está claro de inmediato qué está mal en o cerca de la línea, entonces leeré el mensaje. Este flujo de trabajo es aún mejor con un IDE o herramientas que resaltan los errores en el acto y cumplen automáticamente 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 lleva mucho tiempo hacerse una idea de qué mensajes de error son más confiables para localizar la línea adecuada.
Por un lado, es probable que la mayoría de los errores que cometa un novato 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 novato (aunque muchos serán obvios, la mayoría de los errores son 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 considerarse como indicaciones para profundizar el conocimiento del idioma. De manera similar para los casos en que el compilador se queja pero no puede ver por qué el código está mal.
Nuevamente, 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 su amigo con un "glosario" de este tipo, y es muy poco probable que ese "glosario" sea realmente útil para su 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 el mejor lugar para ello. Incluso con una descripción lúcida de lo que significa el mensaje de error, no le dirá cómo solucionar el problema.
1 Algunos idiomas, como Elm y Dhall (y probablemente Racket), así como algunas implementaciones de idiomas "orientadas al principiante" intentan hacerlo. En este sentido, el consejo de MSalters para utilizar una implementación diferente es directamente relevante. Personalmente, considero que esas cosas son poco convincentes y no están orientadas 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.