Estou surpreso que ninguém tenha dado a resposta óbvia e, suspeito, a mais usada na prática: apenas não leia as mensagens de erro.
A grande maioria do valor da maioria das mensagens de erro é simplesmente que algo está errado nessa e nessa linha. Na maioria das vezes, apenas olho para o número da linha e vou para essa linha. Minha "leitura" da mensagem de erro nesse momento geralmente é exatamente o que meu olho chama de passagem, nem mesmo um toque. Se não estiver claro imediatamente o que há de errado na linha ou perto dela, na verdade vou ler a mensagem. Esse fluxo de trabalho é ainda melhor com um IDE ou ferramenta que destaca erros no local e realiza automaticamente a sugestão de Karl Bielefeldt para considerar apenas pequenas alterações.
Obviamente, as mensagens de erro nem sempre apontam para a linha apropriada, mas também não costumam apontar para a causa raiz apropriada; portanto, mesmo um entendimento completo da mensagem de erro seria de ajuda limitada. Não demora muito para se ter uma idéia de quais mensagens de erro são mais confiáveis sobre como localizar a linha correta.
Por um lado, a maioria dos erros que um iniciante provavelmente comete provavelmente será dolorosamente óbvia para um programador experiente, sem a necessidade de ajuda do compilador. Por outro lado, é muito menos provável que sejam tão óbvios para o iniciante (embora muitos sejam óbvios, a maioria dos erros são estúpidos). Neste ponto, eu concordo completamente com Robert Harvey, o novato simplesmente precisa se familiarizar com o idioma. Não há como evitar isso. Erros do compilador que fazem referência a conceitos desconhecidos ou parecem surpreendentes devem ser vistos como instruções para aprofundar o conhecimento da linguagem. Da mesma forma, nos casos em que o compilador está reclamando, mas você não consegue ver por que o código está errado.
Novamente, eu concordo com Robert Harvey que é necessária uma estratégia melhor para a utilização de erros de compilador. Eu descrevi alguns aspectos acima e a resposta de Robert Harvey fornece outros aspectos. Não está claro o que seu amigo espera fazer com esse "glossário" e é muito improvável que esse "glossário" seja realmente útil para seu amigo. As mensagens do compilador certamente não são o local para uma introdução aos conceitos da linguagem 1 e um "glossário" não é um local muito melhor para isso. Mesmo com uma descrição lúcida do significado da mensagem de erro, ele não vai lhe dizer como corrigir o problema.
1 Algumas linguagens, como Elm e Dhall (e provavelmente Racket), bem como algumas implementações de linguagens "orientadas para iniciantes", tentam fazer isso. Nesse sentido, o conselho dos MSalters de usar uma implementação diferente é diretamente relevante. Pessoalmente, acho essas coisas desinteressantes e não totalmente voltadas para o problema certo. Isso não quer dizer que não há maneiras de gerar melhores mensagens de erro, mas, para mim, elas tendem a girar em torno de tornar as crenças do compilador e a base dessas crenças mais claras.