Максим Байтович
Курс молодого бойца, или как я перестал плакать и полюбил питон

Глава 1. «Введение в специальность. Хватит лежать»

Антон Сергеевич Круглов лежал на диване и смотрел в потолок. Это было его основное занятие на протяжении последних двух месяцев, и, надо признать, он достиг в нём определённого мастерства.

Потолок был старый, с трещиной, которая начиналась у люстры и уходила куда-то в угол, напоминая карту пересохшей реки. Антон знал эту трещину до миллиметра. Он мог бы написать её биографию. «Трещина. История одного потолка». Бестселлер в жанре драмы.

Рядом с диваном, на полу, стояла кастрюля с остатками пельменей. Есть их ложкой прямо оттуда было удобно: не надо мыть тарелку. Мыть тарелку означало бы признать, что ты живёшь, а Антон был не уверен, что это слово к нему применимо. Он скорее существовал. Функционировал. Как старый холодильник, который гудит, но уже не морозит.

Барсик, британский короткошёрстный кот размером с небольшую тыкву, сидел на подоконнике и смотрел на Антона с выражением векового осуждения. У Барсика было лицо отставного генерала, который видел, как его армия проигрывает битву за битвой, и уже ничего не ждёт от жизни. Они с Антоном идеально подходили друг другу.

— Чего смотришь? — спросил Антон, не поворачивая головы.

Барсик ничего не ответил. Он просто прикрыл глаза и снова открыл их. Это означало: «Я тебя вижу, и я разочарован».

Телефон завибрировал где-то между складок пледа. Антон пошарил рукой и вытащил его на свет. Сообщение от мамы: «Ты работу нашёл? Хотя бы резюме разослал? Там в газете пишут, курьеры требуются. Это не стыдно, Антоша, стыдно быть бесполезным».

Антон отложил телефон. Мама умела формулировать мысли так, что они попадали точно в солнечное сплетение. Она работала старшей медсестрой в районной поликлинике и привыкла говорить людям правду, даже если эта правда звучала как приговор: «У вас давление, вы толстый и у вас нет будущего. Следующий!».

Он снова уставился в потолок.

Два месяца назад Лена собрала вещи. Четыре сумки и чемодан. Она упаковывала их методично, аккуратно, как будто собиралась в командировку. Антон стоял в дверях спальни и смотрел.

— И что, вот так просто? — спросил он тогда.

— Просто? — Лена даже не обернулась. — Антон, мы женаты шесть лет. Из них последние три ты лежишь на диване и говоришь, что «ищешь себя». Ты нашёл? Там, под пледом? Может, я тоже хочу кого-то найти? Например, мужчину, который способен починить кран или хотя бы открыть ноутбук для чего-то кроме сериалов.

— Я чиню кран…

— Ты вызываешь сантехника и прячешься на кухне, пока он работает. Это не «чиню», Антон. Это «прячусь».

Она застегнула последнюю молнию и выпрямилась. Посмотрела на него. В её глазах не было злости. Только усталость. Это было хуже злости. Злость — это ещё интерес, ещё огонь. Усталость — это когда огонь давно потух и даже угли остыли.

— Я буду жить у мамы пока. Потом сниму что-нибудь. Ты не переживай, я не пропаду. — Она взяла чемодан и пошла к выходу. — И знаешь… ты бы хоть Барсика покормил иногда. Он толще тебя уже.

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

С тех пор прошло два месяца. Лена, как выяснилось, не пропала. Более того, она расцвела. Буквально вчера Антон случайно увидел её в «Пятёрочке» у дома. Она стояла у полки с йогуртами и разговаривала по телефону. Антон спрятался за стеллаж с макаронами и, как заправский шпион, прислушался.

— …нет, Рафаэль сказал, что в Гималаях реально круто, но дорого. Может, просто в Красную Поляну? Или в Таиланд? Он говорит, там энергетика другая.

Рафаэль. Он представил его: загорелый, поджарый, с ослепительной улыбкой и способностью стоять на голове без видимых усилий. Инструктор по йоге. Не «преподаватель физкультуры», не «тренер в качалке», а именно «инструктор по йоге». Человек, который, скорее всего, просыпается на рассвете, пьёт смузи из сельдерея и говорит слово «осознанность» без кавычек.

Антон стоял за макаронами и чувствовал, как внутри что-то сжимается.

— А что Антон? — донеслось до него. Лена говорила уже другой интонацией, пониже. — Да ну, брось. Он даже электронную почту создать не смог, я за него резюме отправляла. Помнишь? Он до сих пор думает, что «Питон» — это змея.

Подруга на том конце, видимо, засмеялась. Лена тоже усмехнулась.

Антон вышел из магазина, не купив ничего. Он шёл домой, глядя под ноги, и в голове крутилась одна фраза: «Он даже электронную почту создать не смог».

Дома его встретил Барсик. Кот сидел на том же подоконнике, в той же позе. Он даже не мяукнул. Просто посмотрел: «Ну что, опять проиграл битву?».

— Слушай, Барсик, — сказал Антон, садясь на табуретку. — А что если я… стану программистом?

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

— Нет, серьёзно. Я видел рекламу. «Стань разработчиком за шесть месяцев. С нуля. Даже твой кот сможет». Понимаешь? Даже ты сможешь. А я чем хуже?

Барсик перевернулся на другой бок, демонстрируя, что дискуссия окончена. Антон вздохнул и открыл ноутбук — старый «Леново», который Лена не забрала, потому что он был «тормозной и позорный».

Браузер загружался минуту. За это время Антон успел сходить на кухню, налить воды, вернуться и подумать о бренности бытия. Наконец на экране появилась реклама: ярко-оранжевый баннер с улыбающимся парнем в очках. «IT-ПРОРЫВ — ОНЛАЙН-ШКОЛА БУДУЩЕГО! Зарплата от 150 000 рублей! Трудоустройство через 6 месяцев! Научим даже твоего кота!».

Ниже была кнопка: «Записаться бесплатно».

Антон подвёл курсор к кнопке и замер. Палец завис над тачпадом. Где-то внутри пискнул тоненький голос: «Куда ты лезешь? Ты же гуманитарий. Ты в школе математику на тройку сдал. Ты до сих пор не понимаешь, как работают SMS».

Но тут же зазвучал другой голос — голос Лены из «Пятёрочки»: «Он даже электронную почту создать не смог».

Антон нажал кнопку.

Форма регистрации. Имя, фамилия, возраст, email, телефон.

Так. Стоп.

Email.

Антон уставился в поле ввода. Он помнил, что какой-то email у него был. Кажется, его создавал племянник лет пять назад. Где-то в блокноте записан. Или в старом телефоне. Или… Он нашёл нужную бумажку на дне ящика с документами. «antonkruglov34@mail.ru». Пароль: «lenochka2017».

Он ввёл данные, и сердце кольнуло. Леночка2017. Тот год, когда они ещё были счастливы и ездили в Анапу. Тот год, когда он ещё не лежал на диване, а Лена ещё не говорила слово «Рафаэль».

— Так, всё, хватит, — сказал он вслух. — Соберись, тряпка.

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

Регистрация заняла полчаса. Антон путал поля, два раза вводил не тот номер телефона и случайно закрыл вкладку, когда пытался растянуть её на весь экран. Но в итоге на экране загорелась надпись: «Поздравляем! Вы зачислены на курс "Python-разработчик. Базовый уровень". Первое занятие — завтра в 10:00 по московскому времени. Приготовьте тетрадь, ручку и хорошее настроение!».

Антон выдохнул. Он сделал это. Он вступил в мир IT. Осталось только понять, что такое Python и с чем его едят.

Он открыл поисковик и набрал: «питон это».

Первая ссылка вела на статью «Питон — крупная неядовитая змея семейства удавов».

Вторая — «Python — высокоуровневый язык программирования общего назначения».

Антон прочитал обе. На всякий случай.

На следующее утро ровно в 9:55 Антон сидел перед ноутбуком с тетрадью, ручкой и чашкой растворимого кофе. Барсик демонстративно спал на краю стола, как бы показывая, что он-то и так всё умеет, ему курсы не нужны.

Ноутбук пиликнул. Началась трансляция. На экране появился молодой парень лет двадцати четырёх в ярко-жёлтом худи и с улыбкой, которая занимала примерно 70% лица. Он выглядел так, будто проснулся в 5 утра, пробежал марафон, а потом выпил литр эспрессо, просто чтобы немного успокоиться.

— Всем привет! — закричал парень. — Меня зовут Паша, и я ваш куратор на ближайшие шесть месяцев! Да-да, мы с вами надолго, ребята! Давайте знакомиться! Пишите в чат, кто вы и откуда!

В чате замелькали сообщения:

«Артём, 19 лет, Новосибирск, хочу стать крутым программистом!»

«Марина, 27, Казань, в декрете, решила освоить новое!»

«Макс, 22, Питер, меня отец заставил!»

Антон набрал: «Антон, 34, Москва» и замер. Потом стёр. Написал: «Антон, 34, тут рядом». Отправил.

— Супер! — Паша хлопнул в ладоши. — Вижу, группа разношёрстная, это круто! А теперь, ребята, запомните первую истину: программирование — это просто! Представьте, что переменная — это коробка. У вас есть коробка, вы кладёте туда что-то и подписываете. Всё!

Антон задумался. Переменная — коробка. Он вспомнил коробку из-под холодильника, которую Лена забрала с собой. В неё она сложила свои зимние сапоги.

Он тряхнул головой. Соберись. Ты на уроке.

В дверь постучали.

Антон вздрогнул. Он никого не ждал. Разве что маму, но мама обычно не стучит, а сразу звонит и говорит: «Я знаю, что ты дома, открывай».

Он поставил видео на паузу, подошёл к двери и заглянул в глазок. На площадке стояла соседка Алёна Викторовна. Учительница математики из 36-й квартиры. Она держала в одной руке пустую стеклянную банку, а в другой — ухо своего младшего сына Петьки.

Антон открыл дверь.

— Здравствуйте, Круглов, — сказала Алёна Викторовна. Голос у неё был такой, каким учителя объявляют об отмене перемены: трагичный, но смирившийся. — Соли не будет?

— Соли? — Антон моргнул.

— Соли. В банку. Мне борщ солить, а я, как дура, последнюю соль отдала старшему для эксперимента по физике. Он выращивал кристаллы. Вырастил. На двойку. Соли больше нет. А борщ есть. Понимаете?

— Понимаю, — сказал Антон, хотя ничего не понимал. — Проходите.

Алёна Викторовна зашла, таща за собой Петьку. Тот немедленно уставился на Барсика, а Барсик — на Петьку. В их взглядах было что-то общее. Два существа, которых привели сюда против их воли.

— Ого, — сказала Алёна, оглядывая квартиру. — А у вас… чисто.

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

— Я сейчас соль найду, — сказал Антон и пошёл на кухню. — Вы присаживайтесь. То есть… ну, куда-нибудь.

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

— А это что у вас? — спросила она.

— Это… я учусь. На программиста.

Тишина. Такая тишина, когда слышно, как кот моргает. Алёна Викторовна медленно повернулась к Антону. На её лице читалась целая гамма эмоций: от недоверия до лёгкого шока, плавно переходящего в профессиональный интерес.

— Вы? — переспросила она. — На программиста?

— Ну да. А что?

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

— Я просто не понял масштаб…

— Масштаб. — Алёна покачала головой. — Ладно. Хотите быть программистом — будьте. Но начните с малого. Учебники за девятый класс. Я вам принесу.

Она взяла банку с солью, которую Антон наконец нашёл, кивнула Петьке («Отлипни от кота, он тебя не уважает») и направилась к выходу.

У двери она обернулась.

— Знаете, Круглов… я, конечно, вас не хвалю. Но хотя бы не на диване. Уже прогресс.

И ушла.

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

— Ну что, Барсик? — сказал Антон, садясь обратно. — Говорят, ты тоже мог бы стать программистом.

Барсик зевнул.

Антон нажал «Play» и взял ручку.

Продолжение следует…

Глава 2. «Типы данных. Строки и характер»

Прошла неделя. Антон честно пытался учиться. Он посмотрел четыре видео, прочитал две статьи и даже что-то конспектировал в тетради. Тетрадь была красивая, в клеточку, купленная специально для курса в канцелярском магазине у метро. На обложке было написано: «Python. Мой путь в IT». Ниже Антон приписал карандашом: «Надеюсь, не обратный».

Сегодня была важная тема: типы данных. Паша в своём жёлтом худи объяснял, что в Python есть строки, числа, списки и словари. Антон слушал внимательно, даже делал пометки на полях. «Строка — это текст в кавычках», — записал он. «Числа — это числа. Без кавычек». Он задумался. Потом дописал: «Лена — строка. Без кавычек уже. Вроде как число, но не моё».

Барсик лежал на системном блоке старого компьютера, который Антон не включал года три. Системный блок был тёплый, потому что работал вхолостую — Антон когда-то пробовал его почистить, но что-то замкнуло, и теперь он просто грел воздух. Барсика это устраивало. Кот вообще был философом: если что-то греет и не требует от тебя ответственности — ложись сверху.

— Слушай, Барсик, — сказал Антон, отрываясь от конспекта, — а вот смотри. Строка — это, например, «Барсик». А число — это твой вес. Ты весишь восемь килограммов. Это число. Понимаешь?

Барсик не пошевелился. Он уже давно смирился с тем, что его человеческий сосед периодически издаёт странные звуки в его сторону. Главное, чтобы корм давали вовремя.

— А список — это, например, список того, что от меня ушло: жена, уверенность в себе, абонемент в спортзал, который я купил и ни разу не использовал. Три элемента. Можно добавить четвёртый — «стыд перед соседями». Это будет метод append.

Он постучал ручкой по столу. Получалось? Кажется, получалось. Антон впервые за долгое время чувствовал, что его мозг делает что-то, кроме воспроизведения грустных мыслей по кругу.

Он открыл редактор кода. Чёрный экран, белые буквы. Выглядело сурово и профессионально. Антон напечатал свою первую программу — ту самую, которую Паша показывал на видео:

python

name = input("Введите ваше имя: ")

print("Привет, " + name + "! Добро пожаловать в мир Python!")

Он запустил код. Консоль спросила: «Введите ваше имя:». Антон ввёл: «Антон». Программа ответила: «Привет, Антон! Добро пожаловать в мир Python!».

Сердце ёкнуло. Она с ним поздоровалась. Машина, набор символов, чёрный экран — а поздоровалась. По имени. Антон улыбнулся. Это была его первая работающая программа. Она не взорвала компьютер, не вызвала синий экран смерти и не потребовала денег. Просто поздоровалась.

— Барсик, видал? Я программист!

Барсик открыл один глаз, оценил обстановку и закрыл. Программист-программистом, а корм по расписанию.

Антон решил пойти дальше. Он вспомнил, что Паша говорил про условные конструкции. «Если — то — иначе». Логика. Принимаем решение на основе данных. Он задумался. Какое решение он мог бы автоматизировать?

Через пять минут он писал программу «Калькулятор развода».

Идея была простая. Пользователь вводит причину, по которой от него ушла жена. Программа анализирует текст и выдаёт вердикт. Антон честно пытался использовать изученные методы: он разбивал строку на слова, считал их количество, искал ключевые термины. Если находилось слово «диван» — вердикт был суров.

Первая версия выглядела так:

python

reason = input("Введите причину развода: ")

if "диван" in reason:

print("Вы — диван.")

else:

print("Причина не распознана. Попробуйте ещё раз.")

Он запустил программу и ввёл: «Я слишком много лежал на диване».

Программа ответила: «Вы — диван».

Антон уставился в экран. Это было смешно. И больно. И честно. Он ввёл: «Она меня не понимала». Программа ответила: «Причина не распознана. Попробуйте ещё раз». Он ввёл: «Я не мыл посуду». Снова: «Причина не распознана». Он ввёл: «Диван был моим лучшим другом».

Программа ответила: «Вы — диван. И у вас нет друзей».

Антон рассмеялся в голос. Он сам дописал вторую часть. И забыл стереть. Барсик поднял голову — человеческий самец издал странный звук, похожий на радость. Такого не случалось уже несколько месяцев.

В дверь постучали. Как обычно, без предупреждения. Антон вздохнул и пошёл открывать.

На пороге стояла Алёна Викторовна. В руках у неё была стопка учебников, перевязанная бельевой резинкой. Выглядела она так, будто только что провела шесть уроков подряд в девятом «Б», который, по слухам, довёл до нервного тика даже трудовика.

— Держите, Круглов, — сказала она, вручая ему стопку. — Информатика за девятый, десятый и одиннадцатый классы. Тут основы алгоритмов, Паскаль, немного C++. Честно говоря, не знаю, что там сейчас актуально, но база везде одна. Если поймёте, что такое цикл, — уже победа.

— Спасибо, Алёна Викторовна, — Антон принял книги. Они пахли старой бумагой и мелом. — А вы чего такая... уставшая?

— Девятый «Б», — сказала она таким тоном, каким говорят «холера» или «налоговая проверка». — У нас была контрольная по квадратным уравнениям. Знаете, сколько человек её написали на положительную оценку? Четыре. Из тридцати. Четыре, Круглов. Остальные решили, что дискриминант — это что-то из области фантастики, а икс равен примерно «ну, где-то между двойкой и тройкой, я не знаю».

— Сочувствую.

— Не надо сочувствовать. Надо учить. А то вырастают потом... — она осеклась и посмотрела на Антона. — Ну, неважно. Как ваш Питон? Не укусил?

— Знаете, почти нет. Я сегодня программу написал. Работает.

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