Найти в Дзене

Дневник Python-разработчика. Неделя #13: Наконец-то! Теперь я могу начать пользоваться своей же программой.

Всё готово! Я только что закончил писать код, который будет записывать каждое моё действие в английском: каждое новое слово, каждую попытку вспомнить, каждую секунду практики. Завтра начинается главное - первый день, когда я наконец начну учить язык не вслепую, а с полным пониманием, что и как я делаю. Это будет честный эксперимент над собой. Началось всё с простого инсайта, который пришёл ко мне, когда я писал код для сохранения практик. Я осознал: не могу делать то, что сам ненавижу - очередной скучный тренажёр с искусственными упражнениями. Вместо тренажёра я решил создать фитнес-трекер для языка. Инструмент, который: Именно такая программа позволит достичь цели - освоить язык в полной мере. "Система активностей" - это и есть сердце такого трекера. И её создание стало главным итогом этой продуктивной недели. А теперь - к деталям: что сделал на этой неделе и как это работает. Раньше у меня было две почти идентичные функции для обновления чанка. Теперь в этом нет необходимости, так к
Оглавление

Всё готово!

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

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

Это будет честный эксперимент над собой.

Началось всё с простого инсайта, который пришёл ко мне, когда я писал код для сохранения практик.

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

Вместо тренажёра я решил создать фитнес-трекер для языка. Инструмент, который:

  • Контролирует выполнение практик.
  • Отслеживает продвижение, показывая статистику.
  • Хранит всё необходимое: чанки, предложения для письма.
  • Анализирует данные и помогает корректировать обучение.

Именно такая программа позволит достичь цели - освоить язык в полной мере. "Система активностей" - это и есть сердце такого трекера. И её создание стало главным итогом этой продуктивной недели.

А теперь - к деталям: что сделал на этой неделе и как это работает.

Убрал дублирование в коде и расширил модель чанка.

Иллюстрация формы изменения чанка с новым полем - произношение.
Иллюстрация формы изменения чанка с новым полем - произношение.

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

Объединил их в одну. Стало логичнее и проще для поддержки.

А ещё - добавил поле произношение.

Да, записать его для 3-4 слов в чанке может быть непросто, но для качественного запоминания это критически важно.

Сделал первую практику: заменил сложный алгоритм на список чекбоксов.

Иллюстрация упражнения на запоминание слов с реализацией в виде чекбоксов
Иллюстрация упражнения на запоминание слов с реализацией в виде чекбоксов

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

Почему чекбоксы? Потому что это самое простое решение, которое пришло мне в голову.

Раньше был интерфейс с переключением шагов. Теперь - простое и понятное правило: пока все галочки не стоят, практика не завершена.

Сначала - работающий механизм, потом - оптимизация.

Добавил возможность запоминать один конкретный чанк.

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

Иногда нужно отработать не то, что предлагает алгоритм интервальных повторений, а один конкретный чанк.

На реализацию этой точечной возможности ушло всего полчаса.

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

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

Иллюстрация формы фильтров
Иллюстрация формы фильтров

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

Фильтры - это не просто "удобно". Для трекера это необходимость. Как можно контролировать прогресс, если не видишь, что именно у тебя есть? Теперь я могу одним кликом показать только "сырые" чанки для добавления информации или только изученные - для повторения.

Иллюстрация функции фильтра виджетов чанок. Реализован на стороне интерфейса, так как пока что это самое простое решение.
Иллюстрация функции фильтра виджетов чанок. Реализован на стороне интерфейса, так как пока что это самое простое решение.

Опять же, я не стал придумывать что-то сложное. Просто фильтрую список и скрываю всё, что не подходит под условия.

Создал систему активностей.

Иллюстрация объекта активности
Иллюстрация объекта активности

Я не хотел начинать запоминать слова, пока не появится механизм сохранения данных о практиках. Так родилась система активностей - "чёрный ящик" моего трекера.

Её принцип прост: фиксировать каждое действие и его длительность. Сейчас она записывает три типа событий: добавление нового чанка, начало его изучения и выполнение практики на запоминание.

Каждая активность хранит ключевые данные: тип, время начала и завершения, продолжительность, связанный чанк, поле для дополнительных данных, которое пока остаётся пустым.

В этом и есть суть трекера. Это не тренажёр, который заставляет делать упражнения. Это инструмент, который честно показывает, что и сколько ты делал.

Теперь я могу наконец начать учить слова, зная, что каждое моё усилие будет учтено и превратится в статистику для анализа.

Следующий шаг - на основе этих "сырых" данных построить первую систему статистики.

Итоги недели.

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

При этом, я наконец осознал, что создаю именно трекер, а не тренажёр.

Да, на этой неделе я опять не изучал Python и не изучал английский. Однако, система готова к первым практикам, и у меня больше не остаётся отговорок, чтобы не начинать их.

Следующую неделю я планирую посвятить её испытаниям.

Присоединяйтесь!

Подключайтесть! То есть, присоединяйтесь.
Подключайтесть! То есть, присоединяйтесь.

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

А что думаете вы? Если у вас есть опыт, мысли или вопросы по поводу изучения языка через чанки - оставляйте комментарии! Давайте обсудим разные подходы: что работает лично для вас, а что кажется искусственным?

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