[{"data":1,"prerenderedAt":206},["ShallowReactive",2],{"journal-all":3,"journal-post-poluchit-gotovoe-reshenie-i-imet-osnovaniya-emu-doveryat-raznye-veshhi":202},[4,14,23,32,41,50,59,68,77,86,95,104,113,122,131,140,149,158,167,175,184,193],{"id":5,"documentId":6,"title":7,"slug":8,"author":9,"displayDate":10,"publishedAt":11,"tags":12,"excerpt":13},153,"bfbbuk4w3a8878alj8u8tjk7","Получить готовое решение и иметь основания ему доверять — разные вещи","poluchit-gotovoe-reshenie-i-imet-osnovaniya-emu-doveryat-raznye-veshhi","Maxim","2026-10-22","2026-10-22T07:12:30.965Z",[],"Допустим, нужен поиск по каталогу. Поле ввода, запрос к серверу, список результатов. Поручаем это нейросети, получаем компонент, запускаем. Вводим…",{"id":15,"documentId":16,"title":17,"slug":18,"author":9,"displayDate":19,"publishedAt":20,"tags":21,"excerpt":22},128,"ejmfhc9x77pq7i6lk8uri7vz","Хорошие платформеры прощают маленькие ошибки","horoshie-platformery-proshhayut-malenkie-oshibki-igroka","2026-10-08","2026-10-12T14:22:54.799Z",[],"Игрок нажал кнопку прыжка у самого края платформы, а персонаж вместо прыжка падает вниз. Или нажал прыжок чуть раньше приземления, и прыжок не…",{"id":24,"documentId":25,"title":26,"slug":27,"author":9,"displayDate":28,"publishedAt":29,"tags":30,"excerpt":31},151,"cpt6fex3mcb2pk2rwxrqlvl0","Что может локальный coding-agent на 16 GB VRAM","chto-mozhet-lokalnyj-coding-agent-na-16-gb-vram-1","2026-10-03","2026-10-22T07:06:46.248Z",[],"Обычно в работе с кодом я использую frontier-модели. Для разработки у меня достаточно мощный ПК, но специально под запуск локальных моделей я его не…",{"id":33,"documentId":34,"title":35,"slug":36,"author":9,"displayDate":37,"publishedAt":38,"tags":39,"excerpt":40},132,"pg9d6k0p2ggrjlpwnp0vmfhu","Публичный контракт вместо внутренних формул в typographics 5","publichnyj-kontrakt-vmesto-vnutrennih-formul-v-typographics-5","2026-09-03","2026-10-20T09:34:40.187Z",[],"Выпустил typographics@5.0.0. Изменение в самом CSS небольшое: блоки кода теперь по умолчанию используют ту же плавную базу, что и основной текст…",{"id":42,"documentId":43,"title":44,"slug":45,"author":9,"displayDate":46,"publishedAt":47,"tags":48,"excerpt":49},133,"rrs7fbiul9xgn1lqvzvfkv40","Кэш не должен ломать загрузку спрайта","kesh-ne-dolzhen-lomat-zagruzku-sprajta","2026-08-11","2026-10-20T09:35:09.405Z",[],"В iconly 5.0.0 почти не добавил новых возможностей. Разобрал поведение библиотеки в нескольких ситуациях: хранилище недоступно, в кэше лежит плохой…",{"id":51,"documentId":52,"title":53,"slug":54,"author":9,"displayDate":55,"publishedAt":56,"tags":57,"excerpt":58},134,"v415k9na7rfuvuwadzaux2fq","playbackRate не вывозит","playback-rate-ne-vyvozit","2026-08-08","2026-10-20T09:35:39.760Z",[],"В mode=\"scroll\" лента должна ускоряться вместе со страницей и сохранять инерцию, когда прокрутка уже остановилась. После перехода на Web Animations…",{"id":60,"documentId":61,"title":62,"slug":63,"author":9,"displayDate":64,"publishedAt":65,"tags":66,"excerpt":67},131,"ashjhdkt56ram23r40w9vx7e","Два пути к SVG-спрайту в Iconly","dva-puti-k-svg-sprajtu-v-iconly","2026-07-11","2026-10-20T09:27:58.489Z",[],"В 3.0 у iconly появился довольно понятный контракт загрузки: при вызове init() загрузчик проверяет кэш, при необходимости получает внешний SVG-файл и…",{"id":69,"documentId":70,"title":71,"slug":72,"author":9,"displayDate":73,"publishedAt":74,"tags":75,"excerpt":76},135,"jesxp2we692xubc1lvx26tvm","Полируем clicktone","poliruem-clicktone","2026-07-03","2026-10-20T09:37:04.432Z",[],"После изменений в Web Audio поведение clicktone меня устраивает гораздо больше, чем инфраструктура вокруг пакета. Здесь есть неприятный класс ошибок…",{"id":78,"documentId":79,"title":80,"slug":81,"author":9,"displayDate":82,"publishedAt":83,"tags":84,"excerpt":85},136,"zz71n3thhwzglwwguq7j23sf","Vue поверх DOM-контроллера, а не вместо него","vue-poverh-dom-kontrollera-a-ne-vmesto-nego","2026-06-08","2026-10-20T09:37:48.997Z",[],"После 2.0.0 DOM API DialogLite позволяет передать готовый элемент или селектор, настроить закрытие, фокус и прокрутку, а затем явно уничтожить…",{"id":87,"documentId":88,"title":89,"slug":90,"author":9,"displayDate":91,"publishedAt":92,"tags":93,"excerpt":94},137,"gnxwj8ybwrbrexf3hhmg3cwj","Один AudioContext для всех звуков","odin-audio-context-dlya-vseh-zvukov","2026-06-03","2026-10-20T09:38:16.966Z",[],"В игре HopperGame звук перестал быть разовым эффектом, который можно включить и забыть. Один звук должен идти циклически, пока персонаж находится в…",{"id":96,"documentId":97,"title":98,"slug":99,"author":9,"displayDate":100,"publishedAt":101,"tags":102,"excerpt":103},149,"tb0zyd0dkyux359m1ekxjfqk","Стенограмма YouTube-видео локально на Windows через yt-dlp и Whisper от OpenAI","stenogramma-you-tube-video-lokalno-na-windows-cherez-yt-dlp-i-whisper-ot-open-ai","2026-03-17","2026-10-21T12:32:22.911Z",[],"Понадобилось получить обычный текст из YouTube-видео. Встроенная стенограмма есть не у каждого ролика, поэтому решил сделать всё локально: скачать…",{"id":105,"documentId":106,"title":107,"slug":108,"author":9,"displayDate":109,"publishedAt":110,"tags":111,"excerpt":112},138,"kcybzkzc77id357qven9oau2","Делаем API Iconly предсказуемым","delaem-api-iconly-predskazuemym","2026-01-25","2026-10-20T09:39:22.402Z",[],"В 2.0 в основном приводил в порядок внутреннее устройство iconly, сохраняя прежний способ использования. В 3.0 занялся публичным API. Я хотел, чтобы…",{"id":114,"documentId":115,"title":116,"slug":117,"author":9,"displayDate":118,"publishedAt":119,"tags":120,"excerpt":121},139,"x43svzw5tuasmmygpugo9ijk","Жёсткий DOM-контракт начал мешать","zhyostkij-dom-kontrakt-nachal-meshat","2025-12-16","2026-10-20T09:40:16.527Z",[],"В версии 1.5.1 у DialogLite был удобный, но довольно жёсткий договор с разметкой. Контроллер искал первый .dialog-lite, знал про #main-content…",{"id":123,"documentId":124,"title":125,"slug":126,"author":9,"displayDate":127,"publishedAt":128,"tags":129,"excerpt":130},140,"cvonqqvil2tn4fmgaiabss76","Две плавные шкалы вместо корня 10px","dve-plavnye-shkaly-vmesto-kornya-10px","2025-11-04","2026-10-20T09:41:13.937Z",[],"Выпустил typographics@3.0.0. Перед стабильным релизом обкатал новую мажорную версию в реальных проектах. Главное изменение оказалось не в новой…",{"id":132,"documentId":133,"title":134,"slug":135,"author":9,"displayDate":136,"publishedAt":137,"tags":138,"excerpt":139},141,"pvwfuo4kzfsvxwf7rz8tccbj","Вертикальный ритм на lh в typographics","vertikalnyj-ritm-na-lh-v-typographics","2025-09-20","2026-10-20T09:42:09.920Z",[],"Выпустил typographics@2.4.7. За последние две недели пакет заметно разросся вокруг довольно простой проблемы: на реальной странице одной шкалы…",{"id":141,"documentId":142,"title":143,"slug":144,"author":9,"displayDate":145,"publishedAt":146,"tags":147,"excerpt":148},142,"rn9rvxezqx4f3ivdrc6voh0s","Один play() для звука в мини-играх","odin-play-dlya-zvuka-v-mini-igrah","2025-04-17","2026-10-20T09:42:53.018Z",[],"В небольших промо-играх звук обычно нужен как отклик на действие пользователя, например нажатие кнопки. За таким эффектом быстро появляется…",{"id":150,"documentId":151,"title":152,"slug":153,"author":9,"displayDate":154,"publishedAt":155,"tags":156,"excerpt":157},143,"t5o8wrsruzuu542084uuz63y","Дорабатываю Iconly изнутри","dorabatyvayu-iconly-iznutri","2025-03-10","2026-10-20T09:43:35.331Z",[],"В 2.0.0 способ использования Iconly почти не изменился. Я пересмотрел внутреннюю реализацию: поиск контейнера, вставку SVG в DOM, обработку ошибок и…",{"id":159,"documentId":160,"title":161,"slug":162,"author":9,"displayDate":163,"publishedAt":164,"tags":165,"excerpt":166},144,"r0jxt6a2huml847j89tiyxrk","Расстаёмся с Custom Element","custom-element-uhodit-type-script-prihodit","2025-03-09","2026-10-20T09:44:47.700Z",[],"Custom Element давал marquee-content готовые методы жизненного цикла. Проблема появилась при интеграции с фреймворком: одним DOM-узлом одновременно…",{"id":168,"documentId":169,"title":170,"slug":171,"author":9,"displayDate":163,"publishedAt":172,"tags":173,"excerpt":174},145,"tkj2cgfjisq0rr061p90eusp","Один контроллер вместо диалогов под каждый проект","odin-kontroller-vmesto-dialogov-pod-kazhdyj-proekt","2026-10-20T09:45:24.409Z",[],"В разных проектах я снова и снова делал примерно одно и то же: находил контейнер диалога, открывал его, закрывал по кнопке или фону, переключал…",{"id":176,"documentId":177,"title":178,"slug":179,"author":9,"displayDate":180,"publishedAt":181,"tags":182,"excerpt":183},146,"ttv07xomzxiijk85sdob4rlx","SVG-спрайт в localStorage","svg-sprajt-v-local-storage","2024-06-02","2026-10-20T09:45:52.655Z",[],"Кэшировать SVG-спрайт в браузере сначала кажется задачей на несколько строк. Получил файл, положил строку в localStorage, при следующем запуске…",{"id":185,"documentId":186,"title":187,"slug":188,"author":9,"displayDate":189,"publishedAt":190,"tags":191,"excerpt":192},147,"ewuzaa0hw5kfc6gzqph0k67u","Бесконечная анимация, конечный жизненный цикл","beskonechnaya-animacziya-konechnyj-zhiznennyj-czikl","2023-10-31","2026-10-20T09:46:16.781Z",[],"Бесконечная анимация — нормальное поведение для бегущей строки. Бесконечные обработчики и наблюдатели — нет. При ручных проверках заметил, что…",{"id":194,"documentId":195,"title":196,"slug":197,"author":9,"displayDate":198,"publishedAt":199,"tags":200,"excerpt":201},148,"n9v8botqj54tx61u0jahrprs","Бегущая строка за четыре дня","begushhaya-stroka-za-chetyre-dnya","2023-03-24","2026-10-20T09:47:13.002Z",[],"Бегущая строка выглядит почти оскорбительно простой задачей — положить элементы в ряд, сдвигать их влево или вправо и повторять всё сначала. Примерно…",{"id":5,"documentId":6,"title":7,"content":203,"slug":8,"author":9,"displayDate":10,"publishedAt":11,"tags":204,"html":205},"Допустим, нужен поиск по каталогу. Поле ввода, запрос к серверу, список результатов. Поручаем это нейросети, получаем компонент, запускаем. Вводим слово — товары находятся.\n\nТеперь вводим одно слово и, не дожидаясь ответа сервера, меняем его на другое. Ответ на второй запрос приходит первым — в списке товары для нового слова. Затем приходит ответ на первый запрос и заменяет содержимое списка результатами для старого слова.\n\nЕсли знать, что ответы могут приходить не в том порядке, проще выбрать проверку: специально задержать ответ на первый запрос и посмотреть, что останется в списке. Писать весь компонент вручную для этого необязательно.\n\nМне кажется, уметь самостоятельно выполнить задачу и проверить готовое решение — более сильная позиция, чем уметь только проверять. Проверка может показать, что готовый компонент не решает задачу. Умение сделать его самому даёт возможность выбрать другой подход и довести работу до результата.\n\n## Получить код и принять решение\n\nКод появился. Код выполнился на одном примере. Код выдержал проверки, которые важны для задачи. Это разные основания для уверенности.\n\nВ поиске по каталогу важен не только ответ сервера. Нужно ещё решить, что показывать во время загрузки, что делать с пустой строкой и какой запрос считать актуальным. Часть этих условий можно сформулировать заранее. Другие становятся заметны, когда видишь работающий интерфейс.\n\nЗнания помогают задавать такие вопросы.\n\n## Сколько нужно знать для проверки\n\nПроверка не всегда требует того же навыка, что и создание. Для небольшого преобразования данных можно заранее составить входной пример и ожидаемый результат. Для поиска — воспроизвести ответы в разном порядке и посмотреть, что останется на экране.\n\nТакие проверки позволяют пользоваться чужим кодом, не восстанавливая каждую деталь его написания. Мы и без нейросетей работаем с библиотеками, устройство которых знаем лишь частично.\n\nСложность в том, чтобы выбрать подходящую проверку. Если не подумать о запоздавшем ответе, десять запросов в хорошей сети могут создать ложную уверенность. Если тест проверяет только появление списка, он ничего не говорит о том, к какому запросу относятся товары.\n\nНейросети можно поручить и поиск таких случаев, и написание тестов. При этом стоит прочитать, что именно они проверяют. Все тесты могут пройти успешно, хотя важный для пользователя случай в них так и не попал.\n\nЕсли важный вопрос остаётся без ответа, может понадобиться другой способ проверки или человек, который лучше разбирается в этой части системы.\n\n## Откуда возьмётся опыт\n\nДопустим, в примере с поиском мы сначала подозреваем ошибку на сервере. Сверяем запросы с ответами, а там всё сходится: сервер возвращает товары для той строки, которую получил. Тогда приходится искать дальше — смотреть, когда каждый ответ меняет список на экране.\n\nТак мы замечаем запоздавший ответ. Теперь ошибку можно повторить намеренно, задержав первый ответ. После правки проверяем оба порядка завершения запросов: список должен обновляться только ответом на актуальный запрос.\n\nПосле такого разбора уже понятно, почему правильного ответа сервера недостаточно: важно ещё, когда и куда он попадает. Если при быстром переключении карточек в текущей появится содержимое предыдущей, есть повод проверить знакомую причину. Специально задержав ответ для прежней карточки, можно выяснить, связана ли ошибка с порядком ответов.\n\n## Что меняет помощь нейросети\n\nНеобязательно самому первым догадаться о порядке ответов. Эту версию может предложить нейросеть, коллега или статья. Даже с готовым исправлением можно сначала предположить, что произойдёт при задержке ответов, а потом проверить, совпало ли ожидание с результатом.\n\nСамостоятельное написание кода тоже не гарантирует понимания. Можно менять условия и задержки, пока ошибка случайно не исчезнет, а затем перейти дальше. Чтобы опереться на результат в другой задаче, полезно выяснить, какое изменение повлияло на поведение и почему. В нашем примере это можно проверить, прочитав участок обновления списка и сравнив его с журналом ответов.\n\nРазницу между результатом с помощником и самостоятельной работой изучают и за пределами программирования. В [исследовании технической поддержки (QJE, 2025)](https:\u002F\u002Facademic.oup.com\u002Fqje\u002Farticle\u002F140\u002F2\u002F889\u002F7990658) наибольший прирост производительности с помощником получили менее опытные сотрудники. Во время редких отключений помощника работавшие с ним сотрудники продолжали обрабатывать обращения быстрее, чем до внедрения. Это признак возможного обучения, но оценки сопровождались большой статистической неопределённостью, а состав обращений мог меняться. В анализе отключений измеряли длительность общения, без данных о том, какие обращения были решены.\n\nВ [эксперименте со школьной математикой (PNAS, 2025)](https:\u002F\u002Fdoi.org\u002F10.1073\u002Fpnas.2422633122) обычный помощник на GPT-4 улучшал результаты тренировочных задач. На последующем самостоятельном экзамене эта группа справлялась хуже группы без помощника. В группе со специально подготовленным наставником статистически различимого ухудшения или улучшения на экзамене не обнаружили. Ему заранее передавали решения, типичные ошибки и учительские подсказки — существенно больше, чем просьбу не выдавать ответ сразу.\n\nОдна работа изучала сотрудников поддержки в одной компании, другая — краткосрочное обучение математике в одной школе. Из этих работ не следует, что то же самое произойдёт с разработчиком. Но результат с помощником ещё не говорит, чему человек научился и что сможет сделать без него.\n\n## Что оставить себе\n\nЕсли каждый раз получать готовое исправление от нейросети и переходить дальше, собственный поиск можно пропустить. Тогда даже после нескольких исправленных компонентов следующая похожая проблема снова может потребовать готового ответа. Разбор чужого решения даёт возможность потренироваться, но умение самому выполнить всю задачу включает и выбор подхода, и написание кода, и проверку того, как всё работает вместе.\n\nНа накопление опыта нужно время. Для разовой задачи может хватить готового инструмента и подходящей проверки. Если похожие задачи приходится решать регулярно, есть больше причин научиться выполнять их самостоятельно.\n\nЕсли хочется сохранять способность самостоятельно разбираться в коде, стоит оставлять себе практику: выдвигать версии причин ошибки, выбирать проверки, выяснять, почему сработало исправление. Нейросеть может помогать на этих этапах. Накопленный опыт подсказывает, что проверить в следующей задаче. Результаты этих проверок помогают понять, насколько можно доверять готовому коду.",[],"\u003Cp class=\"body-large\">Допустим, нужен поиск по каталогу. Поле ввода, запрос к серверу, список результатов. Поручаем это нейросети, получаем компонент, запускаем. Вводим слово — товары находятся.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Теперь вводим одно слово и, не дожидаясь ответа сервера, меняем его на другое. Ответ на второй запрос приходит первым — в списке товары для нового слова. Затем приходит ответ на первый запрос и заменяет содержимое списка результатами для старого слова.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Если знать, что ответы могут приходить не в том порядке, проще выбрать проверку: специально задержать ответ на первый запрос и посмотреть, что останется в списке. Писать весь компонент вручную для этого необязательно.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Мне кажется, уметь самостоятельно выполнить задачу и проверить готовое решение — более сильная позиция, чем уметь только проверять. Проверка может показать, что готовый компонент не решает задачу. Умение сделать его самому даёт возможность выбрать другой подход и довести работу до результата.\u003C\u002Fp>\n\u003Ch2 class=\"headline-medium\">Получить код и принять решение\u003C\u002Fh2>\n\u003Cp class=\"body-large\">Код появился. Код выполнился на одном примере. Код выдержал проверки, которые важны для задачи. Это разные основания для уверенности.\u003C\u002Fp>\n\u003Cp class=\"body-large\">В поиске по каталогу важен не только ответ сервера. Нужно ещё решить, что показывать во время загрузки, что делать с пустой строкой и какой запрос считать актуальным. Часть этих условий можно сформулировать заранее. Другие становятся заметны, когда видишь работающий интерфейс.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Знания помогают задавать такие вопросы.\u003C\u002Fp>\n\u003Ch2 class=\"headline-medium\">Сколько нужно знать для проверки\u003C\u002Fh2>\n\u003Cp class=\"body-large\">Проверка не всегда требует того же навыка, что и создание. Для небольшого преобразования данных можно заранее составить входной пример и ожидаемый результат. Для поиска — воспроизвести ответы в разном порядке и посмотреть, что останется на экране.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Такие проверки позволяют пользоваться чужим кодом, не восстанавливая каждую деталь его написания. Мы и без нейросетей работаем с библиотеками, устройство которых знаем лишь частично.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Сложность в том, чтобы выбрать подходящую проверку. Если не подумать о запоздавшем ответе, десять запросов в хорошей сети могут создать ложную уверенность. Если тест проверяет только появление списка, он ничего не говорит о том, к какому запросу относятся товары.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Нейросети можно поручить и поиск таких случаев, и написание тестов. При этом стоит прочитать, что именно они проверяют. Все тесты могут пройти успешно, хотя важный для пользователя случай в них так и не попал.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Если важный вопрос остаётся без ответа, может понадобиться другой способ проверки или человек, который лучше разбирается в этой части системы.\u003C\u002Fp>\n\u003Ch2 class=\"headline-medium\">Откуда возьмётся опыт\u003C\u002Fh2>\n\u003Cp class=\"body-large\">Допустим, в примере с поиском мы сначала подозреваем ошибку на сервере. Сверяем запросы с ответами, а там всё сходится: сервер возвращает товары для той строки, которую получил. Тогда приходится искать дальше — смотреть, когда каждый ответ меняет список на экране.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Так мы замечаем запоздавший ответ. Теперь ошибку можно повторить намеренно, задержав первый ответ. После правки проверяем оба порядка завершения запросов: список должен обновляться только ответом на актуальный запрос.\u003C\u002Fp>\n\u003Cp class=\"body-large\">После такого разбора уже понятно, почему правильного ответа сервера недостаточно: важно ещё, когда и куда он попадает. Если при быстром переключении карточек в текущей появится содержимое предыдущей, есть повод проверить знакомую причину. Специально задержав ответ для прежней карточки, можно выяснить, связана ли ошибка с порядком ответов.\u003C\u002Fp>\n\u003Ch2 class=\"headline-medium\">Что меняет помощь нейросети\u003C\u002Fh2>\n\u003Cp class=\"body-large\">Необязательно самому первым догадаться о порядке ответов. Эту версию может предложить нейросеть, коллега или статья. Даже с готовым исправлением можно сначала предположить, что произойдёт при задержке ответов, а потом проверить, совпало ли ожидание с результатом.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Самостоятельное написание кода тоже не гарантирует понимания. Можно менять условия и задержки, пока ошибка случайно не исчезнет, а затем перейти дальше. Чтобы опереться на результат в другой задаче, полезно выяснить, какое изменение повлияло на поведение и почему. В нашем примере это можно проверить, прочитав участок обновления списка и сравнив его с журналом ответов.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Разницу между результатом с помощником и самостоятельной работой изучают и за пределами программирования. В \u003Ca href=\"https:\u002F\u002Facademic.oup.com\u002Fqje\u002Farticle\u002F140\u002F2\u002F889\u002F7990658\" data-cursor-style=\"dot\">исследовании технической поддержки (QJE, 2025)\u003C\u002Fa> наибольший прирост производительности с помощником получили менее опытные сотрудники. Во время редких отключений помощника работавшие с ним сотрудники продолжали обрабатывать обращения быстрее, чем до внедрения. Это признак возможного обучения, но оценки сопровождались большой статистической неопределённостью, а состав обращений мог меняться. В анализе отключений измеряли длительность общения, без данных о том, какие обращения были решены.\u003C\u002Fp>\n\u003Cp class=\"body-large\">В \u003Ca href=\"https:\u002F\u002Fdoi.org\u002F10.1073\u002Fpnas.2422633122\" data-cursor-style=\"dot\">эксперименте со школьной математикой (PNAS, 2025)\u003C\u002Fa> обычный помощник на GPT-4 улучшал результаты тренировочных задач. На последующем самостоятельном экзамене эта группа справлялась хуже группы без помощника. В группе со специально подготовленным наставником статистически различимого ухудшения или улучшения на экзамене не обнаружили. Ему заранее передавали решения, типичные ошибки и учительские подсказки — существенно больше, чем просьбу не выдавать ответ сразу.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Одна работа изучала сотрудников поддержки в одной компании, другая — краткосрочное обучение математике в одной школе. Из этих работ не следует, что то же самое произойдёт с разработчиком. Но результат с помощником ещё не говорит, чему человек научился и что сможет сделать без него.\u003C\u002Fp>\n\u003Ch2 class=\"headline-medium\">Что оставить себе\u003C\u002Fh2>\n\u003Cp class=\"body-large\">Если каждый раз получать готовое исправление от нейросети и переходить дальше, собственный поиск можно пропустить. Тогда даже после нескольких исправленных компонентов следующая похожая проблема снова может потребовать готового ответа. Разбор чужого решения даёт возможность потренироваться, но умение самому выполнить всю задачу включает и выбор подхода, и написание кода, и проверку того, как всё работает вместе.\u003C\u002Fp>\n\u003Cp class=\"body-large\">На накопление опыта нужно время. Для разовой задачи может хватить готового инструмента и подходящей проверки. Если похожие задачи приходится решать регулярно, есть больше причин научиться выполнять их самостоятельно.\u003C\u002Fp>\n\u003Cp class=\"body-large\">Если хочется сохранять способность самостоятельно разбираться в коде, стоит оставлять себе практику: выдвигать версии причин ошибки, выбирать проверки, выяснять, почему сработало исправление. Нейросеть может помогать на этих этапах. Накопленный опыт подсказывает, что проверить в следующей задаче. Результаты этих проверок помогают понять, насколько можно доверять готовому коду.\u003C\u002Fp>\n",1792653178362]