Личный опыт: Как я учил языки и написал свою программу для запоминания слов

Страницы:  1

Ответить
 

Professor Seleznov


Эта статья о многолетнем личном опыте самостоятельного изучения иностранных языков, истории становления метода, а также о создании собственной программы для запоминания слов: как создавалась и какая получилась. Возможно, результаты опыта покажутся кому-то интересными или даже полезными.
Петров, Lingualeo и другие
Мои первые попытки самостоятельно заниматься языками были несколько неудачными и не дали особого результата: не было внятной мотивации, кроме «хочу знать несколько языков», занятия были нерегулярными, а способы занятий постоянно менялись. Уже хотелось всё бросить, но многое изменила всего лишь одна услышанная фраза. Полиглот Дмитрий Петров в одной из своих передач сказал приблизительно следующее: «Мы люди взрослые и вряд ли обладаем избытком свободного времени, но 5 минут в день на занятия языком может найти каждый». Вот чего не хватало — понятного критерия регулярности и объёма: каждый день по 5 минут. Почти сразу попался и сайт Puzzle-English, на котором удалось закрепить привычку заниматься по 5 минут каждый день (в былые времена там можно было минут 5 заниматься бесплатно).
Далее абстрактная мотивация «хочу знать языки» преобразовалась в более внятную «хочу читать на английском без словаря». К сожалению, Puzzle-English делал упор на грамматику и восприятие на слух (тоже полезно, но для меня второстепенно), а вот в чтении особо не помогал. Зато вскоре попался другой сайт: Lingualeo. Здесь уже можно было читать самые разные тексты (статьи, рассказы, книги), по одному клику открывать переводы отдельных слов и целых предложений, добавлять слова в свой словарь и учить их с помощью разнообразных упражнений. Заниматься там было настолько интересно и несложно, что даже не хотелось ограничиваться 5 минутами в день. А ещё Lingualeo приучил к тому, что новые слова нужно всё-таки учить, пусть даже не все подряд, а самые интересные и часто попадающиеся. И уже через несколько месяцев это дало первые заметные результаты.
В общем, Lingualeo был отличным сервисом (до сих пор считаю его одним из лучших) и очень помог запомнить несколько тысяч наиболее частых слов. Однако для запоминания более редких слов понадобилось больше внимания уделять контексту и изменить подход к самому запоминанию, отказавшись от интервальных повторений, а взамен учить новые слова несколько дней и потом к ним не возвращаться (о причинах — ниже). Для такого подхода Lingualeo уже не очень удобен и не только он — приложения наподобие Quizlet или Anki в этом смысле тоже не дают каких-то особых преимуществ.
О запоминании слов
На этом не часто акцентируют внимание, но интервальные повторения работают лучше, если слова (или что там нужно повторять) изначально тщательно заучить. Значит, нужно или потратить много времени на заучивание сразу, или заучивать слова несколько дней, тратя на это 3-5 минут в день (если слов не слишком много). Потом их можно повторять через интервалы, а можно полагаться на то, что они снова попадутся в текстах. Да, особо редкие слова часто забываются, но проще их снова взять на заучивание, когда попадутся в следующий раз, а не пытаться вспоминать через определённые интервалы времени.
Так что для себя я определил, что новые слова нужно тренировать 3-4 дня, в том числе сегодняшние с вчерашними и позавчерашними, а по мере добавления более новых слов самые старые из тренировки исключать. На практике я также убедился, что слова в контексте запоминаются лучше и тренировать их интереснее, чем просто слова с переводами. Значит, контекст нужно или помнить, или добавлять к слову в виде примера из самой книги и этот пример должен отображаться в тренировке вместе с самим словом (сразу, а не после выбора ответа).
В приложениях и сервисах для изучения языков и запоминания слов я стал искать именно возможность тренировать вместе добавленные за недавние 3-4 дня слова, причём добавлять их с примерами, которые бы отображались во время тренировки. Найти такое приложение было не так просто и, с учётом навыков любительского программирования, показалось проще написать собственную программу — простую и с минимумом функций.
Своя программа: формат и загрузка слов
Сразу возник вопрос: в каком формате хранить слова, как их добавлять и редактировать? Недолго думая пришёл к выводу, что самый простой формат — текстовый. Если слова будут храниться в обычном текстовом файле, то их можно легко редактировать в любом удобном текстовом редакторе. Нужно было только сразу смириться с тем, что программа будет открывать файлы только для чтения и никак не отмечать, сколько раз и когда было на тренировке то или иное слово. С другой стороны, это упрощало реализацию программы, сделав случайный выбор слов для тренировки.
Следующий вопрос: как отделять слова друг от друга и от своих переводов и примеров? Выглядит естественно, если каждое слово будет находиться в отдельной строке, а от своего перевода отделяться символами « - » (пробел-минус-пробел на клавиатуре). Пример было решено отделять от слова с переводом символами «//» (как комментарии в Си-подобных языках программирования). То есть, слова в файле могут выглядеть примерно так:
exempt - освобождённый // exempt from the end-of-term tests
plea - просьба; призыв // this could be a plea for attention
twinkle - сверкать; мигать // her eyes twinkling
Остался один вопрос: если нужно тренировать только новые слова (добавленные в ближайшие дни) и не удалять старые, то как отличать новые от старых? Было решено помечать блок новых слов специальной меткой «.new» (в отдельной строке), чтобы программа считала все слова после этой метки новыми.
Реализация в программе чтения такого файла несложная: файл читается построчно, в каждой строке ищутся разделители « - » и «//», по которым и отделяются слова, переводы и примеры. Каждое отдельное слово, перевод и пример (даже пустой, если его нет) добавляются в соответствующие динамические массивы и запоминается количество прочитанных слов. Если встретилась метка «.new», то нужно запомнить индекс первого «нового» слова.
Тренировка «Слово-Перевод» и её режимы
Итак, формат выбран, слова из файла загружаются и теперь можно подумать о реализации простой тренировки. Сразу напрашивается вариант «Слово-Перевод»: отображается слово и нужно выбрать правильный перевод из нескольких возможных вариантов. Выбор из 4-6 вариантов хорош для тестов и проверок, но при запоминании множество неверных вариантов только отвлекает, потому было решено оставить всего два: правильный и неправильный (в случайном порядке).
А сколько слов нужно проходить в одной тренировке? В Lingualeo подобные тренировки включают до 10 слов и это кажется уместным. Но если в файле будет 11-12 новых слов, то нужен выбор: запустить 10 случайных (из новых) или все новые. Что и было реализовано в соответствующих режимах: «10 новых» и «Все новые». Для возможности закрепления слов из всего файла (а не только новых) реализованы также режимы «10 случайных» и «Новее чаще». Во втором случае на тренировке тоже будет 10 слов, но чем ближе они к концу файла, тем чаще будут попадаться.
Значит, в окне тренировки нужно отобразить номер слова, само слово и две кнопки с вписанными вариантами перевода (один из них правильный), на которые нужно нажимать, чтобы программа засчитала выбор. Здесь же под кнопками можно отобразить пример, если он есть. Так это выглядит в реализованной программе:
pic
Тренировка "Слово-Перевод"
Пара слов о реализации. Для подготовки тренировки программа создаёт массив индексов слов и перемешивает их в случайном порядке (в режиме «Новее чаще» выполняется более сложное перемешивание). Для каждого из 10 слов (или сколько их будет на тренировке) берётся очередной индекс и по нему из соответствующих массивов берутся слово (отображается вверху окна), перевод (вписывается в одну из двух кнопок) и пример (отображается внизу окна). Ещё один индекс вычисляется случайно (но обязательно не равный индексу текущего слова) и по нему берётся второй (неправильный) перевод.
Тренировка «Ввод слов»
Слишком большое количество тренировок для простой программы кажется излишним, но вот тренировки с вводом слов всё-таки не хватает. Реализовать её несложно: отобразил перевод, пользователь вводит свой вариант слова, а программа сравнивает его с «правильным» (который прочитан из файла) и либо принимает, либо сообщает об ошибке. Вот только без подсказок легко попасть в ситуацию, когда правильное написание забылось, а ни один из написанных вариантов программа не принимает. В таких случаях хочется просто закрыть программу и больше её не открывать. Нет, лучше уж отобразить подсказки, например, в виде двух вариантов слова, из которых один правильный, а второй случайный. Так это выглядит в реализованной программе:
pic
Тренировка "Ввод слов"
То есть, в данной тренировке нужно идентифицировать правильный вариант слова и набрать его на клавиатуре. Возможно, это несколько «ленивый» способ письменной тренировки, но и он позволяет запоминать слова, в том числе их написание (особенно после нескольких ошибок). И да, здесь примеры не отображаются, поскольку являются излишними по отношению к отображаемым вариантам слова.
Результаты и выводы
Конечно, данная программа не идеальна и мне самому, например, не хватает в ней озвучки слов, которая была в Lingualeo и Quizlet. Также есть проблемы с другими языками: например, испанское слово «pequeño» сложно ввести с английской клавиатуры из-за отсутствия на ней символа «ñ», хотя в других приложениях нетипичные символы размещаются в виде кликабельных кнопок вблизи поля для ввода. Но свою главную задачу программа всё же выполняет: позволяет легко добавлять слова с переводами и примерами, тренировать только новые и при желании выборочно закреплять старые слова, а примеры отображаются на видном месте в окне тренировки.
Результаты занятий следующие: за несколько лет занятий в Lingualeo я поднял свой уровень английского где-то с A2 (Pre-Intermediate) до B2 (Upper-Intermediate). Занимаясь ещё несколько лет вне Lingualeo с тренировкой новых слов в собственной программе удалось поднять уровень английского уже с B2 до C1 (Advanced). Это при занятиях минут по 30 в день (от 5 минут и далее по возможности и вдохновению).
И общие выводы по изучению языков.
  • Регулярность даёт результаты, если заниматься хотя бы по 5 минут в день (и больше, если есть понятная и достаточная мотивация).
  • Новые слова нужно учить, пусть даже некоторые, а не все подряд.
  • Лучше всего слова запоминаются в контексте.
  • Интервальные повторения не обязательны, если учить слова несколько дней и потом они будут попадаться при использовании языка (при чтении, общении и т. д.).
P.S. Чуть не забыл: исходный код описанной программы для запоминания слов доступен на GitFlic (написана на C++ с использованием Qt).-Источник
 
Loading...
Error