Код
#статьи

Михаил Флёнов: «Я начал кодить 40 лет назад, и мне до сих пор нравится»

Повесть о первом компьютере, жизни в Канаде и вечной любви к программированию.

Иллюстрация: «Яндекс Фотки» / Flenov / Annie для Skillbox Media

Михаил Флёнов


Живёт в Канаде. Программирует с 1995 года: сперва на Pascal, потом на С++, assembler, Delphi, C#, PHP, Objective-C, Swift, немного на Perl и Python. Начинал как программист десктопных приложений, затем перешёл в Web. Из всех языков программирования предпочитает C# и Swift.

Долгое время писал статьи для журнала «Хакер» под псевдонимами Horrific, Смирнов и под своим именем. Также публиковался в «Chip Россия» и «Игромании».

Написал несколько книг о программировании и безопасности, в том числе с заголовками «Глазами][акера». Ведёт популярный ютуб-канал «Програмысли».


Ссылки


Вообще-то, я учился на экономиста. До поступления в 1993 году компьютеры практически не видел, даже не знал, что это такое. А с первым ПК познакомился уже в институте — и ничто другое больше меня не интересовало.

Как я стал программистом и переехал в жить в Канаду:


Программирование было для меня как магия

Мои вузовские друзья были программистами. А когда все в твоей компании чем-то сильно увлекаются, ты смотришь на них и постепенно втягиваешься сам. В общем, мне в какой-то степени повезло, что мои приятели не были, например, наркоманами :).

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

Через два года я сам начал работать там же, в экономическом отделе, который отвечал за учёт средств, уходящих на закупку запчастей у смежников. В мои обязанности входила разработка так называемых коопераций — то есть полных списков деталей, которые нужно закупать для всех видов продукции.

Даже сейчас посчитать что-то подобное, например, в Excel — задача не из простых. На заводе работало 40 тысяч человек, мы производили 15 марок огромных комбайнов, в каждом из которых одних только болтов с винтами — десятки, если не сотни типов.

Сперва попробовал делать кооперации в экселевском предшественнике SuperCalc, установленном на очень старой ЕС ЭВМ, этаком советском ответе IBM на базе Pentium 206. Кажется, их ещё называли болгарскими, потому производили в Болгарии по стандартам СССР.

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

Меня заметили в отделе кадров. В то время как раз повсеместно начали внедрять карточки персонифицированного учёта в пенсионном фонде, ФОМС и так далее. В общем, что-то вроде нынешних СНИЛС. Кадровикам требовалась учётная база всего заводского персонала. Так я стал настоящим программистом — ведь до 1995 года я числился экономистом, а программированием и автоматизацией процессов занимался по собственной инициативе.

Как ни странно, мне сразу дали первую категорию — выражаясь современным языком, я с ходу, минуя грейды джуна и мидла, стал сеньором. И это — без профильного образования и без формального опыта работы! С тех пор я всегда работал только программистом.

Программистам платили мало, но я работал не ради денег

Времена были тяжёлые, на большие доходы рассчитывать не приходилось, при этом зарплаты на Ростсельмаше тогда задерживали по полгода. Вдобавок ко всему, из-за того что завод большую часть времени работал не в полную мощность, окладников то и дело переводили на неполную рабочую неделю. То есть при официальном окладе программиста первой категории примерно в 10 000 рублей (по тем временам это звучало вполне неплохо) в итоге у меня зачастую выходило тысяч шесть, а то и пять.

Я получал меньше, чем простые заводские сборщики. Никто ведь не знал, что такое программирование, зачем оно и как его оценивать. Да и спроса на IT-специалистов не было. Грубо говоря, я работал за еду; сейчас это называется «бесплатная стажировка для получения профессионального опыта».

Но мне, юному студенту, всё нравилось: ведь завод, в связи с важностью и обязательностью поставленной мне задачи, ресурсов на её выполнение не жалел. Мне покупали новейшие компьютеры Pentium, серверы (которые, к слову, я впервые увидел именно там), прочие дорогие игрушки. Я сам проектировал и прокладывал сети, полностью за них отвечал — в общем, интересного в работе хватало.

Как я стал автором «Хакера»

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

Источник: личный архив Михаила Флёнова.

Зато в редакторской колонке тогдашний главред Сергей SINtez Покровский приглашал к сотрудничеству всех читателей: «Желающие стать авторами, пишите в личку». Я пришёл домой, сразу же написал электронное письмо и отправил его через простой модем. На следующий день мне ответили, попросили рассказать о себе. Я написал, кем работаю и чем занимаюсь, после чего меня добавили в пул авторов.

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

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

Мы договорились, что он будет высылать игры, указывать на интересные аудитории, а я — искать недостатки и уязвимости: что можно исправить, что изменить, как получить бонусы, как прокачать игру и даже её взломать.

Видео о том, как я работал в журнале «Хакер»

Так мы проработали несколько месяцев. Потом этот редактор ушёл в «Игроманию», и я напросился вместе с ним. Но там мои статьи не зашли: их сочли слишком пошлыми. Это для «Хакера» можно было написать что-нибудь в духе: «Чтобы поменять цену юнита, вам придётся перезапустить уровень, а коней на переправе не насилуют». В «Игромании» же мне сразу указали: «Миша, у нас так не принято». На что я возразил: «А по-другому мне неинтересно. Я пишу ради фана».

Я не лукавил: зарплата авторов что в «Хакере», что в «Игромании» была чисто символической, хотя многие до сих пор думают, что я на этом зарабатывал. В общем, с писательской деятельностью пришлось на время расстаться. Но я благодарен тогдашним редакторам за буст и вход в журналистику.

Как я написал книгу для программистов и что из этого вышло

Тем не менее жажда авторства не утихала, хотя поначалу я не хотел писать книги. Поэтому я сделал сайт — что-то вроде соцсети, только для программистов, где я делился знаниями о программировании. В определённый момент решил объединить всё это в одну последовательную историю и быстренько собрал PDF-файл. Так на диске журнала «Хакер» вышла моя первая книга «Библия Delphi».

Конечно, она была далека от идеала. Но читателям понравился мой способ объяснять. С тех пор я пишу книги, потому что мне нравится делиться знаниями. Сейчас в основном выходят переиздания. Новые книги я не пишу уже лет десять. Большинство моих изданий были по мотивам статей для журнала «Хакер». Только «Библия C#» и игровые книги были написаны с нуля.

Библию Флёнова можно купить здесь
Скриншот: Skillbox Media

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

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

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

Были времена, когда его посещало 100 человек в день и я получал по 10–20 писем. Сейчас письма приходят реже. Отчасти, наверное, это был фидбэк ещё от «Хакера» с его огромной аудиторией. Теперь она не такая большая, я не занимаюсь продвижением — мне это не нужно. Это просто хобби: написал, выплеснул мысли, и на этом всё. Кому нравится — читайте, кому не нравится — не читайте. Зарабатывать на блоге я не планирую. Продвижение понадобится, только если я захочу что-то продавать — например, курсы. Но я пока этого не планирую.

Не могу сказать, что блог придаёт мне какой-то особый вес в профессии. Даже в России от того, что я писал статьи и книги, не было профита, кроме шуток и тем для разговоров. Я нормально к этому отношусь.

Почему переехал в Канаду

После Ростсельмаша я перешёл в «Атлантис-Пак» — компанию, которая производит 90% искусственной оболочки для сосисок и колбасы в России. Проработал там с 2000 по 2004 год. Платили там тоже мало: тогда больше ценились не программисты, а электронщики, которые строят производственные линии, а из айтишников требовались только специалисты по 1С. Но у меня были интересные проекты: я автоматизировал эти линии и настраивал контрольно-измерительные приборы. Например, если толщина оболочки отклонялась от нормы, партия тут же автоматически отбраковывалась.

Увольнение было ошибкой: сделал ставку на московскую компанию «МВ». Они занималась офисной техникой, открыли филиал в Ростове, чтобы сэкономить на разработке, предлагали программистам довольно большую, по ростовским меркам, зарплату — 400 долларов. Правда, в «Атлантис-Паке» у меня было больше, но я повёлся на обещание карьерного роста. В итоге проработал там всего две недели: не понравился излишний контроль.

Например, учёт рабочего времени был настолько тщательным, что требовалось оставлять записку, даже когда уходишь в туалет или на обед. Когда понял, что у нас в кабинете программистов сидит специальный сотрудник, который следит за нашей работой, то ушёл. Из всех компаний, где работал, только эта оставила негативные впечатления. Говорят, в головном офисе у них была такая же жёсткая система. Наверное, поэтому они и закрылись.

Потом занимался автоматизацией бухгалтерии и кассовых аппаратов, работал администратором. Прыгал с места на место каждые полгода — нормальной, интересной работы не предлагали. Открыл свой бизнес — продавал софт за границу. Чтобы его продвигать, требовалось бросить работу и заниматься только им. Но это было тяжело: у меня уже была семья, а бизнес был нестабильный. В сложившейся ситуации нужно было что-то менять. Я решил уехать куда-то, чтобы двигаться дальше и развиваться.

До 2008 года зарплаты программистов постепенно увеличивались, возрастал престиж профессии. Я начал выбирать, куда переехать: Москва мне не нравилась, потому что была «перегруженной», а вот Питер показался нормальным городом. Но в 2008 году у компании «Интер-Степ», где я работал, начались проблемы. Проданная Чичваркиным «Евросеть» была её основным клиентом, возникла неопределённость.

Я начал искать другую сферу, где мог бы продвигаться. В Ростове по-прежнему требовался только 1С, амбициозных задач на рынке не маячило. У нас как раз были готовы документы на выезд за границу, и я запустил процесс эмиграции, который занял следующие девять месяцев.

В первый и пока единственный раз в жизни пригодились публичная деятельность и блог: один из читателей «Хакера» порекомендовал меня на работу. Так в 2009 году я переехал с семьёй в Канаду.

Остановка — Канада
Фото: личный архив Михаила Флёнова

Старт в Канаде

Первым фактическим работодателем в Канаде стала Sony. Для меня это был настоящий прорыв. Я отвечал за сайт rewards.sony.com — электронный магазин по всему каталогу товаров Sony: электронике, играм для PlayStation, музыке, фильмам и так далее.

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

Одно время я был единственным программистом на этом проекте. Это то же самое, что, например, оставить одного человека на сайте «М.Видео» или «Эльдорадо»; думаю, их трафик примерно такой же, как у Sony. Это очень хороший опыт.

Так что первые 5–6 лет буст был очень сильным. Кроме того, я познакомился с совершенно новым подходом к программированию. На том же Ростсельмаше начальник ставил задачу на словах: «Надо сделать персонифицированный учёт». Чётких требований не формулировалось: иди и делай сам, как хочешь. Никаких менеджеров, тестеров — ничего не было. В Питере я работал примерно так же.

Приехав в Канаду, я узнал, что существуют такие специалисты, как тестировщики. Впервые попробовал тикетную систему, где ясно прописано, что именно нужно сделать, а проект-менеджеры проследят, сколько времени это займёт. Выяснилось: нужно делать эстимейты, чтобы клиент знал, что и когда будет доставлено. Для меня это было практически обучением с нуля, информации было очень много. И всё это нужно было учить сразу, в новой стране, в совершенно другой среде.

Бывало такое, что я спал в офисе. Работы было много, но я справлялся. Я действительно кайфовал от масштабов проекта. На самом деле я так люблю программирование, что, даже если зарплаты опять станут минимальными, я никуда не денусь и останусь в IT.

Доход рос каждый год, и это придавало мотивации. В 2009 году я начинал с 60 000 долларов в год — в Канаде это вообще не деньги. Каждый год моя зарплата повышалась примерно на 10 000 долларов. Такую большую прибавку дают редко, но я работал довольно усердно, и компания была готова существенно поднимать зарплату. Вообще, в Sony меня берегли.

Мы работали над большими задачами. Например, практически одновременно переделывали два сайта: Sony Rewards и Wheel of Fortune — телепередачи, формат которой российский «Первый канал» купил у американцев для «Поля чудес». При этом в штате нас было всего шесть человек.

Такие маленькие команды сложились из-за очень высоких цен на работу. Точно не могу сказать, во сколько я тогда обходился Sony: работал на консалтинговую компанию вроде EPAM, которая брала деньги у Sony за мою работу. Но моя часовая ставка, я думаю, была очень высокой — минимум 200 долларов.

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

Как я начал работать без посредников

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

Новым консультантом Sony, вместо той компании, где я раньше работал, стала IBM. Задачи им поставили примерно те же: сделайте сайт за полгода, а если вам нужна помощь, то вот Миша, его часовая ставка без посредников 100 долларов в час, можете использовать его как угодно.

Поначалу я действительно помогал как архитектор. Но примерно за два месяца до сдачи проекта мы поняли, что команда не успевает. Добавлять ресурсы не хотели из-за их дороговизны. Стоимость услуг IBM складывалась из зарплаты программистов и наценки консалтинговой фирмы. Поэтому оказалось дешевле загрузить меня по полной программе.

Сначала я 2–3 часа в день занимался консультированием по телефону, но очень быстро начал ещё и писать код. В результате обходился компании дешевле, а результата выдавал больше. Практически весь проект я заканчивал сам.

Несмотря на нагрузку, мне всё нравилось, потому что это были очень интересные проекты. Для примера, последний из них был связан с консолью PlayStation. Пользователь зарабатывает трофеи — золотые, бронзовые, серебряные — тремя способами: может покупать игры, выигрывать при их прохождении или подписываться на фильмы и музыку от компании Sony. Трофеи превращаются в пойнты на сайте Sony Rewards. Например, за 1000 трофеев можно было получить 100 пойнтов. А пойнты превращаются в доллары. Моей задачей было организовать процесс, в котором пользователь тратит деньги на продукты Sony. Я делал конфигурируемое приложение, с помощью которого Sony запускала промоушены.

На разработку этой системы ушло около 200 часов — чуть больше месяца
Скриншот: Skillbox Media

PlayStation за счёт таких программ продавала больше игр. Если пользователь подключал все три подписки одновременно, то получал 1000 пойнтов. А это скидка в 10 долларов, которую можно потратить на сайте Sony Rewards.

У PlayStation огромный трафик. Представьте, сколько пользователей играют в игры, сколько данных приходится обрабатывать, чтобы найти информацию и собрать все эти трофеи. Это крутой и сложный проект. Я так горел этим, что сделал его за два месяца.

У меня была другая полноценная работа, но я работал над проектом Sony всё свободное время — в автобусе по дороге в офис, во время обеденного перерыва, дома, в туалете. Через два месяца мы с успехом запустили проект, причём без единой ошибки. Ни одного багрепорта после этого мне не отправили, и не было такого, чтобы система легла из-за слишком большого трафика.

После нескольких проектов мой контракт с Sony закончился. Из-за того что компания обращалась к разным консалтинговым фирмам, их расходы на разработку были не очень эффективными. Думаю, они подсчитали, что кастомные решения обходятся дороже готовой платформы, и перешли на универсальную систему.

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

Мне нравится работать в штате компании. Я отрабатываю положенные часы, делаю свои задачи хорошо, а в свободное время могу заняться своими проектами. Я веду канал на YouTube и немного занимаюсь играми в качестве хобби. Даже выложил в AppStore несколько бесплатных.

Как я привыкал к канадской культуре

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

Несколько раз я сталкивался с таким в работе. Подходит тестер, радуется тебе, как лучшему другу, говорит, что всё хорошо — и тут же идёт жаловаться на тебя начальству. Из-за таких подходов у меня неоднократно были конфликты с проект-менеджерами. Я привык говорить о претензиях открыто.

Я дважды разрывал с Sony контракты, потому что мне не нравилось, как работает их ивентер. Команда разработчиков перестала справляться с пулом задач, и я взял часть работы на себя. Мне поставили условие: прислать документацию, чтобы я работал так, как удобно им и делал пул-реквесты. Когда я отказался, они обратились с жалобой к руководству в Sony.

Пришлось объяснять представителям заказчика, что я не слышал о пул-реквестах и не хочу с этим разбираться, а хочу работать автономно. Я был на нервах, потому что мне и так приходилось работать по 16 часов в день. Компания пошла мне навстречу: мне ответили, что команда разработчиков будет сама делать за меня пул-реквесты, если им это так нужно. Вот насколько в Sony мной дорожили.

Чашечка кофе на свежем воздухе
Фото: личный архив Михаила Флёнова

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

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

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

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

Канадская природа похожа на российскую
Фото: личный архив Михаила Флёнова

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

Климат в разных провинциях тоже различается. Торонто схож с Ростовом: там очень высокая влажность и летом слишком жарко. Недаром здесь все автобусы с кондиционерами, иначе просто невозможно. А зимой от этой влажности очень холодно, часто дуют сильные ветра и накрывает снегом. Недавно жена мне сказала: «Миша, смотри, у нас сейчас 70 сантиметров снега будет». Я не поверил, но в понедельник действительно был сильнейший снегопад, на севере выпал метр снега.

Много ли в Канаде русских эмигрантов

Я всё ещё люблю путешествовать по стране
Фото: личный архив Михаила Флёнова

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

Сейчас в соцсетях появляется много сообщений: «Я только приехал, помогите снять жильё». То есть люди бросили всё, эмигрировали, но заранее не продумали, где они будут жить. А здесь, в Торонто, с жильём очень тяжело. Аренда даже однокомнатной квартиры обходится в среднем в 2000 долларов! Такая перегруженность рынка связана с тем, что из-за ковида в Канаду почти два года не приезжали иностранцы. Сейчас поток возобновился — люди едут из Индии и Европы, не только из России и Украины.

Почему Канада?

Возможно, я вообще не выбрал бы Канаду для иммиграции, но семья настояла. Дочка сильно боится пауков, поэтому Австралия отпадала. Выбирали из оставшихся англоязычных стран. Если ехать в Англию, то только в Лондон, потому что там большой айтишный хаб. Но уже тогда там было слишком дорого.

США никогда меня не привлекали. Я даже не хотел бы получить американское гражданство, потому что в этом случае пришлось бы платить налоги в американский бюджет, где бы ни жил. Канадское гражданство хорошо тем, что я могу завтра уехать на Бали, жить и зарабатывать деньги там, и ничего не буду должен канадскому правительству.

Все говорили мне: «Езжай в Германию. Там айтишники говорят по-английски, немецкий не нужен». Но в быту ведь без него никак: жизнь — это не только работа. В Испании и Италии не было хорошей работы. Так что я не жалею о том, что мы выбрали Канаду.

Шикарные виды канадской природы
Фото: личный архив Михаила Флёнова

Я считаю, что уехал вовремя: если бы я не уехал тогда, сейчас бы ни за что не решился. Стоимость жизни сильно выросла, а зарплаты практически не изменились, даже немного опустились. Да, ещё есть сферы, где можно получать по 200 000 долларов в год, но для этого придётся очень много работать. Например, в банковской системе — но и у неё свои недостатки. Тем более что и 200 000 долларов в год в Канаде — не такие уж большие деньги.

Налоги очень высокие, а недвижимость — вообще нереально дорогая. Самый дешёвый домик стоит 800 000 долларов. Процентная ставка по ипотеке сейчас, если не ошибаюсь, выше 5%. Я успел купить дом за 400 000 долларов, и у меня сейчас долг всего лишь 200 000 — в самый раз. У нашей семьи получилось всё сделать вовремя.

Научитесь: Профессия Разработчик на C++ с нуля Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована