Я создал приложение с интервальными повторениями, чтобы соревноваться с Anki

У меня была одна цель: создать приложение для интервальных повторений, которое я сам хотел бы использовать.

Я пробовала Анки, и она мне не нравится. Это слишком медленно: требуется несколько секунд, чтобы добраться до экрана, на котором можно начать просмотр карточек.

Когда я стою в очереди, ожидая обеда, если на открытие этого проклятого приложения уходит больше секунды, я не буду им пользоваться. Пересмотр карточек должен быть легким и беспроблемным.

По крайней мере, это была идея.

Интервальное повторение

Интервальное повторение - это метод обучения, при котором вы пересматриваете вещи в зависимости от того, как часто вы их забываете. Лучшее время для того, чтобы что-то исправить - прямо перед тем, как вы это забудете. Есть несколько алгоритмов, которые пытаются это приблизить.

В дополнение к эффекту интервала это хорошо работает, потому что вы никогда не пытаетесь пересмотреть все одновременно. Представьте себе, что у вас есть тысячи карточек, которые вам нужно пересматривать каждый день, фиксируя все свои знания. Это невозможно.

Разбивая вещи в зависимости от того, насколько хорошо вы их помните, вы пересматриваете только около пяти карточек каждый день и успеваете запомнить все.

Этап 0: Требования к сбору

У меня есть iPhone, значит, это должно быть приложение для iOS. Это означало изучение iOS dev и Swift с нуля. Это стало побочной целью побочного проекта: научиться iOS dev.

Конечно, я мог бы использовать React Native или какой-нибудь другой фреймворк, но я придерживался нативной iOS, потому что она должна была работать быстро.

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

Кроме того, Anki сложен, и его легко использовать неправильно. На этом сайте тысячи слов о том, что может пойти не так. Я решил избавиться от гибкости Anki, чтобы не допустить попадания в режимы отказа.

Фаза 1: Ползание прицела

Когда я думал о проекте, я был в восторге. Почему только я, должно быть, много других людей тоже этого захотят! И пока я изучаю вещи, почему бы не узнать и другие вещи? Я тоже хотел изучить Лисп: давайте создадим сервер на Лиспе.

Предупреждение для меня в будущем: самый маленький эксперимент, который я могу провести, редко бывает самым маленьким экспериментом, который я могу провести.

Итак, теперь я создаю это невероятно быстрое приложение, в котором есть сервер, построенный на Lisp.

Моя рационализация для сервера: HackerNews любит Lisp. Итак, если я создам что-то с Lisp, это получит больше голосов, а это значит, что на целевую страницу придет больше людей, а значит, больше продаж. Оглядываясь назад, это забавно.

Благодаря всему этому у меня уже был дизайн приложения. Проведите пальцем влево, если не помните ответ на подсказке. Проведите вправо, если вы это сделаете. Нажмите, чтобы показать ответ. При запуске вы видите эту карточку.

Затем вы можете перейти на второй экран со списком карточек, способом добавления карточек и их удаления.

  1. Самый быстрый способ - изменить, а значит, в один клик.
  2. Самое медленное - думать о добавлении новых карточек, поэтому два щелчка мышки.

Конечно, если есть сервер и синхронизация, мне также понадобится логин. Ой, а как насчет экспорта? Это вселяет в людей уверенность в том, что их карты не потеряются.

А поскольку я конкурирую с Anki, быстрый импорт из Anki.

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

Этап 2: объем резки

Поскольку я делал сервер на Лиспе, я не знал, с чего начать. Итак, я начал с приложения.

Примечание для будущего себя: У вас есть определенное количество очков сложности. Тратить их с умом .

После нескольких дней работы с приложением я понял, что создание сервера, входа в систему и т. Д. И т. Д. - это глупо.

Я забыл, что еще не подтвердил эту идею. На мой взгляд, поскольку я думал об этом каждый день и мой мозг не отверг эту гипотезу, это была хорошая идея. Простой эффект воздействия?

Я поймал себя на мысли, что мне нужно представить бета-версию другим людям, чтобы подтвердить свою гипотезу.

Вход в систему был лишним шагом, идущим против скорости. Так была синхронизация сервера. Так был экспорт. Могу добавить позже.

В конце концов, я создал приложение для iOS с двумя функциями: обычная версия карточек и раздел карточек с ежедневными напоминаниями. Это было для формирования умственных привычек.

Я решил максимально упростить задачу для пользователя, встроив передовой опыт прямо в приложение. У вас нет возможности сделать несколько колод, вы не можете выбрать, когда вы хотите повторно посетить карту. Я использовал прокси для повторного посещения: как быстро ты отвечаешь.

Таким образом, я воссоздал алгоритм SM2 без явного ввода пользователя. Как и Анки, я тоже случайным образом рандомизировал.

Я горжусь тем, что делает приложение прямо сейчас.

Фаза 3: управление эмоциями

Что меня больше всего удивило, так это то, насколько сложно может быть работа над побочным проектом. У меня появилось отвращение к проекту. Я не хотел его заканчивать.

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

Страх не знать, как двигаться дальше. «Я не знаю, как решить эту проблему. Я не разбираюсь в разработке под iOS. Я должен сначала пройти курс по iOS, где кто-нибудь будет держать меня за руку во всем ». (РЖУ НЕ МОГУ)

И как только я решил каждую задачу: «Я гений! Принеси следующий! …. Вот дерьмо, это сложнее ".

Я пробирался через все больше и больше проблем. И мне было бы комфортно с этим беспокойством.

Иногда я замечаю это беспокойство и на работе - когда я не знаю, как что-то делать, - но работа другая. Я трачу пять установленных часов каждый день, пытаясь решить рабочие проблемы. Мне не нужно сначала выбирать время, а потом работать над ним. Время для меня уже выбрано.

Совершенно другая игра с мячом, когда вы можете убежать и посмотреть Netflix без последствий.

Если бы я мог вернуться в прошлое, этот пост показался бы мне довольно глупым. «Куда мне бежать?» это не совсем вопрос. Конечно, вы всегда должны бежать к своим проблемам и решать их.

Этап 4: поиск подтверждения

QuickReps оказался слишком нишевым для моих друзей. Никто из них не слышал о повторении с интервалом, и это напомнило мне кое-что, что я слышал от Рори Сазерленда:

«Убедить людей в том, что X - проблема, а затем рассказать им, почему ваш продукт решает X, гораздо сложнее, чем убедить их, что ваш продукт решает X, когда они уже верят, что X - проблема».

Каждая дополнительная вещь, в которой вам нужно убедить людей, - это умножающийся барьер. Сначала мне пришлось объяснить интервальное повторение, затем рассказать о том, почему регулярное обучение неэффективно, а затем помочь им выбрать QuickReps вместо Anki.

Но эти люди были моими друзьями, поэтому я уговорил их хотя бы попробовать приложение. Я сделал то же самое. Оглядываясь назад, я должен был искать сообщество, уже хорошо разбирающееся в интервальных повторениях, для получения обратной связи.

Разрушительный удар, со всеми моими предположениями, заключался в том, что интервальное повторение не было подходящим инструментом для меня. Я не хотел его использовать. Мое предположение, что я не использовал Anki, потому что он был медленным и хреновым, было ошибочным.

QuickReps был невероятно быстрым, плавным и гораздо более ограниченным, чем Anki. Однако я им не воспользовался.

Этап 5: Принятие

Я так много читал о запуске побочного проекта, создании чего-то, чего хотят пользователи, и т. Д. И т. Д. Это легче понять, опираясь на неявный опыт, а не только на теории.

У меня еще осталось несколько последних штрихов, и я не могу заставить себя закончить QuickReps. Это снова внутренняя битва между рационализацией и рациональностью.

  • "Я зашел так далеко, я должен закончить это!" (Ошибка невозвратных затрат.)
  • «Альтернативные издержки высоки - я мог бы закончить это, но тогда я не работаю над тем, что мне действительно нравится».
  • «Я должен создать хотя бы целевую страницу, опубликовать на шоу HN, посмотреть, что думают люди». Внешняя мотивация может сработать.

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

Я еще даже не знаю, переключатся ли люди, использующие Anki, на что-то подобное. Я не знаю, сможет ли тот, кто не использует интервальные повторения, выработать привычку с помощью QuickReps.

В моей стратегии стало появляться намного больше дыр после того, как мое первое предположение «Построй для себя» не удалось. Для восстановления мне нужно пройти внешнюю проверку, а я этого не делал. Пока что.

Принять это было тяжело.

Повторить

Если бы мне пришлось что-то делать снова, что бы я изменил?

Я бы попробовал проверить свою гипотезу без кода. В данном конкретном случае это сделать намного сложнее.

Теперь, когда я знаю ответ, я хотел бы сказать, что я был бы более осторожен с моей гипотезой, но я думаю, что это неправильный урок, который можно извлечь из этого. «Осторожнее» бесполезно. Что было бы полезно, так это небольшая проверка, скажем, части гипотезы.

«Я бы использовал его, если бы он был быстрее, чем Twitter». Я могу проверить это, сделав Twitter и все остальное на моем телефоне медленными. (Например, с помощью блокировщиков в этих приложениях). Но в результате я перестаю пользоваться телефоном.

Нежелание

Мне нужен инструмент для размышлений. Лучшее, что я знал, - это повторение с интервалом.

Вскоре после этого я познакомился с Зеттелькастен и новым парнем в этом районе, Роумом, которого я полюбил. Мне не нужно было запоминать все, что я читал, чтобы установить нужные связи.

Плавник

Я втайне надеюсь, что это вскрытие вызовет достаточно интереса, чтобы побудить меня закончить дело.

Однако я не думаю, что это вероятно. Это одна из тех мечтаний «молодой ребенок спасает мир». Вот только здесь нет молодых людей, и миру не грозит «космическое повторение».

Однако такая маловероятность не должна останавливать меня от выполнения минимума! Итак, если вы хотите, чтобы это приложение существовало, дайте мне знать в комментариях.