Программист из Беларуси Александр Рогачевский переехал в США более 20 лет назад. Его история — о том, как мальчик, чьи родители могли позволить себе лишь «Запорожец», мечтал о Ferrari Testarossa из компьютерной игры и хотел писать игры на С/С++. Тем временем софтверного бизнеса в стране не было вообще, и «фирмачи» меняли мазут на сахар, а сахар — на крупу.
dev.by Александр рассказал, какое сказочное «долго и счастливо» сегодня может быть у программистов, которые ищут работу в американских ИТ-компаниях. А ещё объяснил, как попасть в Google и Facebook «обходным путём», минуя очередь из зубрил-отличников, и даже предложил работу хорошим отечественным специалистам — в рамках своего старпапа.
Ради доступа к нормальным компьютерам: отправиться на электричке на Минское море, чтобы «столкнуться с Голенковым»
— В начале 80-х годов прошлого века почти все дети мечтали покорять космос. Мне же хотелось стать программистом. В нашей школе № 19 на Золотой горке был целый класс с промышленными СМ-4 (аналог PDP-11 c UNIX), и моими первыми языками были Fortran и C, а не BASIC. Ещё тогда только появились «персоналки» ЕС-1840 с играми типа Test Drive. Просто трёхмерное чудо какое-то: мои родители — обычные советские инженеры — только копили на «Запорожец», а их сын гонял на Ferrari, Lamborghini и Porsche. Именно тогда я решил писать только игры и только на языках профессионалов — С или С++. К тому же я был уверен: кто-кто, а «сишник» в США может себе позволить Ferrari Testarossa.
В РТИ, куда я поступил после окончания школы, в распоряжении студентов были большие EC ЭВМ, но нам-то хотелось иметь доступ нормальным компьютерам — «персоналкам». А для этого нужно было идти в клуб. В 1988 году это стоило 5 рублей в час. Денег не было, поэтому пришлось искать другое решение.
Так я как-то услышал о намечающейся конференции, в которой принимала участие лаборатория искусственного интеллекта под руководством Владимира Васильевича Голенкова. Студентов, в число которых я, конечно, не входил, попросили помочь расставить и подключить компьютеры. Я отправился туда без приглашения — сел на электричку и поехал на турбазу на берегу Минского моря, очень уж хотелось по окончании конференции поиграть в игры. Под конец я будто бы случайно столкнулся с Голенковым и, не представляя даже, кто он такой, попросился к нему в лабораторию. Оказалось, он как раз набирал толковых студентов.
Лаборатория искусственного интеллекта располагалась в общежитии за минским автозаводом: мы снимали верхний этаж. Там было классно. В лаборатории я занимался алгоритмом поиска похожих фрагментов в нейронных сетях — и мы использовали чистый C++. Сначала я работал там бесплатно, потом мне даже что-то платили. Но меня бы и так всё устроило: главное — у меня был доступ к компьютеру. Я вспоминаю сейчас те времена: литературы по программированию не было совсем, но в лаборатории был матричный принтер с постоянно высыхавшей лентой. Я красил её ядовитой краской, которую достал в типографии тракторного завода папа, и так напечатал классическую книгу Страустрапа по C++, на что, кстати, ушла целая ночь.
Программирование в эру натурального обмена: как устроиться к Зиссеру работать бесплатно и получить BMW
— С развалом Советского Союза лаборатория то ли распалась, то ли переехала: нас выгнали из общежития. И мне снова надо было искать компьютер.
— Компьютер или работу?
— Компьютер. Работы не было вообще: экономика-то рухнула. В тот момент мы жили в эру натурального обмена — «фирмачи» меняли мазут на сахар, а сахар — на гречку, народ «гонял» с товаром в Польшу. Программисты сидели без работы. И вот как-то, листая «Вечерний Минск», я заметил малюсенькое объявление: «Надёжные программы», и номер телефона — больше ничего. Конечно, Юрий Анатольевич Зиссер совсем не сотрудников искал, а клиентов. Но я позвонил и напросился на встречу. Мы проговорили 3 часа, и он взял меня к себе. Бесплатно.
— Вы так невысоко ценили себя?
— Кто не жил в то время, вряд ли поймёт. Мне нужен был компьютер: это моя плата. Я и когда в Америку переехал, начал с 30 тысяч долларов в год, хотя специалисты, знающие C++, зарабатывали по 180 тысяч.
Кроме меня у Юрия Анатольевича работал ещё один парень, он писал на FoxPro. Я же после голенковской лаборатории всё, кроме C и C++, считал любительством. Сейчас думаю, родись я на 20 лет позже, не было бы даже вопроса, куда идти работать — в Wargaming, куда же ещё. Но в те времена нужны были не игры, а банковский софт, который делали отнюдь не на C++.
Зиссер сдался под моим напором, сказал: «Давай попробуем C++!». И доверил мне, молодому, зелёному, писать большой проект — депозитарий ценных бумаг, которыми в ту пору были разные облигации. Естественно, не обошлось без ошибок, ведь это была моя первая большая система. Ошибки были концептуальными. Многие программисты всю жизнь считают, что вообще не обязаны ломать над этим голову, к примеру, шлифовать постановку задачи. Не думаю, что юзеры активно использовали систему после внедрения, но с технической точки зрения всё работало — один из первых графических пользовательских интерфейсов на Windows 3.1 в эпоху DOS и Norton Commander.
Гонораром за проект стала машина финансового директора — старенькая BMW. Чтобы получить её пришлось немного «покачать права»: к тому времени я уже считал себя крутым специалистом и был недоволен заработком. Из компании Зиссера я, понятное дело, вскоре ушёл.
«До чёрного 2002 года было просто классно!»: как уехать в США и за неделю найти работу
— Сейчас мне стыдно за свои слова, но в середине 90-х я часто говорил что-то вроде: «Здесь я ещё не родился: вот уеду в США — тогда всё и начнётся». Я знал, что уеду, с самого начала. И конечно, идеализировал Соединённые Штаты, как и все в Советском Союзе в то время.
Я прилетел в Кливленд в конце 1996 года. Сразу позвонил хорошему приятелю, которого когда-то привёл к Зиссеру, он уехал в Америку на год раньше: «Лёня, я хочу работать — всё равно где». И неделю спустя уже летел в Калифорнию.
Меня взяли на 30 тысяч долларов в год — это почти ничего. Впрочем, я был холост, у меня была однокомнатная студия, матрас на полу, телевизор, холодильник, микроволновка, компьютер — что ещё надо для счастья?! Разве что старушка BMW — и денег оставалось даже больше, чем сейчас.
— Была ли у вас перспектива реализоваться в качестве программиста в Беларуси?
— У меня — да. Я не ждал с моря погоды. С детского возраста родители дали мне понять, что от советской системы ждать нечего, самому пробиваться надо. И в США это помогло. В 2002 году, когда сотни тысяч, если не пару миллионов программистов в США остались без работы, потому что проекты ушли на аутсорсинг в Индию, я не работал всего 2 месяца. Я бы пробился и в Беларуси. Но хотелось большего: ездить на хорошей машине, а не папином «Запорожце», работать с C++, а не FoxPro. О жизни в Америке мы знали только по фильмам — и в них средний класс разъезжал на BMW.
— Советские программисты были востребованы в США?
— Да, до «чёрного» 2002 года, когда почти все проекты один за другим за каких-то полгода ушли на аутсорсинг, было просто классно! Ни расизма, ни сексизма…
Советские программисты с их образованием были на хорошем счету. Когда казалось, проект вот-вот накроется, нередко приглашали именно их. Но главное — пока в США не хлынул поток из бодишопов, брали не «оптом», как скот, а нанимали индивидуально, и у нас была возможность поговорить на собеседовании с менеджером лично — объяснить, чем полезен конкретно мой опыт, разложить по полочкам, как я собираюсь спасти их от падающих каждые 5 минут серверов.
Прикрыть зад менеджера: зачем «дорогого программиста» нанимают на безнадёжный проект
— Со временем я понял, что меня, как «дорогого специалиста» (а я довольно быстро вырос и достиг потолка), приглашают в двух случаях. Первый — чтобы спасти «умирающего»: как правило, безнадёжный проект, выросший из корявого прототипа, на который в течение двух лет навьючивали новый и новый функционал.
На таких собеседованиях от меня требовалось солидное резюме с выслугой лет и всеми модными сокращениями. Чтобы понравиться, нужно было просто заразить собеседника уверенным расслабоном: «Проще некуда» и «За 5 минут можно исправить». Чудом всё исправить, конечно, чаще всего невозможно — только переписать от начала и до конца, чего обычно делать не давали. Но иногда проект удавалось вытащить. Так, например, я в одиночку спас проект на 20 миллионов долларов. Восприняли как должное. Кстати, если проект удаётся спасти, дело обычно заканчивается твоим увольнением. Менеджеры, как правило, говорят: «Спасибо, друг, выручил! Но сопровождение проекта мы отправляем в Индию, ты для него слишком дорогой…»
Второй, более распространённый, особенно после 2002 года, вариант — прикрыть зад менеджеров, когда проект почти умер. В таких случаях речь часто шла о замене старых систем — мэйнфрейма эпохи IBM-370. Меня фактически нанимали как козла отпущения. Боссы как бы говорили: «Мы сделали всё, что смогли, но даже такой чудо-специалист не справился, так что примите наши соболезнования!»
Согласно полуофициальной статистике до 2002 года, валились 70% проектов. С началом эпохи бодишопов валиться стало 90%. Я всё это видел своими глазами. Наивно надеялся, что экспертов назад на старые зарплаты позовут, раз ничего не работает. На таких проектах работали сотни дешёвых «тел» — статистов, с помощью которых менеджеры осваивали бюджет: ведь если бы они признались, что над проектом реально работает не больше 10 человек, им бы не дали столько денег. Горе-работнички постоянно курили у входа и прогуливались с озабоченным видом по этажу, притворяясь, что спешат на совещание.
Кстати, с одной из работ меня уволили как раз после того, как я сказал руководителю проекта, что написал бы их систему за полгода, имея лишь 6 человек в команде — трёх программистов, включая себя самого, двух бизнес-аналитиков и одного частично занятого сисадмина, то есть девопса. Проект к тому моменту длился уже 9 месяцев, прожирая по полтора миллиона ежемесячно, и был рассчитан на 18 месяцев. Считайте — 27 миллионов долларов.
Как поднять себе зарплату и понять, что контракт не продлят
— Вы спрашиваете, каково было осознавать, что меня брали на работу, чтобы списать ответственность за провал? Поначалу я этого не понимал — честно старался изо всех сил. Но спасти проект часто даже не давали. Когда я говорил, что код нужно переписать, предлагали «изложить своё видение на бумаге», и, пока они примут решение, фиксить баги по списку. Как раз тот случай, когда солдат спит, а служба идёт: изображай работу и жди, пока уволят, — потому что контракт не продлят вне зависимости от результата. Начальники обычно много совещались, но решений так и не выносили. И в какой-то момент говорили: «We are sorry!..» — и крокодиловые слёзы по щекам.
Кстати, я даже научился понимать, что вот-вот уйду из компании. Это очень просто: с тобой, как правило, прекращают общаться коллеги, и ты чувствуешь, другим уже сказали, что контракт тебе не продлят, и только ты один не в курсе.
— Как скоро вы стали «дорогим специалистом» в США?
— Я сориентировался в течение года — понял, как надо себя продавать. И за пару лет вырос до 180 тысяч в год. Как мне это удалось? Практика везде одинакова: «Всё, завтра я ухожу!» — и начинается торг: «Постой, сколько ты хочешь?»
Следует знать, что срабатывает это лишь раз, так что потом действительно надо будет уйти. Но это не страшно! Job-hopping (от английского «hop», что означает прыгать) — нормальное явление, и я всем начинающим специалистам советую этот путь: только так и можно поднять себе зарплату.
— Вы отметили, что в 2002 году на два месяца были без работы. Как решили эту проблему?
— Понизил планку. Тогда никто не верил, что это надолго: казалось, не сегодня так завтра всё восстановится, программистов снова начнут принимать на работу. Так и было, но «ставка» с 90 долларов в час упала до 45.
У меня в тот момент должна была родиться дочь, а ещё мы купили новый дом. Паники не было. Был шок: я не совсем понимал, что происходит. Я обратился к своим старым работодателям (вместе со мной на встречу пришла и моя беременная жена: в нашем доме как раз проводили обработку от термитов, и ей просто некуда было деться), и, скорее всего, они меня пожалели. «Окей, — сказали, — приезжай на следующей неделе: будешь работать у нас». Взяли меня, естественно, на меньшую зарплату — заработок упал почти на треть. Но я не торговался.
«Сегодня в ИТ не ждут никого — только «тела»: легко ли устроиться в американскую ИТ-компанию
— Для начала давайте определимся, что есть ИТ: это IT-department или по-русски — отдел автоматизации, например, в банке, сети бензоколонок или в крупной компании, как Toyota или Xerox. Вот Google — это не ИТ, это engineering. Хотя и там тоже есть отдел автоматизации который, к примеру, обслуживает купленный у кого-то бухгалтерский софт, поскольку ни Google, ни Facebook до написания своего никогда не опустятся.
По моим подсчётам, в ИТ работает до 90% программистов планеты. До Google и Facebook, понятное дело, там работало ещё больше — тогда разве что Microsoft был не ИТ, да и то частично. Устроиться было несложно: людей хронически не хватало, но как известно, в 2002 году эту проблему решили за счёт известной перенаселённой страны. Не поверите, какие истории доводилось слышать от индийских коллег об их «рекрутинге»: говорят, когда в городах за гроши уже никто не хотел работать, по деревням даже пускали грузовики — набрать желающих вызубрить Java по учебникам, поскольку компьютеры были слишком дорогими.
Сегодня в ИТ не ждут никого — только «тела», но бодишопов и в Минске достаточно. Вы не проживёте на 120 тысяч долларов в год (старые 60 тысяч с учётом инфляции), если столько вообще дадут, — половина из этих денег уйдёт на оплату налогов, страховки и на остальные поборы. И даже если получите грин-карту, накинут ещё максимум 40 тысяч. А я считаю, что программисты-сеньоры стоят не меньше 350 тысяч в год. И Google платит столько: поэтому, если и «ловить» что-то, то только там. Но даже Google платит не всем и берёт далеко не каждого. Туда такая очередь стоит!
«В обход очереди из отличников»: как попасть в Google, Facebook и компании с перспективами
— Чтобы попасть в Google, Facebook, Amazon или ещё пятёрку компаний, где программистов до сих пор уважают и не обижают финансово, белорусскому программисту нужно идти в обход очереди из выпускников-отличников, которых муштруют китайские «матери-тигрицы».
Учитывая нынешнюю помешанность на «науке», и Google, и Facebook, и компании помельче активно ищут людей в России, Украине и Беларуси. Понятно, что хакатоны не каждую неделю организуют. Но в целом шансы связаться с ними, особенно через социальные сети и различные сообщества, гораздо выше, чем в 1992 году попасть в «Надёжные программы» через объявление в «Вечернем Минске».
Ищите свой «зелёный коридор», но помните: нечто похожее уже было в конце 90-х в Microsoft. Сейчас там совсем другие зарплаты, так что и гугловские — не навечно. К тому же, набрав критическую массу институтских зубрил-отличников, и Google, и Amazon фактически в институт и превращаются. Народ там учит новые предметы за «оценки». Меня этот тренд, вкупе со многими анонимными откровениями гуглеров в Quora, настораживает: получается, что Google потихоньку превращается в Oracle, но со своим уникальным академическим уклоном. Боюсь, скоро там будут не нужны программисты.
«Мечтаю создать свой маленький Google»: как организовать свой стартап, сделав ставку на хороший код
— Теперь грамотному программисту как бы «положено» работать в Google. На последних местах работы на меня смотрели как на идиота: что я у них делаю, как до сих пор не ушёл в Google или Facebook. Но в Google плевать хотели на то, чем я занимался последние 25 лет: их не интересует бизнес-софт даже близко. Я это знаю, поскольку на меня не раз выходили рекрутеры и оттуда, и из Amazon.
Чтобы попасть сейчас в Google, Facebook и иже с ними, мне нужно было бы притвориться, что всех этих 25 лет не было, и для начала — снова сесть за парту и вызубрить алгоритмы. Но они всё равно меня не возьмут: я старый. Не по возрасту, а по тому, чем занимался почти четверть века. Вот если бы у меня за плечами была кандидатская, особенно по машинному обучению, тогда вопросов не было бы: человек всё это время на науку потратил!
Для себя я нашёл другое решение — занялся собственным стартапом. Я ведь не штаны просиживал в ИТ, а решал проблемы. И в конце концов нашёл, как применить все эти решения.
— В чём идея вашего стартапа?
— Я мечтаю создать свой маленький Google, где инженеров любят и нормально им платят. Сегодня реально сделать деньги на негламурной автоматизации бизнес-процессов — не обязательно убегать в глобальные потребительские продукты типа соцсетей и порталов.
Я сделал ставку на хороший код, который просто работает: как почки или печень здорового человека. Я за код, который позволит избавиться от дизайнеров, тестеров, менеджеров и остального персонала. Могу объяснить: многие программисты, к примеру, всегда делают аккуратные веб-странички. И к чему мне тогда дизайнер — ведь специалист сам может и картинки и иконки найти, и цвета подобрать, и отмерить отступы в других сайтах и дизайн-темах.
Сейчас я работаю над платформой, которая позволит совершенствовать проекты без участия бизнес-аналитиков, solution-архитекторов и прочих. Я не только сделал её, но даже опробовал, когда ещё работал по контракту. В данный момент у меня уже четвёртая версия, пятая будет генерировать Java-код в том числе для Android и iPhone-приложений.
Программист или вырастает до сеньора за полгода, или всю жизнь джуниор
— Сейчас мы делаем системы, и на каждую мне нужен программист, стоящий десятерых. Тот, кого в Google называют generalist, «человек-оркестр», который умеет абсолютно всё. Я уверен: человек либо программист, либо нет — середнячков не бывает. Ну не бывает middle-навыков! Если специалист умеет программировать и любит это делать, он вырастает до сеньора за полгода. Или так и остаётся на всю жизнь джуниором. Но таким людям программистами лучше не работать — они только проблемы для других создают.
Да, сеньор тоже иногда допускает ошибки, но он сам исправляет код — и поэтому ему можно доверять. Несколько человек в своей жизни я уволил за одну лишь фразу: «Я потыкал — вроде работает», — которую они произносили в ответ на вопрос: «Ты тестировал свой код?» Было видно, что код сдан без элементарной проверки. Сеньоров, как и меня, такие вопросы оскорбляют. Иначе это не сеньор, а джуниор — независимо от выслуги лет. А если джуниор не стал сеньором за 6 месяцев, держать его не имеет смысла — себе дороже, даже если он будет работать бесплатно.
Мне нужен хороший программист, которого я за полгода смог бы довести до своего уровня, чтобы он вёл этот проект. Того, кто хочет просто писать хороший код, за который ему будут платить деньги. Ведь мало кто пишет хороший код, включая архитектуру, дизайн, весь необходимый research инструментарий и так далее. Таких людей почти не осталось. Их и раньше было мало, а сейчас многие из них ушли в науку.
Я как-то работал с командой в Саратове. И там был один специалист — студент последнего курса. Я дал ему одну задачу: «Разберись», — но думал, что на следующий день мы только начнём работу, он задаст мне кучу вопросов. А человек взял и всё сделал. Такому человеку никаких денег не жаль! Я приглашал его к нам, а ему это неинтересно — он хочет заниматься машинным обучением.
Мне кажется, если бы за хороший код платили больше, столько людей не ушло бы в науку. Не всем же быть научными сотрудниками!
Беларусь — это бренд: «в аграрной стране высокая концентрация серьёзных программистов»
— Беларусь мне представляется интересной и перспективной площадкой сегодня, потому что Беларусь — это бренд. Да-да, не смейтесь! В Минске всегда были БГУ и РТИ, а также НИИ ЭВМ. В аграрной стране оказалась такая высокая концентрация серьёзных программистов с институтским образованием.
Пара-тройка кризисов вправила белорусам мозги: в американском ИТ бездельников в 10 раз больше. Поэтому я считаю, что белорусам надо перестать смотреть на запад сквозь розовые очки — здешняя экономика уже давно не свободная капиталистическая, а обычная коррумпированная олигархия, во многом похожая на российскую. Беларусь меня приятно удивила, когда поближе познакомился с нынешними реалиями через друзей. Выяснилось, что налоговая ситуация — в нашей конкретной области — у вас намного лучше, чем в России и Украине. А по зарплатам Минск сравним с Питером.
Мне кажется, Беларусь давно созрела для того, чтобы разрабатывать технологии и основывать собственные Google и Amazon, а не функционировать в качестве бодишопа. И не нужны для этого деньги — ни государственные, ни всяких венчурных капиталистов, только здоровый энтузиазм, и он есть. В Кремниевой долине ажиотаж — все в науку подались, потому что Google её ценит. Потом другая мода появится. А в Беларуси специалистам программировать интересно, примерно как в конце 90-х было в США.
Фото: Ирина Попа
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.