Зачем айтишнику времена
Английский в IT — это рабочий инструмент: документация, коммиты, пул-реквесты, стендапы и собеседования. Большинство ошибок в английском у разработчиков — именно во временах: I have fixed или I fixed, I am working или I work. Путаница ломает смысл: «я работаю над этим прямо сейчас» и «я это уже закончил» — разные времена и разные обещания для команды.
Хорошая новость: система времён — это структура, а структуры программисты понимают лучше всего. Всего есть 4 вида действия (Simple, Continuous, Perfect, Perfect Continuous) и 3 времени (Past, Present, Future) — матрица 4×3 = 12 комбинаций. Запомнить формулы проще, чем каждое время отдельно.
Главная таблица всех 12 времен
| Simple | Continuous | Perfect | Perfect Continuous | |
| Present | V / V+s (do/does + V) | am/is/are + Ving | have/has + V3 | have/has been + Ving |
| Past | V2 (did + V) | was/were + Ving | had + V3 | had been + Ving |
| Future | will + V | will be + Ving | will have + V3 | will have been + Ving |
Читаем по строке: Simple — факт или привычка, Continuous — процесс в конкретный момент, Perfect — результат к моменту, Perfect Continuous — «сколько времени уже длится» процесс к моменту.
Simple: факты и привычки
Present Simple — факты, графики, привычки
Формула: I/we/you/they + V, he/she/it + Vs (работает — works). Отрицание: don't/doesn't + V. Вопрос: Do/Does + подлежащее + V?
Маркеры: every day, always, often, usually, sometimes, seldom, rarely, never.
- The server responds in 50 ms. — Сервер отвечает за 50 мс (факт).
- I don't push to master on Fridays. — Не пушу в мастер по пятницам (правило).
- Does this function handle null? — Обрабатывает ли эта функция null?
Past Simple — завершённое действие в прошлом
Формула: V2 (правильные — +ed, неправильные — из таблицы). Отрицание: didn't + V. Вопрос: Did + подлежащее + V?
Маркеры: yesterday, last week, ago, in 2010, when.
- We deployed the fix yesterday. — Выкатили фикс вчера.
- The build failed 10 minutes ago. — Сборка упала 10 минут назад.
- Did you see the error logs? — Ты видел логи ошибок?
Future Simple — решения, обещания, прогнозы
Формула: will + V. Отрицание: won't + V. Вопрос: Will + подлежащее + V?
Маркеры: tomorrow, next week, hope, think, be sure.
- I will review your PR tomorrow. — Завтра посмотрю пул-реквест.
- It won't take long. — Это много времени не займёт.
- Will the migration break old data? — Миграция сломает старые данные?
Continuous: процесс в моменте
Present Continuous — прямо сейчас
Формула: am/is/are + Ving.
Маркеры: now, at the moment, today, Look!, Listen!, tonight, this week.
- I am debugging the payment module now. — Сейчас дебажу модуль оплаты.
- Are you still working on that ticket? — Ты ещё работаешь над тикетом?
- The team is migrating the DB this week. — Команда на этой неделе мигрирует БД.
Past Continuous — процесс в прошлый момент
Формула: was/were + Ving.
Маркеры: at 5 o'clock yesterday, while, when he came.
- I was refactoring the code when the boss called. — Я рефакторил код, когда позвонил босс.
- The tests were running while we had lunch. — Тесты крутились, пока мы обедали.
- What were you doing at 3 AM in production? — Что ты делал в три ночи на проде?
Future Continuous — процесс в будущий момент
Формула: will be + Ving.
Маркеры: at this time tomorrow, when you come.
- At 5 o'clock I will be deploying the release. — В пять буду деплоить релиз.
- The CI will be running tests when you come back. — К твоему возвращению CI будет гонять тесты.
Perfect: результат к моменту
Present Perfect — результат сейчас, время не важно
Формула: have/has + V3 (V3 = третья форма: done, seen, written или +ed).
Маркеры: already, yet, just, recently, never, so far, since, for.
- I have just fixed the bug. — Я только что починил баг.
- Have you pushed yet? — Ты уже запушил?
- She has never worked with Kubernetes. — Она никогда не работала с K8s.
Главный враг русскоязычного — спутать с Past Simple. Правило: есть конкретное время (yesterday, at 5 pm, in 2019) — Past Simple. Времени нет, важен результат — Present Perfect. I fixed it yesterday против I have fixed it — в первом важно когда, во втором — что уже сделано.
Past Perfect — «прошлое в прошлом»
Формула: had + V3 — для всех лиц одинаково.
Маркеры: by 5 o'clock yesterday, when he came, after.
- When the client called, we had already deployed the hotfix. — Когда позвонил клиент, мы уже выкатили хотфикс.
- The server had crashed before we noticed. — Сервер упал до того, как мы заметили.
- By the end of the sprint, the team had completed 20 tasks. — К концу спринта сделали 20 задач.
Future Perfect — результат к моменту в будущем
Формула: will have + V3.
Маркеры: by tomorrow, by the time you come.
- By Friday, I will have finished the code review. — К пятнице закончу ревью.
- The deploy will have completed by the time you wake up. — К твоему пробуждению деплой закончится.
Perfect Continuous: длительность процесса
Present Perfect Continuous — «уже N времени делаю»
Формула: have/has been + Ving.
Маркеры: for, since, all day, how long.
- I have been working on this bug for 3 days. — Три дня вожусь с этим багом.
- She has been coding since morning. — С утра пишет код.
- How long have you been waiting for the review? — Сколько ты ждёшь ревью?
Past Perfect Continuous — «делал N времени до момента»
Формула: had been + Ving.
- We had been testing the release for a week when a critical bug appeared. — Неделю тестировали релиз, и тут вылез критический баг.
- The service had been running for a year before it crashed. — Сервис год работал, пока не упал.
Future Perfect Continuous — редкий гость
Формула: will have been + Ving.
- By next month, I will have been working here for 5 years. — К следующему месяцу будет 5 лет, как я тут работаю.
- By the time you join, the team will have been building the project for 2 years. — К твоему приходу команда будет строить проект уже 2 года.
Шпаргалка по словам-маркерам
Видишь маркер — вспоминай время:
| Маркер | Время | Пример |
| every, always, often, usually, never | Present Simple | I always write tests. |
| now, at the moment, Look!, today | Present Continuous | I am coding now. |
| already, yet, just, recently, ever, so far | Present Perfect | I have already committed. |
| for, since, all day, how long | Perfect Continuous | I have been debugging for 2 hours. |
| yesterday, last, ago, in 2010, when | Past Simple | I fixed it yesterday. |
| at... o'clock yesterday, while, when he came | Past Continuous | I was sleeping when prod died. |
| by... o'clock yesterday, after | Past Perfect | By 6 pm I had deployed. |
| tomorrow, next, hope, think | Future Simple | I will refactor it tomorrow. |
| at... o'clock tomorrow, this time | Future Continuous | At 5 pm I will be resting. |
| by... o'clock tomorrow, when you come | Future Perfect | By Monday I will have merged. |
Типичные ошибки айтишников
I am agree— нет,agreeне ставится в Continuous: I agree. Глаголы состояния (know, want, need, believe, understand) Continuous не любят.I have fixed it yesterday— смешение времён: либоI fixed it yesterday, либоI have just fixed it.I am work— послеam/is/areвсегда-ing: I am working.He don't— только He doesn't (третье лицо ед. числа).Will youвместоAre you going toдля планов —willэто скорее спонтанное решение, а план лучше черезgoing to:I am going to refactor this(хотя строго это другая конструкция, а не время).
Как тренировать
- Читай логи и тикеты вслух — почти вся Jira написана в Past Simple и Present Perfect.
- Пиши стендап сам:
Yesterday I fixed X. Today I am working on Y. No blockers.— три времени в трёх предложениях. - Коммиты — Present Simple или инфинитив:
fix,add,refactor. - Держи под рукой эту статью — через месяц таблица отложится сама собой.