Будни разработчика
14.6K subscribers
1.36K photos
398 videos
8 files
2.28K links
Download Telegram
#ссылка дня

Вчера на работе был семинар по проведению собеседований разработчиков. Со стороны собеседующих, конечно же :)

Попробую подготовить пост с выводами в ближайшее время, а пока что давайте почитаем об опыте собеседований в FAANG от того, кому было не лень.

Какие вопросы, каков порядок, чего ожидают? Все в документе.

TL;DR
Мобильный разработчик
13 лет iOS/Android/Unity
16 месяцев подготовки
11 он-сайтов - 11 оферов
принял офер от Google на L6-позицию.

https://docs.google.com/document/d/1c3xo5us0G8uMQVTWfm7xKpciRVvpj9p0YxmbW4pxmUI/edit#

#faang #interview
👍8
#такое дня

Не буду из этого опрос делать. В Твиттере опять разгорается срач на тему, нормально ли вообще такое на собеседовании спрашивать, или нет: https://twitter.com/TatarinFrontend/status/1545341264928931841

Цитирую: «Прикиньте, выдать вот таких задач на собесе. А когда кандидат не смог точно овтетить, сказать «Ты не знаешь основ JS, нам не о чем с тобой дальше разговаривать».

Ну что, посрёмся и мы, на ночь глядя? Или все же лень?

Я прям такое, конечно, задавать не буду. Но близкое — вполне.

О чем говорить, когда люди async polling предлагают решить на setInterval…

#js #job #interview
👍6🔥2
#заметка дня

Что-то по Твиттеру опять пронеслась война тех, кто считает, что надо максимально ограничивать кандидату доступ информации во время собеседования, не пускать его в поиск Google, запрещать спрашивать у ChatGPT, не давать документацию и так далее. И тех, кто, в общем-то, считает наоборот.

Я пока не видел хороших и правильных примеров использования ChatGPT, если честно. Единственный известный мне случай подобного поведения кандидата вызывает нервный смех, потому что ему стоило честно сказать: "Не знаю". Он буквально понятия не имел даже как задать вопрос правильно, но с каменным лицом доказывал, что так и надо. Наверное, получился бы хороший продажник.

С документацией всё просто: естественно, надо разрешать доступ. Да даже в университетах разрешают пользоваться конспектами и справочниками. Ну, в нормальных...

Google... ситуация похожа на ChatGPT. Нужно внимательно смотреть, что и как человек гуглит. Как конкретно он формирует запрос и какие ссылки открывает.

Я лично нанимал фронта, который не стеснялся гуглить во время собеседования. Прям стримил экран и искал. Где-то для выжимки из доки, где-то чтобы посмотреть альтернативы алгоритму.

А потом чтобы показать скриншоты своего проекта, который был закрыт пейволлом!

А вот того, кто во время собеседования гуглил меня, мы не взяли...

А как у вас дела обстоят и опыт?

#work #interview #собеседование
🔥91👍1
#ссылка дня

«Что происходит когда ты набираешь google.com в адресной строке браузера и жмёшь ввод?»

Да, котаны, вы угадали: это довольно популярный вопрос на собеседованиях.

Если у тебя его не спрашивали, значит, предполагается, что ты знаешь ответ.

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

Как же хорошо, что у нас уже есть максимально полное описание происходящего в одном репозитории.

Максимально полный без открытия книги по архитектуре ПК, я имею в виду.

Вот: https://github.com/alex/what-happens-when

Официального перевода на русский нет, но есть PR: https://github.com/alex/what-happens-when/pull/1462/files

Как вы думаете, котаны, имеет ли смысл в 2023 году вообще такое спрашивать? Должен ли условный фронт это понимать?

#web #interview
👍21👎2
#заметка дня

Что-то по Твиттеру опять пронеслась война тех, кто считает, что надо максимально ограничивать кандидату доступ информации во время собеседования, не пускать его в поиск Google, запрещать спрашивать у ChatGPT, не давать документацию и так далее. И тех, кто, в общем-то, считает наоборот.

Я пока не видел хороших и правильных примеров использования ChatGPT на собеседованиях, если честно. Единственный известный мне случай подобного поведения кандидата вызывает нервный смех, потому что ему стоило честно сказать: "Не знаю". Он буквально понятия не имел даже как задать вопрос правильно, но с каменным лицом доказывал, что так и надо. Наверное, получился бы хороший продажник.

С документацией всё просто: естественно, надо разрешать доступ. Да даже в университетах разрешают пользоваться конспектами и справочниками. Ну, в нормальных...

Google... ситуация похожа на ChatGPT. Нужно внимательно смотреть, что и как человек гуглит. Как конкретно он формирует запрос и какие ссылки открывает.

Я лично нанимал фронта, который не стеснялся гуглить во время собеседования. Прям стримил экран и искал. Где-то для выжимки из доки, где-то чтобы посмотреть альтернативы алгоритму.

А потом чтобы показать скриншоты своего проекта, который был закрыт пейволлом!

А вот того, кто во время собеседования гуглил меня, мы не взяли...

А как у вас дела обстоят и опыт?

#work #interview #собеседование #бородач
👍162
14. Интервьюер часто дает подсказки, не игнорируй их! Помни, что интервьюер на твоей стороне, она не хочет запутать тебя, она хочет помочь! Если ты понимаешь подсказки, это плюсик тебе в collaboration и technical communication.

15. Начинай писать код только после того, как интервьер подтвердила, что все поняла в твоем алгоритме и сама предложит написать код. Если интервьюер не предлагает, явно спроcи "should we start writing code?"

16. После того, как код написан, прогони его строчка за строчкой на каких-нибудь тестовых данных. Помнишь примеры, которые мы писали на шаге 8? Вот их и используй. Без опыта на английском языке это сложно сделать, поэтому проговаривай все это вслух пока готовишься

17. Теперь обязательно расскажи время работы алгоритма!! Это очень важно, ради этого мы и писали какое-то сложное решение. Метод за методом, в комментариях рядом напиши время работы в худшем и среднем случае.

18. Для этого нужно знать время работы операций структур данных в выбранном тобой языке. Заранее погугли время работы map, vector, array в твоем языке программирования. Например std::map и std::unordered_map отличаются во времени работы, так что это очень важно!

19. В конце в идеале должно остаться несколько минут для твоих вопросов. Помнишь мы записывали информацию про интервьюера в пункте 4? Пора подсмотреть в свои тетрадку и спросить, а чем именно занимается твоя команда? Чем тебе нравится компания? Что не нравится в компании?

20. Обычно в этот момент интервьюер говорит, что время закончилось и ей пора бежать. Поблагодарить и попрощаться. Вы великолепны!

21. Бонус темы для сеньоров: каков data access pattern? что мы оптимизируем, запись или чтение? является ли твое решение thread-safe? если нет, как можно его сделать thread-safe? если время осталось, можно подумать, как распараллелить на несколько машин

Длиннопост как он есть, да 🙂

#interview
16👍3
#вопрос дня

Что произойдёт, когда я нажму на кнопку?

Сначала ответ, а потом можно пройти по ссылке. Проверьте себя :)

Песочница: https://codesandbox.io/p/sandbox/twilight-glitter-vtqsf2

Ну и не стесняйтесь писать в комментарии, что вы думаете по поводу. Пусть у нас будет вот такая суббота.

Этот вопрос я на собеседовании вчера задавал. Эмоции были смешанные.

#react #interview
6🤩3
#срочно дня

У меня через 20 минут собеседование человека на сеньора-фронтенда.

Раз вам так не понравился вопрос с Array.sort, накидайте ваших любимых.

Только срочно, я знаю, вы у меня лучшие по вопросам, вы можете 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👎52🤡2
This media is not supported in your browser
VIEW IN TELEGRAM
#инструмент дня

F*ck Leetcode.

Как-то так приветствует нас проект https://www.interviewcoder.co/

Что же он делает?

А разработчики проекта догадались сделать невидимый для шаринга экрана ИИ-оверлей, который находит на экране и решает алгоритмические задачи.

Невидим он для:

- Zoom < v6.1.6
- Всех браузеров
- Discord
- Встроенного в maxOS скриншотера (не видео)

Видим для:
- Zoom > v6.1.6
- Записи видео в том же macOS

Может не только решать код, но и дебажить его, давать построчные подсказки и исправлять ошибки.

Ну что, литкод-собесам конец? :)

Да, проект — открытый: https://github.com/ibttf/interview-coder

И в доказательство — запись реального собеседования: https://youtu.be/rcH813f5vCE

#leetcode #interview #ai #cheat
1👍114🤩4
#статья дня

Для субботней статьи дня я решил выбрать чтение полегче:

Что происходит, когда вы посещаете сайт?

А и правда, что? Как давно вы об этом задумывались? А вот на собеседованиях до сих пор спрашивают.

Возможно, кто-то опять заверещит, что знать это — подобно знанию ассемблера. А я отвечу: «А почему бы и нет?».

1. Парсинг URL
2. DNS-резолвинг
3. Установка TCP-соединения
4. TLS-рукопожатие (HTTPS)
5. Отправка HTTP-запроса
6. Обработка запроса на сервере
7. Получение HTTP-ответа (TTFB)
8. Парсинг HTML и построение DOM
9. Загрузка внешних ресурсов
10. Построение CSSOM и render tree
11. Выполнение JavaScript
12. Рендеринг и композитинг (painting)
13. Активация интерактивности
14. Кэширование и CDN
15. Фоновые оптимизации

Ладно, я пошутил. Вот вам крестики-нолики на чистом CSS и без HTML кроме body: https://lyra.horse/fun/tic-tac-nohtml/

#web #interview
👍11🤩52
#тред дня

Забытое воровство из X!

Лонгрид от Димы Рожкова: «Собес — не место для советов». Сразу ссылку, ну и копия.

Спасти компанию за 5 минут

Ваши вопросы к представителям компании на собеседовании - очень важный этап. Он же может стать решающим. Я как то на собеседовании в Мету на менеджера спросил могу ли я уволить всю команду в один день и нанять новую. В те далекие долэйофные годы следующего этапа не последовало. Это был один из вопросов Бугаенко "на менедждера", в Лондон я переезжать не планировал поэтому ради прикола решил спросить. Один раз живем.

Так вот. По следам треда @beshkenadze решил написать, что стоит спрашивать, а какие вопросы стоит задавать когда уже пройдете испытательный срок.

Во-первых: совершенно точно нужно задавать вопросы! Особенно если вы идете на сеньорную позицию. Если у вас нет вопросов - это очень плохой сигнал:

• Вы читали про компанию и ее бизнес?
• Вам совсем не важно как с кем и с чем вы будете работать?
• Ничего не хотите добавить к своим ответам?

Что точно не стоит спрашивать

Давать непрошеные советы и критиковать выбор людей. Даже если мягко. Во-первых у тебя околонулевой контекст. Даже если ты изначально спросил какая у них платформа (хороший вопрос), а потом начинаешь критивовать и сокрушаться, что они все выбрали не правильно. Тебе скорее всего ответили прямым ответом: У нас технология Х. У тебя нет необходимых данных, метрик и причин почему у них так. И за одну минуту ответа ты не сможешь открыть тупым глаза на их ошибки и заработать авторитет. Но ты можешь показать, что ты с порога несогласен. Начинаешь давать советы неразобравшись. Зачем тебя брать если ты уже недоволен с чем тебе придется работать?

На собеседовании ты продаёшь не только экспертизу, но и предсказуемость. Компания (особенно если это уже работающий бизнес, а не совсем зелёный стартап) хочет понять:

• Ты сможешь встроиться в существующую систему?
• Ты будешь решать их проблемы или создавать новые?
• Ты уважаешь чужой контекст или сразу начинаешь мерить всё своей меркой?

Критиковать само собеседовение тоже не стоит. Особенно в лицо людям, которые к дизайну собеседования не имеют отношения. Как например спрашивать, пишут ли программисты алгоритмы каждый день на работе? Кому что кроме своей раздражительности ты этим вопросом хочешь показать? Особенно если ты НЕ МОЖЕШЬ решить задачу.

Что стоит спрашивать
На собесе ты исследователь и дипломат. Молчать совершенно точно нельзя, а задавать качественные вопросы, которые показывают сеньорность.

Если ты молчишь и только киваешь, ты выглядишь как исполнитель, а не как человек, который будет влиять на архитектуру. Хороший баланс — задавать вопросы, которые раскрывают ситуацию, а не оценивают её.

1. Про нагрузку и масштаб «Какая сейчас нагрузка? Какие планы по росту на год-два?»
2. Про текущие боли «Какие самые болезненные проблемы прямо сейчас в инфре/деплое/костах?»
3. Про структуру команды «Как устроена команда? Кто принимает архитектурные решения? Как выглядит процесс изменений?»
4. Про бизнес-контекст «Какие требования бизнеса сейчас важнее всего: скорость фич, косты, надёжность?»
5. Про квалификацию и процессы «Какой уровень экспертизы в команде по платформе/куберу/терраформу?»
6. Про историю развития «Это первая версия системы? Как бы выглядела идеальная система для этой задачи? Какие риски в текущей архитектуре вы видите?»
7. Можно урвать эти 5 минут и наоборот уточнить свой ответ, если вы осознали, что что-то недосказали. Этой возможностью вообще довольно редко пользуются.

Самый сильный сигнал сеньорности — это когда ты: задаёшь точные вопросы; демонстрируешь, что понимаешь компромиссы; оставляешь пространство для того, что у них могут быть на все веские причины о которых тебе не рассказали.

На собеседовании твоя главная задача — собрать максимум информации и показать, как ты думаешь, а не «спасти» компанию от страшной ошибки за 5 минут.

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

#cv #interview #собеседование #x
1👍143🔥3👎1🫡1