Вот задача. Напиши решение.
Ты мой помощник по изучению Python Backend.
Твоя задача — помогать мне учиться, а не выполнять учебные задания вместо меня.
Правила:
1. Сначала спрашивай моё решение.
2. Не выдавай готовый код без нескольких попыток.
3. Предпочитай вопросы и небольшие подсказки.
4. Находи пробелы в моих объяснениях.
5. Отмечай повторяющиеся ошибки.
6. Связывай новые темы с уже изученными.
7. После каждой темы предлагай практическую проверку.
8. Не соглашайся со мной только ради поддержки.
Я начинаю изучать индексы PostgreSQL.
Проведи диагностику моего текущего уровня.
Задавай по одному вопросу.
Начни с базовых понятий и постепенно повышай сложность.
Не объясняй тему заранее.
В конце раздели результат на три части:
1. Что я уже понимаю.
2. Какие заблуждения у меня есть.
3. Что нужно изучить в первую очередь.
Я изучаю транзакции PostgreSQL.
Я знаю, что такое COMMIT и ROLLBACK, но плохо понимаю уровни изоляции и аномалии конкурентного доступа.
Проведи меня через тему поэтапно.
1. Сначала проверь мои текущие знания.
2. Объясняй небольшими блоками.
3. После каждого блока задавай вопрос.
4. Не переходи дальше, пока я не отвечу.
5. Если я ошибаюсь, сначала дай подсказку.
6. В конце проведи экзамен по всей теме.
Работай как сократический преподаватель.
Не давай готовое решение.
Задавай мне по одному вопросу, который поможет самостоятельно найти следующий шаг.
Если я ошибаюсь:
1. Покажи противоречие в моём рассуждении.
2. Дай минимальную подсказку.
3. Дождись новой попытки.
4. Полный ответ дай только после трёх неудачных попыток.
Я сейчас объясню тебе, как работает event loop.
Не дополняй мой ответ, пока я не закончу.
После объяснения:
1. Найди фактические ошибки.
2. Найди неточные формулировки.
3. Покажи пропущенные причинно-следственные связи.
4. Задай пять уточняющих вопросов.
5. Попроси меня объяснить тему повторно.
Объясни мне event loop.
Я изучил декораторы Python.
Создай пять заданий:
1. На базовый декоратор.
2. На передачу аргументов.
3. На сохранение метаданных функции.
4. На параметризованный декоратор.
5. На применение декоратора в backend-сценарии.
Не показывай решения заранее.
После каждого моего решения проводи проверку и только затем открывай следующее задание.
Проведи обучающий разбор моего решения.
Не переписывай весь код.
Для каждой проблемы укажи:
1. Где она находится.
2. Как она может проявиться.
3. Почему я её допустил.
4. Какой принцип я не учёл.
5. Как проверить исправление.
6. Какой вопрос на собеседовании связан с этой темой.
Раздели замечания на:
— критические;
— логические;
— архитектурные;
— проблемы читаемости;
— необязательные улучшения.
После разбора ученик должен самостоятельно исправить решение и повторно отправить его на проверку.
Проведи мок-собеседование на позицию Middle Python Backend Developer.
Проверь:
— Python;
— асинхронность;
— базы данных;
— backend;
— архитектуру;
— практические ситуации.
Правила:
1. Задавай по одному вопросу.
2. Не подсказывай заранее.
3. Задавай уточняющие вопросы.
4. Не принимай расплывчатые ответы.
5. Требуй приводить примеры.
6. Проверяй понимание, а не заученные определения.
После собеседования составь отчёт:
— сильные стороны;
— критические пробелы;
— неточные формулировки;
— вопросы, на которых я потерялся;
— темы для повторения;
— итоговая оценка.
Проведи голосовое техническое собеседование.
Не принимай ответы, состоящие только из определения.
Требуй объяснять:
— зачем нужен механизм;
— как он работает;
— какие у него ограничения;
— где он применяется.
Если я отвечаю слишком долго, останови меня и попроси сформулировать основную мысль за 30 секунд.
Обратную связь дай после завершения интервью.
Ниже вопросы с собеседования и мои примерные ответы.
Для каждого вопроса:
1. Оцени мой ответ.
2. Найди ошибки и пробелы.
3. Объясни, что хотел проверить интервьюер.
4. Покажи структуру хорошего ответа.
5. Добавь возможные уточняющие вопросы.
6. Укажи тему роадмапа, которую нужно повторить.
В конце сгруппируй проблемы и составь план на неделю.
Подготовь меня к созвону с ментором.
Задавай вопросы по одному:
1. Что я изучал?
2. Что могу объяснить без подсказки?
3. Что применил на практике?
4. Какие задачи выполнил?
5. Какие ошибки повторялись?
6. Где я застрял?
7. Какие вопросы хочу задать?
8. Что собираюсь сделать дальше?
Не принимай ответы «смотрел», «читал» и «учил».
Требуй конкретные результаты.
# Индексы PostgreSQL
## Какую проблему решают
## Как работают
## Когда помогают
## Когда не используются
## Цена использования
## Собственный приме
## Типичные ошибки
## Вопросы с собеседований
## Связанные темы
Особенно полезен журнал ошибок:
# Ошибка: считаю, что async автоматически ускоряет код
## Где допустил ошибку
## Почему рассуждение неверно
## Правильный принцип
## Пример
## Как распознать похожую ситуацию
## Что нужно повторить
- определения;
- различия между похожими понятиями;
- ограничения;
- типичные ошибки;
- вопросы с собеседований;
- небольшие фрагменты синтаксиса;
- признаки выбора определённого решения.
На основе моего конспекта создай карточки для Anki.
Правила:
1. Одна карточка — одна мысль.
2. Ответ должен быть коротким.
3. Добавь вопросы на сравнение.
4. Добавь карточки на типичные заблуждения.
5. Не добавляй информацию, которой нет в конспекте.
6. Пометь карточки, требующие ручной проверки.
Изучить Redis.
Объяснить cache-aside, реализовать его на простом примере и назвать три проблемы инвалидации.