«Эй, ты теперь лучший друг Илона, а?» Я спросил своего друга, который стажировался в Tesla последние 3 месяца.

"У тебя нет идей. В течение нескольких часов мой стол находился примерно в пяти метрах от стола Илона ».

«Ни хрена», - крикнул я.

"Это правда. В первый день они сказали: «Вот твой стол». Я буквально испугался. Думаю, Илон мог бы прочитать мой код, если бы захотел. Однако мне быстро удалось сменить стол ».

«Чувак, это безумие. Сколько месяцев тебе осталось? Ты начал, вроде, в сентябре, верно? "

«Да, у меня осталось примерно 3 месяца».

«Но как вам удалось получить разрешение на работу в США? Разве вы не начали с туристической визы? »

"Это длинная история. Я пытался…"

«Пожалуйста, скажите мне. Я хочу знать все. "

«[Смеется] Правда? Все?"

Затем он продолжил объяснение всей истории.

Программа Звездного Флота

«Итак, в январе 2018 года я вылетел на этом самолете в Силиконовую долину 42. Мой отец мог дать мне только минимальную сумму для оплаты аренды (Airbnb). В первые месяцы все мои деньги уходили на этот Airbnb. У меня почти не осталось еды. Я ел половину тако в день, а иногда и пасту. Вот и все."

Это какое-то безумное дерьмо, чувак. На самом деле, это не так уж и далеко от «истории соучредителей Airbnb, у которых не было даже денег на оплату аренды ». Я сказал.

Да, тяжелые времена. Я был так голоден, я перестал трахаться. Я просил увидеться с директором программы «Звездный флот, спрашивал его типа: Могу я присоединиться к вам?, А он каждый раз отказывался. У меня была туристическая виза всего на 6 месяцев, но программа Звездного Флота рассчитана на один год. В какой-то момент он устал говорить нет и в конце концов согласился ».

«Ты абсолютный сумасшедший. Ты никогда не бросишь чувак. Ты чертовски ненормальный.

«Когда вы разорены и голодны, не так сложно попросить то, что вы хотите. Я вернулся из Франции. Мне нужно попасть в эту программу Звездного Флота. Я умирал за кодирование в режиме 24/7 и работу в Кремниевой долине ».

"Имеет смысл."

«Затем, через несколько месяцев после того, как меня приняли в эту программу Звездного Флота, один из моих друзей, который хорошо знал руководство, спросил, могу ли я снять комнату в общежитии. Они быстро просмотрели мои проекты, прежде чем принять. Думаю, они быстро поняли, что я серьезный парень. С этого момента у меня было больше денег, чтобы тратить на еду, и я мог все свое время посвящать программированию ».

«На данный момент у нас был безумный объем работы. Я помню, что мне приходилось делать corewar [проект виртуальной машины, выполнение которого обычно занимает месяц], 42sh [один из самых сложных проектов оболочки] и PHP piscine [две недели интенсивных проблем PHP] одновременно . Мы не спали всю ночь, чтобы закончить наши проекты. Одна из наших традиций заключалась в том, что один парень покупал еду для всех в 5 утра. Это было безумно."

«Ты даже не представляешь, как я ревную», - произнес я.

«Да, это было тяжело, но в то же время очень весело. Так или иначе, в какой-то момент рабочая нагрузка была невыносимой. Мол, у нас было одновременно 6 проектов. Я помню, что нам пришлось написать код ft_p [клиент и сервер для передачи файлов по сети TCP / IP], Hypertube [веб-приложение для потоковой передачи видео, реализация которого обычно занимает 2 месяца], Walking Marvin [проект AI] и Zappy [a сервер, графический интерфейс и клиент AI для многопользовательской игры по сети TCP / IP. Это один из последних проектов ветви UNIX] ».

"Это как будто объективно невозможно, верно?" - искренне спросил я.

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

- Думаю, я бы поступил так же. Но Zappy находится где-то в конце графа проекта UNIX, верно? Должно быть, было довольно сложно, не выполнив все предыдущие проекты ».

"Вроде. Для Zappy нам нужно было написать графический интерфейс, сервер и клиента. Хуже всего был «мертвый код» от первых членов команды, покинувших Кремниевую долину. Стоит отметить, что на тот момент у нас оставалось всего две с половиной недели, чтобы выпустить этот проект. Итак, я сказал себе: «бля, давай сделаем это». Я пошел поговорить с другими людьми из программы Звездного Флота, спросив их, готовы ли они работать с нами ».

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

[Смеется] Думаю. Итак, я пошел к тому парню, который кодировал Bomberman [проект видеоигры в C++], и спросил его, не хочет ли он присоединиться к нам для создания графического интерфейса. Он сказал: «О, нет, я не хочу подводить своих партнеров Bomberman. Я настаивал. Я сказал ему, что в Zappy можно выучить много нового, и что никто в Силиконовой долине 42 никогда не доводил его до конца. Мы были бы первыми. Он сказал, что ему нужно время, поэтому я сказал ему, что вернусь через день и посмотрю, передумал ли он. Я вернулся через два часа. Он присоединился к группе ».

"Блядь. Ты такой напористый человек. Вы действительно не можете принять ответ "нет"! "

«[Смеется] Возможно. Подводя итог ситуации, за две недели до крайнего срока у нас был код для графического интерфейса, наполовину готовый сервер и рабочий клиент. Мой польский друг пытался соединить разные части «мертвого кода», чтобы заставить работать сервер [самый сложный компонент]. Именно тогда она начала немного расстраиваться из-за всего этого и решила взять отпуск на неделю. Пока она была вне сети, я попытался отладить ее код, но он был без комментариев, загадочным и бессвязным ».

"Дерьмо. Ужасно, когда происходит что-то подобное. Чтобы переписать вещь, нужно больше времени, чем просто начать заново ».

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

"Я не верю тебе".

"Это безумие, правда?" он сказал: «Итак, мы втроем не спали всю ночь пару дней и закончили этот невозможный проект. Теперь это работает очень хорошо! »

«Это потрясающий человек. Хотел бы я рассказать такие удивительные истории ». Я сказал. «Но как насчет всей этой истории с Tesla? Как вы в итоге взяли интервью? »

Обеспечение интервью с Tesla

На тот момент мы около часа говорили о его потрясающих проектах в 42 года. Теперь он, наконец, собирался рассказать о том, как ему удалось пройти собеседование в Tesla и как он получил стажировку.

«Вся эта история с Zappy закончилась в июле C++ piscine [введением в ООП; около двух недель небольших C++ проектов]. В воскресенье был финал чемпионата мира по футболу, и играла Франция [мы с другом французы]. Поскольку я жил в бесплатном общежитии, у меня были дополнительные деньги. Билет в оба конца до Парижа был довольно дешевым, и я очень скучал по дому, поэтому я решил вылететь обратно во Францию ​​ ».

«Ни хрена», - медленно произнес я, разразившись смехом.

«[Смеется] Я очень хотел вернуться домой. Я приехал в субботу, смотрел финал, а потом пробыл в вегетативном состоянии примерно неделю. Но тогда я не мог больше расслабляться. Мне пришлось писать код ».

«Значит, вы буквально вернулись во Францию ​​всего на неделю?» Я сказал.

«Вот и все, да. Когда я вернулся с чемпионата мира во Франции, ко мне пришел директор школы. Он открыл свой ноутбук и сказал мне: «У меня есть друг, который работает в Tesla. Я отправляю ему электронное письмо, в котором рекомендую вам пройти стажировку ».

"Повезло тебе!"

"Может быть. Я подумал: «да, знаете, я мало что сделал C++, кроме« рыбалки »[C++ входил в стэк для стажировки, как вы увидите ниже], так что я не совсем уверен, что сейчас лучшее время для отправки заявки. Почему бы нам не подождать несколько месяцев? ». Но директор уже набрал электронную почту. Он сказал мне: «Ой, ты не особо много писал на C++, а? ВЫ СОБИРАЕТЕСЬ УЧИТЬСЯ! », и нажал« Enter », отправив электронное письмо, прямо в конце его предложения. Бля, Кваме [имя режиссера]! »

"Ни за что! Что ты сделал потом?" - сказал я озадаченно.

«У меня не было выбора, кроме как отправить еще одно письмо, добавив свое резюме и сопроводительное письмо. Затем я сказал, что буду доступен, если они захотят взять у меня интервью ».

«Подожди, ты сказал это, зная, что тебе нужно несколько месяцев, чтобы по-настоящему понять C++ ?!»

"Ага. И я считаю это ошибкой. Парень из Tesla ответил буквально через 20 секунд, сказав: «Конечно, давай встретимся на следующей неделе в среду». День был воскресенье. Я никак не мог быть готов за четыре дня. Поэтому я объяснил ему, что мне нужно больше времени, чтобы закончить проект, который я еще не начал. Мы договорились об интервью через две недели ».

«Это безумие . Это значит, что у вас было достаточно времени, чтобы подготовиться к собеседованию, не так ли? Однако C++ действительно сложно. Я не думаю, что было бы возможно узнать что-нибудь существенное даже за две недели ".

«Вот почему я предпочел сосредоточиться на работе над интересным проектом, который я мог бы им показать, а не на изучении C++. К тому же директор сказал мне, что они часто смотрят наши проекты, чтобы проверить наш код ».

"Имеет смысл. О чем тогда был этот последний проект? »

Финальный проект

Я хотел сделать что-то, связанное с Tesla, - вспоминал он, - поэтому я пробовал десятки разных идей, но ни одна из них меня не убедила. Каждый день я приходил к директору с новой проблемой. Он смотрел мне в глаза и говорил: «Твоя идея дерьмовая, да? «Должно быть, отстойно быть тобой. В какой-то момент я нашел проект, который меня убедил: симулятор движения беспилотных автомобилей ».

«Хм, да. Я помню, ты рассказывал мне об этом проекте ».

«О, да, мы могли бы это обсудить. По сути, мне пришлось прочитать много статей с большим количеством математики. Меня не особо интересовали уравнения, мне просто нужен был способ реализовать классную демонстрацию. Я нанял Бомбермена и двух своих лучших друзей (включая моего польского друга), и мы начали кодировать. Мы очень много работали. У нас была всего неделя, чтобы все это написать. Если я правильно помню, один из моих лучших друзей работал полный рабочий день, поэтому мне пришлось убедить его прийти в 42 года после работы [смеется] ».

«Эйс, на этот раз вы управляли командой для настоящего проекта!»

"Вид. Знаешь, я был в таком стрессе. Но да, когда я оглядываюсь на это, я действительно горжусь тем, чего мы достигли ».

"Конечно. Как же тогда прошло собеседование? » - с любопытством спросил я.

Интервью

«Сначала у меня было интервью по телефону с этим парнем. Он сказал мне, что звонок будет в 11 утра. Я с тревогой смотрел на свой телефон между 11:00 и 11:45, пока телефон наконец не зазвонил. Парень был очень милым, и он задавал вопросы о моей личной жизни, о том, чем я занимался в прошлом, о моих проектах и ​​так далее, и тому подобное ».

«Затем у меня было личное интервью с парнем, с которым я разговаривал по телефону. Мы встретились в полдень, и он пригласил меня на обед. Во время обеда я не мог думать ни о чем, кроме вопросов, которые он собирался задать мне днем. У меня была всего одна неделя, чтобы подготовиться к собеседованию. Все, что я делал, - это доводил до конца этот симулятор беспилотного автомобильного движения. Я не был подготовлен даже к базовым вопросам о двоичном дереве CS. Я мог бы взглянуть на C++ книгу, вот и все. ”

«Это довольно рискованно. Но, полагаю, учитывая ваши временные рамки, вы не могли бы подготовить намного больше, не так ли? "

"Наверное. После того, как мы закончили ужинать, он представил меня кому-то из своей команды: «Вы сказали, что любите математику, верно? Вот один из моих инженеров. Он имеет докторскую степень по математике. Вы двое должны поладить ''. Затем я последовал за этим доктором философии. Мы пошли в комнату, где ребята заканчивали обед. Мы не могли использовать доску, поэтому доктор философии сразу начал задавать C++ вопросы ».

"Дерьмо. Это то, чего ты боялся больше всего, правда?

"Определенно. Тем более, что в 42 года учат стандарту C++98, так что я был совершенно не подготовлен. Первый вопрос был типа «можете ли вы определить, что такое умный указатель?», Что является современным C++ вопросом ».

"Что ты тогда сказал?"

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

«Это показывает, что вы скромны и знаете свои пределы, и это здорово».

"Может быть. В какой-то момент он начал спрашивать о примерах undefined behavior. Я не знал, что ответить. Я вроде как segfaaled [смеется]. Затем внезапно на ум пришел один пример из моих прошлых проектов: `` при многопоточности, если вы объявляете переменную без ключевого слова volatile, компилятор может в конечном итоге удалить эту переменную (я думаю, из соображений оптимизации), что приведет к неопределенному поведению. Интервьюер ответил: «Хорошо. Нет ли у вас более простого примера? ». В итоге я привел пример, который был даже более низкого уровня, например, исполнение вне очереди ».

«[Смеется] Это тоже очень вы, чтобы давать такие сложные ответы. Думаю, это показало, что у вас был опыт C++ программирования, а не просто читали руководство. Что произошло дальше?"

«Да, я полагаю, у меня был некоторый C++ опыт. Что ж, после этих вопросов ребята пообедали. Он начал использовать доску и написал задачу о двоичном дереве поиска. Это было намного проще, потому что у нас была устная подготовка к задачам по математике в бакалавриате, помнишь?

«Наконец, когда я закончил упражнение, некоторые ребята попросили нас выйти из комнаты. Единственное, что сказал мой собеседник: «Кажется, это работает». Думаю, я справился с этой частью. Все 26_ собеседований плюс доска заняли примерно час. После этого вернулся технический менеджер и еще час побеседовал со мной. Он задавал очень простые вопросы о компиляции, потому что раньше работал с командой оптимизации, отвечающей за clang или что-то в этом роде ».

«Черт, это впечатляет».

«Во всяком случае, это все, что я там делал. После этого я больше не вернулся в Tesla. Ну, не раньше моей стажировки.

"Имеет смысл. Но разве вы не сделали что-то связанное с хакатоном? »

«О да, этот хакатон. Короче говоря, через несколько недель после моего собеседования с Tesla я в конечном итоге участвовал в очень долгом хакатоне с моими друзьями из 42. Мы вроде как выиграли, так что у меня появилась возможность поговорить с одним из организаторов, который знал людей в Tesla, и даже показал ему свой симулятор беспилотного автомобильного движения ».

"Это круто."

"Спасибо. Самое крутое в этом то, что, по-видимому, когда он разговаривал с командой Tesla, они сказали: «О, да, мы знаем этого парня, мы встречались с ним несколько недель назад». Так что я думаю, что в этот момент я знал моя стажировка была обеспечена ».

«Это потрясающе», - сказал я, теперь полностью трепеща перед этим парнем. «Я действительно впечатлен всем, чего вы смогли достичь с тех пор, как приехали в Кремниевую долину. Ты меня очень вдохновляешь. Все эти разговоры вызывают у меня желание поехать в 42 Paris прямо сейчас [было 2 часа ночи] и начать программировать [смеется]! »

«[Смеется] Попался. Было приятно поговорить и с вами. Полагаю, вам не нужна эта история, чтобы сохранять мотивацию, верно? Ты уже делаешь какое-то безумное дерьмо в одиночестве, не так ли? "

"Верно. Но поговорить с вами - это по-прежнему большой стимул. Вы не возражаете, если я напишу в блоге краткое изложение нашего разговора? »

"Без проблем."