«Эй, ты теперь лучший друг Илона, а?» Я спросил своего друга, который стажировался в 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 часа ночи] и начать программировать [смеется]! »
«[Смеется] Попался. Было приятно поговорить и с вами. Полагаю, вам не нужна эта история, чтобы сохранять мотивацию, верно? Ты уже делаешь какое-то безумное дерьмо в одиночестве, не так ли? "
"Верно. Но поговорить с вами - это по-прежнему большой стимул. Вы не возражаете, если я напишу в блоге краткое изложение нашего разговора? »
"Без проблем."