Итак, прежде чем я начну, я хочу прояснить, что я никоим образом не претендую на звание разработчика / программиста (это было бы оскорблением для настоящих профессионалов в области программирования). Я правда и дня не протяну.

За эти годы я нанял большое количество разработчиков, и у меня всегда была интрига и желание узнать, каково было бы провести день в шкуре инженера (эта часть является ключевым уроком моего однодневного опыта). Курс Python).

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

Когда я говорю «знания», я имею в виду, что могу описать, что делает распределенная система в реальном времени, рассказать вам, что такое API, SDK или библиотека, и дать вам возможность попробовать свои силы в «Buzzword Bingo».

Мой день программирования:

Приходят 20 талантливых профессионалов с MacBook в руках, открытыми терминалами программирования и загруженной последней версией Python 🐍. На данный момент мы все чувствуем себя подготовленными.

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

Сказать, что это было сложно, было бы большим преуменьшением. Ни одна пара даже близко не подошла к завершению.

Почему я это сделал?

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

Мои ключевые выводы:

# 1 Во-первых, я на самом деле не научился программировать. Конечно, я изучил некоторые основы, большинство из которых я сейчас забыл, но кодирование - это то, чем вы должны заниматься постоянно.

№2. Изучение кода помогло мне понять, что собеседование с инженерами должно быть улицей с двусторонним движением. Работа над решением инженерных проблем в составе группы или команды - огромная часть того, как мы работаем в Pusher. Поэтому важно изучить способы работы в этом сценарии, а также иметь реальную проблему, которую нужно решить в команде для интервьюируемого. Это помогает нам находить действительно отличных сотрудников, соответствующих культуре и ценностям нашей компании.

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

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

# 4 Курс помог мне понять постоянный компромисс между коммерческими командами, которые хотят и часто кричат ​​о выпуске новых продуктов, и командами инженеров, которые знают, насколько важно, чтобы что-то было идеально работоспособным, когда оно оказывается в руках. клиентов.

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

Некоторые выводы о талантах:

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

№2 Разработка программного обеспечения и создание отличных продуктов - это действительно сложно.

# 3 Я призываю коммерческие команды технологических компаний учиться программировать. По крайней мере, это вызовет понимание и сочувствие к тому, почему у вас нет этого продукта прямо сейчас. Фактически, я призываю все отделы компании больше узнавать о повседневных ролях друг друга. Это сделает среду более совместной.

№4. Наем в команду инженеров супер-умного придурка, который не вписывается в вашу рабочую культуру или не поддерживает ваши ценности, - не лучшая идея. Сказать «нет» талантливым людям - это нормально.

# 5 И последнее, но не менее важное: я не разработчик👨‍💻 (пока).