Отъявленный программист: лайфхакинг из первых рук - Игорь Савчук
Шрифт:
Интервал:
Закладка:
В Кремниевой долине царит дух непрерывной работы, в частности офисы Google открыты круглосуточно. Как говорил мой тамошний босс, если вы приходите на работу в 8:00, а уходите в 17:00 — вы не работник HighTech-компании. Можно сказать, что американская часть Google подходит более молодым и амбициозным. В Европе нет такого рвения и напряженности, проекты более простые и монотонные, а жизнь в целом более зарегулированная в пользу обывателя (благодаря тамошним жестким национальным законодательствам). Также я слышал, что европейские отделения Google ценят многие выходцы из Восточной Европы и России, которым оттуда до родных краев лету всего 2–4 часа. Наверное, в качестве компенсации повышенной нагрузке в американской части Google предлагают более высокие зарплаты? Больше, но ненамного. Например, в некоторых других ИT-компаниях возможно резкое увеличение зарплаты сразу на 50 %, быстрый карьерный рост, если вы показываете неординарные результаты. В Google такого бешеного темпа роста зарплат и стремительного продвижения по карьерной лестнице ожидать не стоит. Единомоментное увеличение зарплаты на 10 % здесь считается приличным. Плюсы — у Google есть развитая система бонусов для успешных работников, отличный соцпакет. Несмотря на то что в компании нет жесткого графика работы, есть нормы часов, установленные бессрочным трудовым контрактом. Сверхурочные часы компания не оплачивает. Для Google важно не то, сколько времени вы провели на работе, а каких конечных результатов добились. Последнее — отчасти следствие того, что Google — компания с американскими корнями. А в США принято договариваться о годовой зарплате, а не почасовой ставке (бывают и исключения, к примеру, работа сотрудников службы технической поддержки, которым нужно дежурить в офисе круглосуточно, оплачивается иначе). Желающим в первую очередь хорошо зарабатывать я бы хотел повторить давно очевидную вещь: общая зависимость зарплаты рядового сотрудника от стажа работы в компании весьма слаба. Максимальный доход в долгосрочной перспективе получают вовсе не лояльные сотрудники, но совсем наоборот — те, кто часто меняет работу. Частая смена мест работы в постоянном поиске прибавок и более выигрышных позиций (так называемый сайдшифтинг) — самая выигрышная стратегия, если деньги для вас главное. ИT-компаний в США море, таким образом, методом настойчивого перебора можно найти тех, кто даст столько, сколько надо (нужно учитывать, что многим компаниям нужны специфические скиллы, за которые они готовы платить «top dollar»). O’кей, можно ли, подводя итог, дать максимально общий обзор всей схемы трудоустройства в Google? Сделать финальный обзор всего самого важного с высоты птичьего полета, чтобы этот общий алгоритм предстал перед глазами читателя без ненужной детализации? Итак, сначала идут фильтрация и отбор анкет кандидатов (Recruiter Screen), затем в случае успеха назначается серия телефонных интервью (Phone Screen), возможно, с участием технического специалиста. Если вы проходите и этот предварительный этап, вас приглашают на очное интервью в офис компании (On site interview), полностью оплачивая и организуя ваш визит-путешествие. Как правило, само интервью — это затяжной марафон продолжительностью в день, когда вас интервьюирует последовательно от трех до восьми человек (как правило, технические специалисты), причем каждый задает свой список вопросов и задач. Затем каждый гуглер пишет свой персональный отчет по стандартной форме, в конце которого присваивает вам определенный рейтинг (Interview Feedback). Все эти отчеты постепенно стекаются в комитет по найму (Hiring Committee), где после завершения сбора отзывов на кандидата еще раз суммируются и коллективно обсуждаются рекрутерами комитета (Executive Review). Если вердикт в вашу пользу, готовится заключение от Compensation Committee, где озвучиваются конкретные цифры зарплаты, которые могут быть вам предложены, исходя из ваших результатов и бэкграунда. После этого цикла согласований каждый утвержденный снизу оффер попадает на стол высокопоставленному HR-сотруднику Google, который выносит окончательный вердикт на ваш счет (Final Executive Review), еще раз внимательно просматривая всю историю отзывов о вас и взвешивая значимость аргументов «за». Обычно около 70–80 % предложенных кандидатур утверждаются.На данные три уровня принятия решения уходит довольно много времени, поэтому нужно запастись терпением. В заключение ваш первоначальный рекрутер связывается с вами и сообщает, что вы «не можете быть частью этой команды», либо делает предложение о работе (Job Offer), перечисляя все детали и условия работы в компании, чтобы вы могли принять окончательное решение. Напоминаю, что двумя ключевыми условиями успешного прохождения интервью являются ваша профессиональная подготовка (достаточно среднего алгоритмического уровня и хорошего умения кодировать) и опыт правильного поведения на интервью (дается оценка комфортности общения с кандидатом и его соответствие стандартам инновационной компании — «гугловость»). Впрочем, если быть реалистами, в последние годы довольно легкомысленно тратить дорогое время на поиск сотрудников за рубежом, когда большую часть из них все равно не получится нанять из-за визовых ограничений. Из моего довольно большого круга общения в последние два года лишь единицы приехали в США сразу по «рабочке», поэтому попадание в американский сегмент Google чаще всего превращается как минимум в двухходовку. Самый простой вывод из этого — лучше ориентироваться на европейские офисы компании в качестве точки входа. И все-таки меня, как и любого практика, интересуют шансы — стоит ли инвестировать драгоценное время и силы в подобное трудоустройство? Как говорят американцы: «Сначала покажите деньги». Греет душу, что вы оцениваете шансы середнячка как очень хорошие, но неужели все так просто? Реалистично оценивая шансы и правильно расставляя балансы, следует, конечно, отталкиваться от статистики. Уже упомянутый мною ранее HR-босс Google Бок недавно привел интересные свежие цифры. По его словам, в последний год они получили чуть больше 3 миллионов резюме. Из них были реально наняты 7000 сотрудников (тот же год). То есть величина найма составляет примерно 0,2 %, что означает конкурс приблизительно 428,5 человека на место. Для сравнения: это намного больше, чем в Гарварде или Стэнфорде. С другой стороны, глядя на все с обывательской точки зрения и ежемесячно готовя людей для подобных собеседований, я вижу, что работает принцип «кому очень надо, тот рано или поздно устроится». Мне эта статистика не кажется удручающей, потому что я вижу, что мои знакомые туда как-то устроились (а некоторые успели даже уволиться, найдя место получше или разочаровавшись), я также сам прошел этот путь и не вижу в нем ничего сверхъестественного. К тому же, если глянуть на темпы найма, то хорошо виден разгон — с каждым годом Google нанимает все больше людей, разгоняясь при этом довольно динамично. Дефицит специалистов на рынке очевиден каждому, значительная часть из этих присланных 3 миллионов анкет — это пустышки или анкеты откровенных новичков, склонных к авантюризму. Пытаясь вывести некое руководство к действию, я бы резюмировал положение дел так: если вы уверены в себе как в специалисте, то есть имеете за плечами реальный опыт, а не только самомнение, и переживаете исключительно за факторы везения и удачи (а они, конечно, играют немаловажную роль), имеет смысл попробовать. Если к тому же вы молоды, то попробовать стоит обязательно! В плане денег это не будет стоить ничего, но взамен вы получите бесценный опыт. И если для айтишников-американцев трудоустройство в Google — это просто приятный бонус, то для жителей экономически депрессивных регионов, в частности некоторых стран Восточной Европы и Азии, это может радикально изменить их жизнь. Имея большие мотивы, они, как правило, прикладывают гораздо большие усилия, что очень хорошо видно по итоговой статистике трудоустройств. (После паузы.) Честно говоря, считаю все, что я посоветовал в этом ответе, отчасти бессмысленным (загадочно улыбается). На самом деле люди, с которыми я работаю, делятся на две противоположные категории. Самооценка одних останавливает и всячески тормозит их, в конечном счете они не сделают даже, как им кажется, одной жалкой попытки (вне зависимости от их объективного уровня подготовки). Другие, что бы я ни бухтел здесь о шансах в 0,2 %, рассуждают про себя примерно так: «О’кей, настало время поразмять мозги, покажу-ка я этим засранцам из Google, как это делается» (опять же, вне зависимости от их реальных способностей). Чаще всего именно эта последняя категория (на пару с госпожой удачей) все и решает. Все остальные просто трезво оценивают свои шансы. Тем не менее есть объективные шансы, чисто математическая вероятность показывает, что… (Перебивает.) Хотите совет не только по Google? В жизни нужно оценивать не абстрактные математические шансы, ведь, несмотря на все ваши «трезвые оценки», туда ежегодно устраиваются толпы, поверьте, вполне заурядных программистов. Черт, с моим подходом что-то не так? Кто все эти люди? (Джон вскакивает, шутя изображая меня, пародируя крайнее недоумение.) (Присаживается и продолжает серьезно.) На самом деле в любом проекте имеет смысл оценивать лишь проходные минимумы. У вас есть английский, у вас есть какой-то опыт, вы уверенно пишете код? — тогда нужно действовать, по возможности не спотыкаясь о свои же дурные мысли. Мяч круглый, игра длится 45 минут — это факты, все остальное — только ваши домыслы и ожидания. Трудитесь, развивайтесь, верьте в себя. Область видимости локальных переменных в вашей жизни ограниченна, вы не можете принять правильное решение в принципе. Поэтому расслабьтесь, у инкапсуляции есть свои плюсы. Лучше сделайте свою часть работы на максимуме, а дальше, как советует инсталлятор Windows, «откиньтесь на спинку кресла и дождитесь результата». Спасибо за хороший критерий принятия решений. В заключительной части интервью не подкинете ли свежих вопросов, которые, я знаю, вы систематически собираете на условиях анонимности из реальных интервью в Google? Вот лишь несколько случайно отобранных вопросов. ? Что лучше использовать при реализации хэш-таблиц: дихотомии или сортировки? ? Почему для сортировки маленьких объемов данных используют алгоритм сортировки вставкой? ? Почему алгоритм сортировки слиянием быстрее других видов сортировки для больших объемов данных? ? Когда и где выгодно использовать связанный список, а когда — обычный динамический массив? ? Пожалуйста, проведите оценочный подсчет примерного количества переключений контекста процессов (context-switch) в течение одной секунды в современной ОС, работающей на процессоре с частотой 2 ГГц. ? В чем принципиальное отличие реализации Сuckoo hashing от стандартных хэш-таблиц? ? Что такое «Cache Hit Rate»? ? У вас есть миллион телефонных номеров. Каждую секунду у вас просят подсказать номер по фамилии абонента. Как бы вы реализовали программную систему для решения этой задачи? Обоснуйте, почему это самое эффективное решение из всех. Очень много заданий построить максимально удобную и продуманную структуру данных (либо структуру классов) к какой-то конкретной задаче/ситуации. Много качественных вопросов (заданий) можно найти в секции «Алгоритмы» известного программистского сайта TopCoder. Все участники этого сайта, имеющие рейтинг «красного цвета», буквально завалены в своих инбоксах предложениями о работе от ведущих ИT компаний мира. В завершение этого большого интервью мой финальный вопрос: что советуете отвечать своим клиентам на частый вводный вопрос первичного интервью: «Почему вы хотите работать именно в Google?» Это коварный вопрос, потому что он с двойным дном, и все, что я могу посоветовать вам, это расслабиться и быть самим собой, не соображая при этом лихорадочно, какой же ответ они хотят услышать. Выясните это для себя заранее, для чего соотнесите этот вопрос со списком ваших идеалов и целью в жизни, а потом просто действуйте.