Провожу тренировочные онлайн‑кодинг интервью на английском и понимаю, насколько эта тема больнючая.

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

В июле проводила открытую тренировку по live coding собеседованию на английском — было 300 регистраций и 90 человек онлайн. Тема очень актуальна, поэтому решила поделиться шпаргалкой с теми, кто не был, но кому тоже надо.

Что советуют рекрутеры

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

Они рекомендуют заглядывать на CodingInterview.com. Здесь есть отдельные гайды по Google, Amazon, Microsoft, Netflix и другим крупным компаниям с этапами отбора и примерами вопросов.

Small talk перед началом

Скажу честно, ребята с СНГ‑бэкграундом часто звучат на собеседованиях грубовато. Почему? Я вижу как минимум 4 причины:

  • Забывают про вежливые «буферы», indirect questions и разного рода смягчители в английском.

    Будем разбираться с этим ниже.

  • Выбирают пассивный залог вмесо активного.

    Это типично для русского языка, но звучит как отсутствие проактивности в английском. Об этом, в частности, говорит Линн Виссон, американская лингвист русского происхождения, в своей книге «Русские проблемы в английской речи». Планирую написать отдельную статью на этот счёт.

Нет: The bug was fixed
Да: I identified the root cause and patched it

  • Вставляют «have to» просто для описания своих задач. А это, на минуточку, значит «я был(а) вынуждена что‑то делать». Так себе первое впечатление, не так ли?

Нет: I had to create the system from scratch.

Да: I created the system from scratch или I needed to create the system from scratch.

  • Не знают, как поддержать small talk.

Например, подключились к звонку: тимлид уже на месте, а CTO ещё нет. В этот момент нормально немного поговорить: пары простых вопросов достаточно:

What are you currently working on? — Над чем вы сейчас работаете?

Is the team working on anything interesting at the moment? — Работает ли команда над чем‑то интересным?

Если интервьюер сам упомянул проект — зацепитесь за это:

You mentioned you're working on a new project. What's it about?

Погода, текущие проекты, проверка звука — вот безопасные варианты для первых минут общения. Используйте их с умом, чтобы «break the ice» с первых минут.

Говорим о себе

Часто слышу мнение: айтишники — интроверты, им сложно рассказывать о себе на собесах.

Возможно это и так, но на своих уроках вижу противоположную картину: ребят часто «заносит».

Поэтому, коллеги: для короткого introduction хватит 60–120 секунд, и не надо здесь о том, как играли на трубе в школьном ансамбле.

Речь нужно заготовить и действительно отрепетировать, потому что говорить о себе вы будете на всех этапах собеседования. Подойдет, например, такая структура из 4 шагов:

  • кто вы;

  • чем занимаетесь;

  • какой у вас impact на предыдущем месте;

  • что ищете сейчас.

Для backend‑разработчика это могло бы звучать так:

I'm a backend engineer with five years of experience, mainly working with Python and distributed systems.

I specialize in building scalable APIs and improving backend performance.

In my previous role, I worked closely with product and engineering teams and helped improve the performance of several critical services.

Now I'm looking for an opportunity to work on large‑scale applications and solve challenging engineering problems.

Перед интервью вспомните технический английский

Есть несколько категорий, которые лучше освежить заранее.

Названия символов

Особенно те, которые вроде бы очевидны, пока вам не приходится произнести их вслух:

_ — underscore

— hyphen

/ — slash

\ — backslash

< > — angle brackets

[ ] — square brackets

{ } — curly braces

 — colon

 — semicolon

~ — tilde

Вот здесь — с произношением, если есть сложности.

Математика

Операция

Пример

Addition (+) — сложение, глагол to add

The function adds two numbers — функция складывает два числа

3 plus 5 equals 8 — 3 плюс 5 равно 8

Subtraction (−) — вычитание, глагол to subtract

Subtract the tax from the total — вычесть налог из общей суммы (обратите внимание на предлог from)

10 minus 4 is 6 — 10 минус 4 равно 6

Multiplication (×) — умножение, глагол to multiply

Multiply the price by the quantity — умножить цену на количество (обратите внимание на предлог by)

6 times 7 is 42 — 6 умножить на 7 равно 42

Division (÷ или /) — деление, глагол to divide

Divide the total by the number of items — разделить сумму на количество элементов (обратите внимание на предлог by)

Division by zero — деление на ноль

Exponentiation (^) — возведение в степень, глагол to raise to the power of

2 raised to the power of 10 is 1024 — 2 в степени 10 равно 1024

В коде это часто читают короче: 2 to the power of 10

Comparison operators — операторы сравнения

equal to (==) — равно: check if a equals b — проверить, равно ли a b

not equal to (!=) — не равно: a is not equal to b

greater than (>) — больше: x is greater than y

less than (<) — меньше: x is less than y

square root — квадратный корень

round up / round down — округлить в большую/меньшую сторону

the square root of 16 is 4

И проверьте, как произносятся технические слова

Например:

queue — /kjuː/ — очередь

latency — /ˈleɪtənsi/ — задержка

throughput — /ˈθruːpʊt/ — пропускная способность

consistency — /kənˈsɪstənsi/ — согласованность

bottleneck — /ˈbɑːtlnek/ — узкое место

redundancy — /rɪˈdʌndənsi/ — избыточность

asynchronous — /eɪˈsɪŋkrənəs/ — асинхронный

Тренируйтесь кодить и комментировать действия на английском

Бесплатный и совершенно действенный способ: пишете код и комментируете свои действия на английском. Сразу всплывет, какие выражения и термины подзабылись и нуждаются в проверке.

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

Кстати, а как бы вы сказали это на английском?

Начинается coding

Сначала уточняем требования

Допустим, вам дали задачу: написать функцию, которая работает с массивом и должна найти определённое значение. Не обязательно сразу открывать редактор.

Можно начать:

Let me clarify the requirements first — Давайте сначала уточним требования.

Are there any constraints I should be aware of? — Есть ли какие‑то ограничения, о которых мне нужно знать?

Can I assume that the input is always valid? — Могу ли я предположить, что входные данные всегда корректны?

И очень полезно в конце повторить задачу своими словами:

So the input is an array of integers, and the expected output is a single integer, right? — То есть на входе массив целых чисел, а на выходе одно целое число, верно?

Не поняли — переспросите

На интервью гораздо хуже сделать вид, что вы всё поняли, а потом решить совсем не ту задачу.

Если просто не расслышали:

Sorry, I didn't catch the last part. Could you repeat it, please? — Извините, я не расслышал последнюю часть. Не могли бы вы повторить?

I'm not sure I caught that. Could you say it again? — Я не уверен, что расслышал. Не могли бы вы повторить?

Если не поняли смысл:

Could you clarify what you mean by...? — Не могли бы вы уточнить, что вы имеете в виду под...?

Бывает и другая ситуация: вы всё прекрасно слышите, но внезапно начинает прерываться связь у интервьюера.

Здесь пригодится:

Sorry, you're breaking up. Could you repeat the last part, please? — Извините, связь прерывается. Не могли бы вы повторить последнюю часть?

I'm sorry, you're breaking up. I'm losing you — Извините, связь прерывается, я вас теряю.

Важно: you're breaking up, а не you're broke!

You're broke — “ты без денег, разорён”. А we're breaking up — «мы расстаёмся (про отношения)». Такого коллега точно не ждал:)

Объясняем подход, а не молча печатаем

Когда требования понятны, расскажите, что собираетесь делать.

I'll start with a simple approach — Я начну с простого подхода.

My idea is to split the problem into two parts — Моя идея — разделить задачу на две части.

Например:

First, I'll iterate over the array. Then I'll check whether we've already seen each value — Сначала я пройду по массиву. Затем буду проверять, встречалось ли уже каждое значение.

Не нужно комментировать каждую строчку. Достаточно проговаривать ключевые решения.

Возник вопрос — задаём его вежливо

Во время работы могут появиться вопросы. Здесь полезно знать indirect questions, то есть косвенные вопросы. Напоминаю:

Формула

Примеры

Вводная фраза + вопросительное слово / if / whether + прямой порядок слов

Could you clarify what should happen in edge cases? — Не могли бы вы уточнить, что должно происходить в крайних случаях?

Could you tell me if there is a preferred approach or algorithm you'd like me to use? — Не могли бы вы сказать, есть ли предпочтительный подход или алгоритм, который вы хотели бы, чтобы я использовал(а)?

Could you clarify whether I should focus on efficiency? — Не могли бы вы уточнить, должен (должна) ли я сосредоточиться на эффективности?

В этой статье однажды рассказывала про другие 4 способа, как звучать вежливее, когда работаешь на международке. Загляните.

Комментируем код

Пока пишете, полезно объяснять, что делает конкретная часть.

This part is responsible for validation. — Эта часть отвечает за валидацию.

This function handles the input. — Эта функция обрабатывает входные данные.

I'm optimizing this to reduce time complexity. — Я оптимизирую эту часть, чтобы уменьшить временную сложность.

По сути, нужно проговаривать вслух свой reasoning process. Интервьюер не должен угадывать, почему вы только что выбрали именно этот алгоритм.

Если застряли

Такое бывает. Главное — не зависать молча.

Let me think for a moment. — Дайте мне секунду подумать.

I might be missing something here. — Возможно, я что‑то здесь упускаю.

Let me take a step back and look at the problem again. — Давайте я отойду на шаг назад и ещё раз посмотрю на задачу.

Если хотите пока пропустить один участок:

I'll come back to this part later. — Я вернусь к этой части позже.

Нашли ошибку — проговорили

Если во время тестирования что‑то пошло не так:

I think I see a bug here. — Кажется, я вижу здесь ошибку.

There's an issue with this condition. Let me fix that. — Здесь проблема с этим условием. Сейчас исправлю.

А если ошибку заметил интервьюер:

Good catch. I hadn't considered that case. — Хорошо, что заметили. Я не учёл(ла) этот случай.

Если интервьюер дал подсказку:

That makes sense. I'll try that approach. — Да, это важно. Я попробую этот подход.

That's a good point. I'll apply it now. — Хорошее замечание. Сейчас применю это.

Debugging тоже нужно уметь проговаривать

Представим: последний тест не проходит, а интервьюер говорит:

It's okay if it doesn't work, but take me through what you're tracking.

Вместо того чтобы хаотично менять код, объясните, что вы ожидаете увидеть:

I expect this loop to run three times, but let me print the counter to confirm. — Я ожидаю, что этот цикл выполнится три раза, но давайте выведем счётчик, чтобы это проверить.

I want to make sure that the boundary conditions are handled correctly. — Я хочу убедиться, что граничные условия обрабатываются корректно.

То есть мы не просто исправляем ошибку. Мы показываем, как именно ищем причину.

Код готов

Не стоит заканчивать просто «It works». Лучше сделать короткий walkthrough:

Let me walk you through the solution. — Давайте я объясню, как работает решение.

Например:

First, we validate the input. Then we iterate over the array and keep track of the values we've already seen. Finally, we return the result once we find a match. — Сначала мы проверяем входные данные. Затем проходим по массиву и отслеживаем уже встречавшиеся значения. Наконец, возвращаем результат, когда находим совпадение.

И последнее — ваши вопросы

В конце почти наверняка прозвучит: Do you have any questions for me?

Здесь важно показать заинтересованность и не ограничиваться денежными вопросами. Можно спросить:

Before we finish, may I ask a couple of questions about the role and the team? — Перед тем как мы закончим, могу я задать пару вопросов о роли и команде?

What are the main technical challenges the team is currently facing? — С какими основными техническими сложностями сейчас сталкивается команда?

И про процесс:

Could you tell me what the next steps in the process are? — Не могли бы вы рассказать, какие следующие этапы процесса?

А закончить совсем просто:

Thank you very much for your time. It was great speaking with you. — Большое спасибо за ваше время. Было приятно с вами пообщаться.

***

И самое последнее. Если интервью прошло, а в ответ — тишина, не спешите изрыгать проклятия. Вдох‑выдох, и вежливо пишем email:

Hello,
Thank you again for your time during the interview. I wanted to follow up and kindly ask if there are any updates about the next steps. I’m always looking to improve, so if there’s any feedback you’re able to provide, I’d be very grateful.

Best wishes,
Имя фамилия (не наоборот)

Как вам такой разбор? Сделать еще? Для кого? Напишите.
У меня есть такие мысли:

  • Тех. собес для тестировщиков

  • System design интервью

  • Как не послать тим лида на code review, если ты на международке

Комментарии (4)


  1. Och-design
    25.08.2026 12:06

    Мне кажется, что я вообще не в состоянии думать какую-то нетривиальную задачу и внятно говорить одновременно)) Даже на русском подвисаешь иногда. Так что тут точно нужна тренировка!

    А для следующего поста очень инетесно почитать "Как не послать тим лида на code review, если ты на международке" )))))


    1. AcrossEnglishForIT Автор
      25.08.2026 12:06

      Договорились. Думала еще подсветить аббревиатуры, которые можно встретить при код ревью. Например, LGTM — Looks Good To Me.
      Актуально такое?


      1. Och-design
        25.08.2026 12:06

        100%! Я бы LGTM не расшифровала))


  1. x86chk
    25.08.2026 12:06

    Например, недавно мой ученик‑разработчик абсолютно забыл, как по‑английски сказать «перехватить запрос» <...>
    Кстати, а как бы вы сказали это на английском?

    Ну так как я иногда в Wireshark на несколько суток с головой ухожу, то ассоциируемый с ним процесс 'to capture the packet(s)' сам собой превращается в 'to capture the request(s).'