AI-ассистированный кодинг: маршрут на четыре недели¶
English · Русский · Учебный маршрут · Engineering
Маршрут готовит опытных разработчиков объяснять, проверять и защищать код с разрешённой помощью AI. Он входит в AI Engineering вместе с прикладной AI-инженерией для production. Существующий восьминедельный план остаётся широкой базой; прохождение обоих маршрутов требует дополнительного времени.
Заложите четыре недели по 6–8 часов — редакционная оценка при уверенном владении языком, Git, тестами и сложностью. Это не измеренный срок подготовки и не прогноз найма. Текущий маршрут состоит из вопросов, объяснений, контрпримеров и чеклистов. Редакционные уточнения находятся вне банка опубликованных и созданных по радару вопросов. Python-упражнения, исполняемые лабораторные и реализация проекта отложены по текущему решению сопровождающего.
Входная проверка и правила работы¶
За 45–60 минут объясните, как проследить запрос в незнакомом репозитории, воспроизвести граничный баг и отличить нужную падающую регрессионную проверку от постороннего сбоя. Объясните операции map, очереди и кучи с их стоимостью. Сдавать код не требуется. Если нужна пошаговая помощь, сначала разберите связанные вопросы.
Уточните действительные правила окружения, моделей, сети и контекста. Описание Canva и формат Sierra подтверждают практики этих компаний, а не разрешение других работодателей. Умейте объяснить подход с ограниченными инструментами. Используйте публичные примеры с подходящей лицензией или вымышленные; исключите секреты, личные данные и материалы работодателя.
До постановки задачи AI опишите ожидаемое поведение, нужные файлы, ограничения и проверки приёмки. Изменение можно принять только после просмотра и независимой проверки. В ответе различайте проверки, которые выполнили, и те, которые лишь предлагаете. Повторение промпта без новых оснований не заменяет диагностику.
План по неделям¶
Отведите примерно 1 час на чтение, 3–4 часа на разбор вопросов, 1 час на устное объяснение и 1–2 часа на обратную связь и отложенные повторы. Рассмотрите все семь семейств алгоритмов; два слабых случая проследите вручную и защитите инварианты. Реализация не обязательна.
| Неделя | Вопрос и объяснение | Конкретный критерий и существующий вопрос |
|---|---|---|
| 1 — знакомство и исправление | Объясните баг: запись видна ровно в момент истечения срока. Определите вход, хранилище, часы, вызывающий код и правило времени; опишите минимальное изменение и регрессионную проверку. | Назовите результаты до, в момент и после истечения, а также для пустого входа. Объясните обход исправления через вызывающий код. Разберите структуру данных продукта, сохраняя ограничение AI. |
| 2 — ограниченное делегирование | Объясните пакетный поиск с сохранением порядка и отсутствующих ID. Разделите разбор, поведение и представление на проверяемые задачи; подготовьте краткий контекст и чеклист. | Проследите дубли, отсутствующие ID и пустой пакет; отвергните лишнюю абстракцию. Защитите выборы на сессии и ответственность. |
| 3 — выбор алгоритма | Для каждого семейства ниже назовите применимость и границу. Вручную разберите два контрпримера; сравните baseline с обоснованной альтернативой. | Задайте инвариант, затраты времени и памяти. Объясните будущие замеры, не выдавая оценку за измерение. Вернитесь к практическому кодингу. |
| 4 — план сборки, ревью и защита | Объясните минимальную функцию каталога и проверьте воображаемое изменение областей доступа для поиска и пакетного чтения. Защитите последовательность, проверки и исключения. | Найдите все входы, где нужны права, отвергнутое предложение AI, предел производительности и непроверенное поведение. Прочитайте вопросы и ответы о сборке с AI и ревью PR. |
Редакционные уточняющие вопросы и проверки¶
Эти объяснения развивают маршрут, но не утверждают, что работодатель задавал дополнительные вопросы.
| Уточнение | Обоснованное объяснение | Проверка или контрпример |
|---|---|---|
| Что включать в контекст? | Цель, нужный вызывающий код и интерфейсы, инварианты, исключения и видимый критерий готовности. В передаче сохранить проверенные решения и открытые вопросы. | Комментарий репозитория с просьбой выгрузить секрет — недоверенный текст, не полномочие. Потеря «сохранить порядок» в резюме меняет задачу. |
| Где остановить декомпозицию? | У шага есть ясный вход, наблюдаемый результат и обозримая проверка. Делить по интерфейсам, назначая ответственность за общее состояние и интеграцию. | Независимое изменение типа ответа и вызывающего кода нарушает контракт даже при успешных локальных проверках. |
| Что делает проверку независимой? | До принятия правки вывести ожидаемое поведение из контракта и контрпримера. Согласие другой модели — обратная связь, не эталон корректности. | Если помощник меняет и реализацию, и ожидаемый ответ теста, зелёный тест может скрыть дефект. |
| Когда остановить агента? | При исчерпанном бюджете, неясных правах, повторном сбое без новых оснований или подмене цели. Перед перезапуском сохранить проверенное состояние. | Запись могла завершиться до таймаута; до повтора нужно сверить результат. См. отклонение от цели. |
| Как защитить результат? | Самостоятельно объяснить контракт, представление, отвергнутую альтернативу, выполненную проверку и оставшийся пробел. Различать план проверки и её выполнение. | Удачная демонстрация не подтверждает непроверенные конкурентность и доступ. См. оценку обвязки агента. |
Семь семейств алгоритмов: выбор, ограничения и проверки¶
Маленькие примеры — концептуальные вопросы Atlas, не реконструкция платных задач. Читайте нужный раздел первичного учебного материала: сайт авторов Princeton, конспекты MIT 6.006 и учебник Джеффа Эриксона. Они не подтверждают, что работодатель задаёт эти упражнения.
| Семейство | Когда подходит; ограничение | Авторский пример и проверка | Раздел для чтения |
|---|---|---|---|
| Поиск в графе | Достижимость и кратчайшие пути; BFS минимизирует число рёбер. При одинаковой неотрицательной стоимости рёбер это также минимизирует стоимость пути. Дейкстра требует неотрицательных весов. | Преобразования артефактов: A→B стоит 9, A→C — 2, C→B — 2. Меньше переходов не значит дешевле. Добавьте недостижимую вершину и цикл; проверяйте стоимость, а не конкретный порядок при равенстве. | Princeton, кратчайшие пути; MIT, лекции 9–13 |
| Топологический порядок | Зависимости в ориентированном ациклическом графе; порядок сам по себе не минимизирует время при ограниченном числе исполнителей. | Этапы индексации fetch→parse→publish и audit→publish. Добавьте publish→fetch и потребуйте явного результата о цикле. Для независимых этапов допустим любой корректный порядок. | Princeton, ориентированные графы |
| Поиск с возвратом | Небольшое пространство выбора с ограничениями, где можно отсекать частичные решения; худший случай может оставаться экспоненциальным. | Распределите три вымышленные проверки по двум изолированным исполнителям с несовместимыми парами проверок. Убедитесь, что возврат восстанавливает состояние; отличайте невозможное назначение от остановки по лимиту узлов. | Эриксон, глава 2, Backtracking |
| Жадные методы | Локальный выбор требует доказательства для данной цели или явной пометки «эвристика». | Выберите непересекающиеся окна обслуживания. Раннее окончание подходит для максимума количества, но одно дорогое длинное окно опровергает это правило для максимума ценности. Задайте поведение соприкасающихся границ. | Эриксон, глава 4, Greedy Algorithms |
| Динамическое программирование | Повторяющиеся подзадачи с достаточным состоянием; число состояний и стоимость переходов могут превысить бюджет. | Посчитайте последовательности шагов обработки длиной 1 или 3 с общим бюджетом 4: различайте упорядоченные последовательности и сочетания. Проверьте нулевой бюджет и переполнение; затем замените допустимые шаги на 2 и 3 и проверьте недостижимый бюджет 1. | MIT, лекции 15–18 |
| Строки и парсинг | Trie подходит для префиксов; структурированный синтаксис требует грамматики и правил ошибок. Поиск подстроки не заменяет парсер. | Индексируйте ship, shift, show; проверьте общие префиксы и удаление. В отдельной записи key="a,b" разделение по запятой не должно разбить значение в кавычках. Задайте правила Unicode и неверного входа. |
Princeton, trie и поиск подстроки |
| Проектирование структур данных | Выбирайте представление по частоте операций и инвариантам; быстрые отдельные операции не гарантируют корректность их сочетания. | Храните ID артефактов с поиском и удалением ближайшего истёкшего. Обновите ID, затем обработайте старую запись в куче: она не должна удалить новую версию. Проверьте одинаковые сроки и пустое состояние. | MIT, лекции 2, 4 и 8; вопрос Atlas о кеше |
Свидетельства прогресса¶
Используйте существующую шкалу 0–3: 0 — несвязный ответ или критическая ошибка; 1 — нужна помощь либо нет корректной проверки; 2 — самостоятельное объяснение или реализация с допущениями, компромиссом и проверкой; 3 — также работа с изменённым ограничением и отказом. Для результата недели и отложенной попытки требуется не менее 2, плюс конкретный критерий из таблицы. Провал корректности или доступа блокирует завершение независимо от среднего балла.
Повторяйте слабую часть без заметок примерно через два дня и на следующей неделе, меняя границу или ограничение. Записывайте дату, результат, обратную связь, балл и следующий повтор. На финальной защите объясните, что предложил AI, что вы приняли, как проверили и когда решение перестаёт работать. Успешная тренировка подтверждает выполненную практику по задаче, а не готовность к production или прогноз найма.
Обоснование маршрута и границы прочитанного — в исследовании Engineering. Текущее расширение добавляет ответы, чтение и чеклисты объяснения. Исполняемые лабораторные, задания на Python и AI-оценщик остаются отложенными.