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

Ошибки

Решение проблем

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

Сообщение об ошибке — не приговор, а записка от программы о том, где ей стало непонятно.

— От редакции

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

Если не работает

Терминал пишет, что команда не найдена

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

Программа сообщает о синтаксической ошибке

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

Программа запускается, но ничего не выводит

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

У других работает, а у меня нет

Сравните версии языка и установленных библиотек, операционную систему и папку, из которой запускаете программу. Нередко дело в файле настроек или зависимости, которой у вас нет. Выручает список зависимостей с номерами версий в самом проекте.

В репозитории конфликт при слиянии

Конфликт означает, что одни и те же строки изменили в двух местах и система не знает, какой вариант оставить. Откройте файл, найдите отмеченные участки, выберите нужный вариант или объедините оба, удалите служебные отметки и зафиксируйте результат.

Пропали изменения, которые я делал

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

Как искать причину ошибки

  1. Прочитайте сообщение целиком

    Не закрывайте окно с ошибкой сразу. Найдите тип ошибки, файл и номер строки, выпишите ключевую фразу.

  2. Воспроизведите ошибку

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

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

  3. Вспомните последнюю правку

    Чаще всего ломается то, что трогали последним. Сравните текущую версию файла с той, что зафиксирована в репозитории.

  4. Сократите пример

    Убирайте части кода по одной, пока ошибка не исчезнет. Последний убранный фрагмент и есть главный подозреваемый.

  5. Поищите текст ошибки

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

  6. Спросите и запишите ответ

    Если не помогло, задайте вопрос сообществу по шаблону из раздела инструкций. Когда причина найдена, занесите её в свой дневник ошибок.

  • Инструкции

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

  • Инструменты

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

  • Вопросы

    Ответы о справочнике, об учёбе с нуля и о первых проектах на практике.

Источники

  • Документация Git
  • Документация Python

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