1. Головна ідея — «теперішній» не означає «зараз»

Найдорожча помилка в цій темі робиться до першого правила. Українською «теперішній час» = «те, що відбувається зараз», тому здається, ніби три теперішні часи англійської — це три способи сказати «зараз». Насправді жоден із них не про цю мить: вони відрізняються не моментом, а тим, який охват часу ви берете в кадр.

Present Simple

Взагалі так є ●●●

Правило, звичка, властивість. Кадр — усе життя дії, без країв.

We deploy on Fridays.Ми деплоїмо щопʼятниці.
Present Continuous

У процесі ▬

Почалось, ще не скінчилось. Кадр — вузький відрізок навколо цієї миті.

I am reviewing your pull request.Я саме дивлюсь твій пул-реквест.
Present Perfect

Уже зроблено ⏵

Дія в минулому, наслідок тут. Кадр — від невідомого моменту до зараз.

I have fixed the bug.Я виправив баг. (він зараз виправлений)
ЗАРАЗPRESENT SIMPLE — взагалі так є, регулярноI deploy on Fridays. — крапки розкидані по всій лінії, «зараз» нічим не виділенеPRESENT CONTINUOUS — у процесі саме теперI'm reviewing a pull request. — лінія накрила «зараз»: почалось раніше, ще не скінчилосьPRESENT PERFECT — сталося раніше, а важливе тут«результат дотягнувся до зараз»I've fixed the bug. — коли саме, не сказано і не важливо: важливо, що зараз він виправлений
Одна вертикаль «зараз» — і три різні охвати. Синій розкиданий по всій лінії, помаранчевий накрив цю мить, фіолетовий дотягнувся до неї з минулого.
Найважливіша порада в усьому документі

Українська мова ділить дієслово за видом: «роблю» проти «зробив». Англійська ділить за охватом: «взагалі», «в процесі», «вже маю результат». Це різні системи, і накладати одну на одну не вийде.

Практичний наслідок: перш ніж вибирати час, спитайте себе не «коли це було?», а «який кадр я беру?» — і особливо: чи період, у якому це сталося, вже закрився. Саме на цьому питанні тримається різниця між Present Perfect і Past Simple, а вона — головна пастка теми (розділ 5).

Найдивніший із трьох: Present Perfect

Два перші часи мають хоч приблизні відповідники в українській. Present Perfect не має жодного — і це не випадковість, а причина, чому він так довго не «клацає».

Формально теперішній, за змістом — про минуле

У реченні I have fixed the bug дія (fix) сталася в минулому. Але головне дієслово в реченні — have, і воно в теперішньому часі. Тому й весь час теперішній: ви зараз маєте баг виправленим.

Українською обидва — I fixed it і I have fixed it — це «я виправив». Різниця, яку ви не чуєте, для носія величезна: перше — подія в закритому минулому, друге — стан справ на цю хвилину.

Перевірка інтуїції: одна ситуація — три кадри

Ситуація: я і звіт про квартал
I write the report every Friday.
●●● Взагалі так заведено. Ця конкретна пʼятниця тут ні до чого.
I am writing the report.
▬ Просто зараз, з відкритим документом. Ще не готово.
I have written the report.
⏵ Готово, лежить у тебе в пошті. Коли саме я його дописав — не сказано.
Ситуація: я і Берлін
I fly to Berlin twice a year.
Регулярно, кілька разів на рік — робоча рутина.
I am flying to Berlin on Thursday.
Домовлено, квиток куплений. Про майбутнє — і це нормально (розділ 8).
I have been to Berlin.
Я там був — колись, будь-коли. Досвід, а не подія.
Одне речення, яке варто перевірити на собі просто зараз

Як сказати «Я працюю тут шість років»?

Якщо рука тягнеться написати I work here for six years — ви не самі, так пише більшість українців. Правильно: I have worked here for six years (або I have been working here for six years).

Причина проста і буде розібрана в розділі 4: період «шість років» почався в минулому й дотягнувся до зараз, а такий охват в англійській позначає тільки Perfect.