Я до сих пор бомблю от редизайна DuoLingo. Настолько, что сделал свой велосипед

Если кратко - упрощение изучения до "прямой", в которой нет альтернатив, а также сброс прогресса с Золотой Совы до 2-го чекпоинта изрядно подожгло мою пятую точку настолько, что я просто забил.

Однако уже через пару месяцев стало очевидно - я вновь начал делать грамматические ошибки, и нуждался в "тренировках", но играть по новым правилам мне решительно не хотелось.

Первое, что я решил, если я делаю для себя (и, возможно, кого-то еще, у кого такое же видение на проблему Совы), то я хочу иметь возможность выбрать любой урок в любой момент времени. Если препод сказала, что я за урок дважды употребил не тот предлог - значит, повторяем предлоги.
К счастью или к несчастью, предлогов довольно много, как и ситуаций, в которых они пишутся. Поэтому те же предлоги разделил по темам, и все темы открыты сразу. Это был первый принцип моего приложения: любая грамматическая тема доступна сразу.

Во-вторых, меня всегда не устраивало количество теории (если она вообще была) перед уроками. Отсюда я сформировал второй принцип - в моём приложении будет возможность ознакомиться с теорией перед уроком или прямо в карточке. К сожалению, из-за природной лени, саму теорию добавил не везде, но по крайней мере я сделал такую возможность.

Нельзя просто так взять и добавить теорию к упражнениям
Нельзя просто так взять и добавить теорию к упражнениям

Причин тому несколько:
1) теорию нельзя списать один-к-одному из учебника. Авторское право все-таки.
2) не всегда теория в учебнике изложена компактно. Поскольку приложение было скорее мобильным, чем настольным, то компактность изложения стала важным пунктом.
3) на каждое правило существует куча исключений, уточнений, и тому подобного. Написать всё — забыть о компактности. Сделать компактно — породить кучу вопросов "а почему так?"*

* "Почему так?" является важным вопросом. Именно поэтому раньше во всех сколько-нибудь сложных и неоднозначных случаях приходилось идти на форум DuoLingo (/F, покойся с миром), чтобы понять логику того, что здесь, собственно, произошло в этой конкретной карточке. Сейчас добавили кнопку EXPLAIN, но не во все языковые пары.

Предлагаю посмотреть, что же я натворил (в хорошем смысле этого слова).
1. Свободный выбор тем. Нет ни последовательностей, ничего.
2. Генератор карточек из шаблонов. Есть шаблон, есть шаблонизатор, есть конкретная карточка в результате.

 {"question":"I usually write articles ... weekends",
  "answer": ["at", "on"],          # correct answers
  "radios": ["on", "at", "in"],    # options to choose
  "comment": "ON is acceptable in US English",
  "minor": "yes",                  # prints the comment, if 2nd answer is selected
 },


Следующий шаблон интереснее:

{"question":"I left %arg1 ... %arg2",
  "answer": "at",
  "radios": ["in", "by", "with", "at"],
  "arg1": ["school","university", "school","university"], # options to template
  "arg2": [17, 22, "the age of 17", "the age of 21"],     # options to template
  "tied": "yes", # zips arg1 and arg2 together; otherwise - multiplies both to 16 options
 },

Тут у нас подставляются варианты в карточку на этапе ее подготовки. Могло бы получиться до 16 вариантов (4 варианта для первой переменной, 4 для второй, 4*4 = 16, но благодаря опции tied они используются только в той же последовательности).

По такой логике я сделал упражнения к следующим темам:

Исходный код лежит здесь: https://github.com/Areso/English-exercises
Попробовать можно тут: https://english.areso.pro/index.html

P.S.: статья пролежала в черновиках Обсидиана пару лет, могут быть какие-то артефакты от этого =\

@Areso
13.02.2026 02:30 UTC
Первоисточник

Комментарии

@vpgromov
12.02.2026 21:42 UTC
0

Да чего еще можно было ждать от этого зеленого петушары

@vpgromov
12.02.2026 22:00 UTC
+1

Да я же про дуолинго(

@domix32
13.02.2026 09:45 UTC
0

ну, как минимум у петуха гребень, а не инсульт. и совершенно непонятно чего вам совы сделали, что вы их так не по-французски

13.02.2026 11:32 UTC
0

Пока сова не зелёная - все хорошо

Но стоит только ей сменить цвет...

@ReadIt-Club
12.02.2026 23:14 UTC
0

Хорошо было бы эти наработки завернуть в приложение и запустить альтернативный сервис… работы там правда ого-го.

@Areso
12.02.2026 23:17 UTC
+1

Мне не нужен был альтернативный сервис. Мне нужно было сделать "кату", и я ее сделал. Грамматические топики, да и часть материала (но его пришлось переписывать) я брал из Мёрфи, а сама идея каты, более или менее, была взята из довольно популярного Полиглота. Без анимаций, лидербордов, и всего остального. Просто отработка.

@P1ngZer0
13.02.2026 00:24 UTC
+4

Редизайны в EdTech часто делают под удержание, а не под эффективность. В итоге прогресс вроде есть, а ощущение контроля пропадает

@ttanchik
13.02.2026 09:13 UTC
0

На предмет теории по уроку : мне понравилось оформление в приложение по итальянскому языку - все лежит в отдельной вкладке страницы урока и можно зайти посмотреть..

@domix32
13.02.2026 09:48 UTC
+1

Определённо не хватает нормальной навигации с клавиатуры. Enter по-хорошему должен бы самостоятельно триггерить check а при correct ещё и автоматически next жать при повторном вводе. Десктопный дуо можно использовать не отрывая рук от клавиатуры.

@Areso
13.02.2026 09:54 UTC
0

Хорошее замечание, попробую добавить.

@Areso
15.02.2026 00:18 UTC
0

Добавил.
Но честно говоря, как-то сложно получилось...

15.02.2026 14:33 UTC
0

Ну, определённо добавили не то о чем я говорил. tabindex по идее и без этих изменений нормально работал, зачем нодам его сбрасывать я не понял. Enter в input как был так и остался без обработки, хотя моё предложение было как раз на него повесить check. Автофокуса в поле ввода после next/skip также не происходит, то есть нажать его и сразу печатать следующий ответ не получится.

16.02.2026 14:34 UTC
0

Enter в input

input - который текстовое поле, или который radio button? Потому что в radio button пробел вызывает подтверждение выбора.

ну и смотрите, поле ввода (текстовый input) идет вторым после радиогруппы, поэтому сейчас по логике так не получится от слова совсем, разве что делать настройки где-то и хранить в кого переключаться в новой карточке.

16.02.2026 19:25 UTC
0

не встречал выбора опций, только обычный инпут для всяких неправильных глаголов.

 разве что делать настройки где-то и хранить в кого переключаться в новой карточке.

собственно для такого и придуман local storage. но это уже если заморачивать серьёзнее с UX/usability.

17.02.2026 07:42 UTC
0

не встречал выбора опций

в предлогах, например.
там есть и радиогруппа и текстовое поле

в глаголах только текстовое поле

@Dr_Faksov
13.02.2026 15:43 UTC
0

Что можете посоветовать по испанскому языку?

@Areso
13.02.2026 16:38 UTC
0

На удивление, грамматика испанского языка для меня не была сложной. Только спряжения глаголов, для них я сделал https://spanish.areso.pro/slideshow.html , типа Анки, только полностью пассивное.

Ну и Полиглот.

13.02.2026 18:45 UTC
0

Спасибо!

@durnoy
14.02.2026 05:14 UTC
0

Хвалят приложение ConjuGato Spanish Verbs, но лично не знаком.

14.02.2026 16:07 UTC
0

Тоже использовал, стоял на телефоне.

15.02.2026 16:34 UTC
0

Спасибо, попробую.

@pecheny
14.02.2026 17:10 UTC
0

Вот казалось бы, контент отлично подходит для использования в виде колоды anki.
Функционала там должно хватить – колоду можно разбивать на подколоды, что закрывает потребность работы с темами.
Разве для справки немного изобретательности применить – либо отдельную колоду, либо с тэгами и через кастом стади. Зато вся сила интервальных повторений пойдет в ход. Почему же все-таки велосипед?

@george7887
16.02.2026 12:32 UTC
0

У всех есть выбор, но находятся люди которым не нравится конкретно это.