IT-английский: стартовый словарь
Зачем это нужно
Английский — рабочий язык всей индустрии. Документация к инструментам, сообщения об ошибках, ответы на форумах, названия кнопок в программах — всё это на английском, и переводится на русский с опозданием или никогда. Даже сам код состоит из английских слов: ты будешь писать if, while и error независимо от того, на каком языке думаешь. Тот, кто ждёт русский перевод, всегда на шаг позади того, кто прочитал оригинал.
Хорошая новость: для старта не нужен «свободный английский». Технические тексты специально пишут ограниченным набором слов — пара сотен терминов покрывает почти всё, что ты встретишь в первый год. В этой главе — стартовый словарь из четырёх десятков слов, разбор реальных сообщений об ошибках буквально по словам и главный практический навык, без которого ни один список слов не поможет: как читать сообщение об ошибке и как искать решение по-английски, а не закрывать записку в панике.
Анатомия сообщения об ошибке
Когда программа ломается, она не ругается — она оставляет записку: что пыталась сделать и что пошло не так. У записки есть строение, и в разных инструментах оно чуть отличается — но принцип общий: источник (кто говорит), виновник (к чему относится проблема) и суть (что именно случилось), разделённые двоеточиями.
Новички закрывают эту записку не читая, а зря: в ней почти всегда написано, как всё починить.
Возьмём настоящее сообщение — такое действительно печатает Linux-команда cat, если попросить её показать несуществующий файл. Наведи курсор на каждую часть:
Читаем целиком: «cat: report.txt: нет такого файла или каталога». Не «ты плохой программист», а конкретный факт — команде cat не удалось найти файл с таким именем. У этого сообщения нет отдельного слова error — и это не упрощение, а особенность стиля: многие Linux-утилиты (cat, ls, rm и десятки других) вообще не пишут слово «error», они просто называют себя, называют виновника и объясняют суть. Уровень серьёзности здесь виден по-другому — по факту, что команда остановилась и ничего не сделала.
Другой распространённый стиль — у git и у компиляторов — явно называет уровень словом в начале строки: fatal: (фатально — операция полностью прервана), error: (ошибка) или warning: (предупреждение — программа продолжает работать). С таким сообщением мы тоже встретимся дальше в этой главе. Что общее у обоих стилей: если сообщение непонятно, скопируй его в поиск целиком, убрав только свои имена файлов и пути — по строке в кавычках найдутся сотни людей с той же проблемой. Подробный алгоритм такого поиска — в отдельном разделе ниже.
Три реальных ошибки — разбор по словам
Ниже — три сообщения, которые ты гарантированно увидишь в первый же месяц работы с терминалом и git. Каждое разберём не по структуре (это уже сделали выше), а по словам английского языка, из которых оно состоит: что означает каждое слово само по себе и почему именно оно здесь стоит.
1. «Файл не найден»: No such file or directory
Полное сообщение — то самое, что уже встретилось в разделе про анатомию: cat: report.txt: No such file or directory. Разберём саму фразу-идиому по словам:
Дословно: «нет такого файла или каталога». Мысль целиком — «искомого объекта с таким именем и по такому пути просто не существует», а не «файл повреждён» или «файл занят».
Это разница на практике: чинить нужно опечатку в имени или путь, а не восстанавливать файл из бэкапа.
2. «В доступе отказано»: Permission denied
Сценарий: у файла run_tests.sh не выставлено право на запуск, и попытка его запустить отвечает так:
bash: ./run_tests.sh: Permission denied
Дословно: «bash: ./run_tests.sh: в разрешении отказано». Смысл — не «файла нет» (он есть, bash его нашёл и назвал по имени), а «у файла нет права быть запущенным» — конкретно бита на исполнение (execute). Про биты прав rwx подробно будет отдельная глава — сейчас достаточно узнавать фразу и понимать, что дело в правах, а не в содержимом файла.
3. «Команда не найдена»: command not found
Опечатка при наборе git status: вместо git случайно вышло gti.
bash: gti: command not found
Дословно: «команда не найдена». Bash не оценивает, правильная это команда или нет, — он просто ищет точное совпадение имени среди всех известных ему программ. gti для него — это не «git с опечаткой», а совсем другое, никому не известное слово.
Отсюда и практический вывод: если видишь command not found, в 9 случаях из 10 дело в опечатке, а не в том, что программа не установлена, — сперва перечитай, что напечатал.
Теперь проверь себя наоборот: собери переводы разобранных фраз из перемешанных слов.
Сначала No such file or directory:
Теперь смысл фразы Permission denied — целиком, как разбирали выше:
Как гуглить ошибку по-английски
Скопировать сообщение целиком в поиск — уже полдела, но есть приёмы, которые находят решение быстрее и точнее.
- Возьми фразу в кавычки. Без кавычек поисковик ищет страницы, где встречаются эти слова хоть где-то, хоть в разных местах текста. В кавычках — только страницы с точно такой же фразой, слово в слово и в том же порядке.
- Убери своё, оставь общее. Имя своего файла, свой логин, свой абсолютный путь вроде
/home/ivanov/projects/lab3— убери. Общую часть сообщения, которая повторится у любого человека с той же проблемой, — оставь. - Добавь имя инструмента, если сообщение короткое и общее (
Permission deniedсамо по себе слишком расплывчато — допишиbashилиgit, в зависимости от того, кто его напечатал). - Сузь поиск сайтом, если результатов слишком много или слишком мало не по теме: оператор
site:ограничивает выдачу одним доменом, например Stack Overflow или GitHub Issues. - Слишком мало результатов? Сократи фразу. Убери самую специфичную часть (обычно это твой путь или имя файла) и оставь только устойчивую часть сообщения.
Разберём готовый запрос по кусочкам — именно так стоит искать git-ошибку fatal: not a git repository:
Потренируйся печатать такой запрос — в реальном поиске лишний пробел после site: испортит результат, поэтому важна точность:
Цель: скорость ≥ 100 зн/мин, точность ≥ 90%
"not a git repository" site:stackoverflow.com
Прежде чем гуглить, полезно понять, сколько в сообщении ты уже понимаешь сам. Вставь любую ошибку — знакомые слова из словаря главы подсветятся, а пути и знаки приглушатся:
А если после подсветки фраза всё ещё непонятна — время звать настоящий переводчик. Вставь фразу один раз, открой её сразу в нужном сервисе и сравни варианты:
- Переводи фразами, а не отдельными словами — у слова без контекста десяток значений.
- Проверяй обратным переводом: переведи результат назад и сравни смысл с оригиналом.
- Термины из словаря главы запоминай по-английски — в коде и ошибках они будут без перевода.
Слова главы
Сорок слов ниже — костяк. Они встречаются в меню программ, в командах терминала и в сообщениях об ошибках каждый день.
Действия: что делают программы
Половина IT-английского — глаголы. Файл можно создать (create), открыть (open), сохранить (save) и удалить (delete). Программу — запустить (run); проект — собрать (build) из исходников в готовое приложение, а потом проверить (test), что всё работает. Если проверка не прошла, говорят, что она провалилась (fail). Результат неудачи ты уже знаешь: ошибка (error), а её младшая сестра — предупреждение (warning): программа работает, но что-то ей не нравится.
Десять новых слов подряд — многовато, чтобы они улеглись в голове с первого раза. Прежде чем читать дальше, повтори их прямо сейчас — это работает лучше, чем просто перечитать словарь ещё раз (testing effect: вспоминать эффективнее, чем узнавать):
Файлы и система
Всё в компьютере крутится вокруг файла (file). Файлы лежат в папках (folder), которые в мире Linux чаще называют каталогами (directory) — это синонимы, пугаться не надо, оба слова уже встречались в разборе ошибок выше. Дорога до файла через все вложенные папки — путь (path), например /home/student/docs/report.txt. Команды системе отдают через терминал (terminal) — текстовое окно, с которым мы подружимся в следующей главе. Программы в Ubuntu ставятся пакетами (package): пакет можно установить (install) или обновить (update) до свежей версии (version). А поведение почти любой программы меняется в настройках (settings).
Ещё десять слов — и снова стоит повторить их сразу, пока не наложились на предыдущий блок:
Слова из кода
Эти термины подробно разберём в главах про программирование, но встречать их в текстах и ошибках ты начнёшь раньше. Переменная (variable) хранит значение (value), у которого есть тип (type): текст называется строкой (string), целое или дробное — числом (number), а набор элементов — списком (list). Функция (function) — именованный кусок кода, который можно вызывать. Цикл (loop) повторяет действия, условие (condition) выбирает, по какой ветке пойти. А комментарий (comment) — заметка для людей, которую компьютер не выполняет.
Эти слова ты пока встречаешь только на бумаге — тем более стоит закрепить их сразу:
Глаголы git и терминала
Отдельный блок — потому что эти десять слов будут звучать на каждом занятии про git, начиная со следующих глав. Изменения фиксируют коммитом (commit) и отправляют (push) на сервер; чужие изменения забирают (pull) себе. Параллельную линию разработки называют веткой (branch), а объединение веток — слиянием (merge). Весь репозиторий целиком копируют командой «клонировать» (clone), а посмотреть, что изменилось на сервере, не вливая это в свою ветку, можно командой «скачать» (fetch). Файл перед коммитом кладут в индекс командой «добавить» (add), текущее состояние проекта показывает статус (status), а всю историю коммитов — журнал (log).
Последняя десятка — и снова короткое повторение, прежде чем перейти к общему квизу по всем сорока словам:
Потренируйся печатать
Сообщения об ошибках придётся не только читать, но и перепечатывать в поиск. Набери без опечаток — это ровно та фраза, что уже разобрана по словам выше:
Цель: скорость ≥ 110 зн/мин, точность ≥ 90%
cat: report.txt: No such file or directory
Типичные ошибки
Четыре сообщения, которые встретишь в первый же месяц. Три из них уже разобраны по словам в отдельном разделе выше — здесь собран полный комплект: воспроизводящий пример, точный текст, перевод, причина и починка, как для любой другой главы канона.
1. Файл не найден
Команда просит показать содержимое файла, которого нет по указанному пути:
cat: report.txt: No such file or directory
Перевод: «cat: report.txt: нет такого файла или каталога».
Причина: файла report.txt не существует там, где его ищет cat — либо опечатка в имени, либо он лежит в другой папке, либо его вообще ещё не создали.
Как починить: проверь точное имя файла (регистр букв важен — Report.txt и report.txt для Linux разные имена) и текущую папку командой pwd; если файла действительно ещё нет — создай его или перейди туда, где он лежит.
2. В доступе отказано
Попытка запустить скрипт, у которого не выставлен бит на исполнение:
bash: ./run_tests.sh: Permission denied
Перевод: «bash: ./run_tests.sh: в разрешении отказано».
Причина: файл существует и найден, но у него нет права на запуск (execute) — bash честно отказывается его выполнять.
Как починить: выдать файлу право на исполнение командой chmod +x run_tests.sh и повторить попытку; подробно про биты прав rwx — в отдельной главе про файлы.
3. Команда не найдена
Опечатка при вводе имени команды:
bash: gti: command not found
Перевод: «bash: gti: команда не найдена».
Причина: bash ищет точное совпадение имени среди известных программ; gti для него не «git с опечаткой», а совсем другое, никому не известное слово.
Как починить: перечитать набранное и исправить опечатку — git status. Та же ошибка выскочит, если программа действительно не установлена: тогда чинить нужно установкой пакета, а не исправлением опечатки.
4. Не git-репозиторий
Попытка выполнить git-команду в папке, где git ещё не инициализирован (нет скрытой папки .git):
fatal: not a git repository (or any of the parent directories): .git
Перевод: «фатально: не git-репозиторий (и ни одна из родительских папок тоже): .git».
Причина: git ищет скрытую папку .git в текущей папке, а если не находит — поднимается по дереву папок вверх, проверяя каждую родительскую. Здесь эта папка не найдена нигде по всему пути наверх — значит, git init тут ещё не выполняли или команда набрана не в той папке.
Как починить: проверить, в той ли папке ты находишься (pwd), и либо перейти в правильную (cd имя-проекта), либо, если репозиторий действительно должен появиться здесь впервые, — выполнить git init.
Где тренировать словарь
Углубиться
Почему одни и те же фразы повторяются везде. No such file or directory — не выдумка конкретной программы. В Linux у каждой стандартной ошибки есть числовой код (например ENOENT — «Error NO ENTry», «нет такой записи») и официальный текст, зашитый в системную библиотеку; программы просто печатают его. Поэтому сотни разных инструментов говорят одну и ту же фразу слово в слово — выучил один раз, узнаёшь везде. Кстати, ты ещё не раз встретишь именно эти фразы в главах про терминал и про файлы: это не совпадение, а то самое повторение в деле.
Уровни серьёзности. Компиляторы и сборщики обычно различают три уровня: error (работа остановлена), warning (подозрительно, но продолжаем) и note/info (просто справка, часто — подсказка к соседней ошибке). Читать стоит все: за сухим error нередко идёт note с готовым советом «может, ты имел в виду...». git добавляет ещё одну метку — fatal (фатально): операция не просто не удалась, а прервана полностью, ничего не сохранено и не отправлено.
Ограниченный словарь — это осознанно. Авторов документации специально учат писать одними и теми же словами: один термин — одно понятие, никаких синонимов ради красоты. Именно поэтому пары сотен слов хватает, чтобы читать доки: индустрия сама сузила словарь ради таких читателей, как ты.
Ложные друзья переводчика. Несколько английских IT-слов подсказывают неверный перевод, если довериться звучанию. actual — не «актуальный» (current, relevant), а «настоящий, фактический»: the actual value значит «то значение, которое есть на самом деле», а не «свежее». character — не «характер», а «символ»: тот же смысл, что у русского «символ» в Char из главы про Kotlin. data в английском грамматически чаще ведёт себя как множественное число («the data are», хотя в разговорной речи всё чаще и «is»), а не как русское «данные», к которому это же почти естественно. complex ближе к «составной, многосоставной», а не к бытовому русскому «сложный» (для «сложно» в значении «трудно» в английском чаще подойдёт difficult или complicated). Небольшая привычка сверяться со словарём в спорных случаях экономит часы отладки не кода, а собственного понимания задачи.
Дальше по теме:
- What went wrong? Troubleshooting JavaScript — учебник MDN: как читать реальные сообщения об ошибках в браузере
- Technical Writing — Words — курс Google для авторов документации: почему термины используют строго и последовательно
- errno(3) — Linux manual page — официальный список системных кодов вроде
ENOENTиEACCES, стоящих за самыми частыми фразами об ошибках
Куда дальше: проверенные ресурсы
-
Инглекс — английский для IT-специалистов — базовый словарь программиста и подборка из 84 ресурсов (словари, подкасты, курсы). Открывай, если нужен один большой список источников на все случаи.
-
Skyeng — английский для программистов — 75 терминов и готовые фразы для рабочей переписки и код-ревью. Открывай, если словарь этой главы захотелось расширить сразу дальше.
-
Multitran — англо-русский словарь с отдельными IT-категориями (comp., net., progr.). Открывай, когда встретишь незнакомое слово посреди чужого кода или документации и нужен точный перевод, а не общий гуглтранслейт.
-
kata.academy — как правильно гуглить программисту — практические приёмы поиска: операторы, формулировки запросов, работа с фильтрами. Открывай сразу после раздела «Как гуглить ошибку» этой главы — материал прямо продолжает тему.
-
Tproger — как искать и исправлять ошибки в коде — переводной пошаговый гайд из десяти шагов для новичка. Открывай, если хочется не только читать сообщение об ошибке, но и понять весь путь от «что-то сломалось» до «починил».
-
errno(3) — Linux manual page — тот же официальный справочник, что и в «Углубиться» — но стоит вернуться к нему отдельно, когда встретишь новый код ошибки и захочешь понять его дословно.
-
Видео и материалы сообщества — ниже — ролики по теме и ссылки от студентов и преподавателей смотри в самом низу страницы.
Челлендж ⭐
Ступень 1. Прочитай сообщение — раньше в главе оно не встречалось буквально в таком виде, но метод анатомии ты уже знаешь — и письменно ответь на четыре вопроса:
bash: ./deploy.sh: Permission denied
- Какая часть строки — источник, какая — виновник, какая — суть проблемы?
- Из каких двух английских слов состоит суть, и от каких глаголов они образованы?
- Файл существует или нет? Как ты это понял?
- Какой командой это чинят?
Ступень 2 ⭐. Тебе в чат прислали это сообщение и попросили помочь. Напиши готовый поисковый запрос, которым стал бы гуглить именно ты, — по всем правилам раздела «Как гуглить ошибку»: с кавычками вокруг устойчивой части, без личных путей, при необходимости — с оператором site:.
fatal: not a git repository (or any of the parent directories): .git
Решение (сначала попробуй сам)
Ступень 1:
- Источник —
bash, виновник —./deploy.sh, суть —Permission denied. Permission(разрешение, от to permit) иdenied(отказано, причастие от to deny).- Файл существует: bash нашёл его и назвал по имени в сообщении. Если бы файла не было, было бы
No such file or directory, а неPermission denied. chmod +x deploy.sh— выдать право на исполнение.
Ступень 2 ⭐, один из рабочих вариантов:
"not a git repository" site:stackoverflow.com
Слово fatal: и свой путь до папки в запрос не берём — это не повторится у других людей с той же проблемой. not a git repository — устойчивая, узнаваемая часть сообщения; site:stackoverflow.com сужает результаты до готовых разборов с ответами, а не до случайных упоминаний фразы.
Слова и конструкции главы
Шпаргалка по всему, что встретилось в этой главе. Вернись сюда, если забудешь, «что означает этот кусок сообщения».
| Конструкция | Как называется | Что означает | Пример |
|---|---|---|---|
имя: | источник (в начале строки) | называет программу, которая печатает сообщение | cat: ..., bash: ... |
error: | явная метка уровня | ошибка — операция остановлена | error: ... |
fatal: | явная метка уровня (git) | фатально — операция прервана полностью | fatal: not a git repository... |
warning: | явная метка уровня | предупреждение — программа продолжает работать | warning: ... |
No such file or directory | устойчивая фраза | искомого файла или каталога не существует | cat: x: No such file or directory |
Permission denied | устойчивая фраза | не хватает прав на действие с файлом | bash: ./x.sh: Permission denied |
command not found | устойчивая фраза | команда с таким именем не существует в системе | bash: gti: command not found |
'...' | одинарные кавычки в сообщении | выделяют конкретное имя внутри текста ошибки | pathspec 'the' |
"..." | двойные кавычки в поисковом запросе | оператор точного совпадения фразы целиком | "not a git repository" |
site: | оператор поиска | ограничивает выдачу одним сайтом | site:stackoverflow.com |
Сводная проверка по всей главе: 7 вопросов, 5:00 на всё, без подсказок по ходу. Вопросы показываются по одному, ответ изменить нельзя. Если время выйдет — экзамен завершится с тем, что успел ответить. Пересдавать можно сколько угодно раз.
Что должен уметь
- Разбирать сообщение об ошибке на источник, виновника и суть — и узнавать, что у одних инструментов есть явная метка уровня (
error:,fatal:,warning:), а у других (catи похожих) её нет вовсе. - Переводить с листа и объяснять по словам три устойчивые фразы:
No such file or directory,Permission denied,command not found— и называть, от каких английских глаголов образованы их ключевые слова. - Переводить с листа базовые глаголы интерфейсов:
create,open,save,delete,run,build,test, а также git-глаголыcommit,push,pull,merge,branch,clone,fetch,add,status,log. - Узнавать в тексте ошибки слова
file,directory,path,versionи понимать, о чём речь. - Составлять поисковый запрос по правилам: фраза в кавычках, без личных путей, при необходимости — с именем инструмента или оператором
site:. - Отличать по тексту сообщения ошибку «объекта не существует» от ошибки «не хватает прав» — и называть, какой командой чинится каждая.
Комментарии
Комментарии появятся после настройки. Нужен аккаунт GitHub — вход прямо в виджете выше.