Я здивований, що ніхто не дав очевидної відповіді, і, підозрюю, найчастіше використовується на практиці: просто не читайте повідомлення про помилки.
Переважна більшість значень більшості повідомлень про помилки - це просто те, що в такій і такій лінії щось не так. Більшу частину часу я просто дивлюся на номер рядка і переходжу до цього рядка. Моє "читання" повідомлення про помилку в цей момент - це як раз те, що моє око ловить мимохідь, навіть не скидаю. Якщо не відразу зрозуміло, що не так на лінії чи біля неї, я фактично прочитаю повідомлення. Цей робочий процес ще кращий за допомогою IDE або інструментів, які виділяють помилки на місці, і автоматично виконує пропозицію Карла Білефельдта враховувати лише невеликі зміни.
Звичайно, повідомлення про помилки не завжди вказують на відповідний рядок, але тоді вони також не вказують на відповідну першопричину, тому навіть повне розуміння повідомлення про помилку може бути малодопоможною. Не займе багато часу, щоб зрозуміти, які повідомлення про помилки є надійнішими щодо розміщення потрібної лінії.
З одного боку, більшість помилок, які може зробити новачок, можуть виявитись болісно очевидними для досвідченого програміста, не потребуючи допомоги компілятора. З іншого боку, вони набагато рідше стають настільки очевидними для новачків (хоча багато хто буде очевидним, більшість помилок - дурні помилки). На цьому етапі я повністю погоджуюся з Робертом Харві, новачкові просто потрібно ознайомитися з мовою. Цього не уникнути. Помилки компілятора, на які посилаються незнайомі поняття або здаються дивними, слід розглядати як підказку для поглиблення знань про мову. Аналогічно для випадків, коли компілятор скаржиться, але ви не можете зрозуміти, чому код неправильний.
Знову я погоджуюся з Робертом Харві, що потрібна краща стратегія використання помилок компілятора. Я окреслив деякі аспекти вище, і відповідь Роберта Харві дає інші аспекти. Навіть не зрозуміло, що сподівається твій друг зробити з таким «словником», і дуже малоймовірно, що такий «словник» насправді буде корисним твого друга. Повідомлення компілятора, безумовно, не є місцем для ознайомлення з поняттями мови 1, а «словник» - це не так вже й краще місце. Навіть з чітким описом того, що означає повідомлення про помилку, воно не збирається розповісти, як виправити проблему.
1 Декілька мов, як Elm і Dhall (і, можливо, Racket), а також кілька «орієнтованих на початківців» мов намагаються це зробити. У цьому сенсі поради MSalters щодо використання іншої реалізації є безпосередньо актуальними. Особисто я вважаю такі речі непереборними і не зовсім спрямовані на правильну проблему. Це не означає, що не існує способів покращення повідомлень про помилки, але, на мій погляд, вони мають тенденцію обертатися навколо того, щоб зрозуміти переконання компілятора та основу цих переконань.