собеседование – Stepan Suvorov Blog https://stepansuvorov.com/blog Release 2.0 Mon, 15 Dec 2014 18:56:10 +0000 en-US hourly 1 https://wordpress.org/?v=6.3.1 Собеседование Booking.com https://stepansuvorov.com/blog/2014/09/booking-com-interview/ https://stepansuvorov.com/blog/2014/09/booking-com-interview/#comments Wed, 17 Sep 2014 04:10:44 +0000 http://stepansuvorov.com/blog/?p=1332 Continue reading ]]>

Небольшой рассказ о собеседовании в компании Booking.com

Раз вы уже открыли подробное описание этого поста, думаю вам не нужно рассказывать, что за компания Booking.com.

Сервисом бронирования отелей пользуюсь уже очень давно, и он мне по прежнему нравится.

Никогда не задумывался, что эта компания имеет голландские корни, пока не отправился в командировку в Нидерланды и, гуляя по Амстердаму, не наткнулся на их офис (точнее баннер).

позже оказалось, что это первый офис компании. На здании сохранился баннер, а они уже давно переехали в более просторное помещение.

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

Время шло, и по иронии судьбы у меня появились знакомые из этой компании – я начал узнавать более подробно о “кухне”. Как построен процесс разработки, какие новые технологии используются, в общем все, что прячется за этим красивым брендом.

К сожалению, информация, которая поступала ко мне из разных источников, разбавила четкость компании моей мечты.

диалог о технологиях(сначала я расказал с чем сам работаю):

– Думаю тебе будет у нас скучно.
– Чего так?
– Ну ты работаешь со всеми этими фреймворками, а мы их не используем. 
– Ну какой-то фреймворк вы используете ?
– jQuery
– Ну для организации структуры кода и архитектуры приложения
– jQuery

– И что неужели все только говнокодят?
– А почему нет? Компания платит за это хорошие деньги и предоставляет хорошие улсловия. Никто не парится. Есть конечно идейные ребята, которые пытаются что-то улучшить с точки зрения кода, но без какой-либо мотивации со стороны компании.
– Без шансов что ситуация измениться в будущем?
– Пока этот такой подход приносит компании миллионы – нет. Мы можем только мечтать об этом.

Итого, у меня сложилось такое ИМХО.

Что хорошего есть в компании: активно развивающаяся и растущая компания, плоская структура и открытость к вашим бизнес – предложениям, современный офис в центре Амстердама, прекрасные рабочие места, обеды, соцпакеты, тренинги личностного роста, корпоративы, хостинг конференций и очень хорошие условия для релокейта.

Что плохого: код, код, и для тех кто не слышал первые 2 раза – КОД. А самое страшное – у боссов компании даже и в мыслях нет что-то модернизировать. Серверный код до сих пор написан на перле. Для компании уже очень трудно находить разработчиков для поддержания такого монстра и теперь они занялись набором просто людей с “willing to lear pearl“.  Професионального развития в комапнии можно не ждать.

Перейдем к собеседованию

Для всех собеседуемых проводят 3-4 собеседования:

  • по телефону, с HR по общим вопросам(тест адекватности)
  • по телефону, техническое, с двумя специалистами
  • в офисе, техническое, более детальное со специалистами
  • в офисе, с менджером

часто объединяют собеседования 3-4, а иногда бывает сокращают 2.

Собеседованине первое

~30 минут.
На нем уточняются вопросы по информации вашего CV. Задаются общие вопросы уровня “а знаете ли что такое JavaScript?”. Последний вопрос был о A/B тестировании, которое в букинге безумно любят.

Собеседование второе

= 1 час
Вам звонят на скайп (либо на телефон). В собеседоние принимают участие 2 тех специалиста booking.com. Сначала идут примитивные вопросы по HTML/CSS, далее немного JavaScript. После чего предлагают выполнить простое задание в онлайн редакторе ( в моем случае это была валидация полей формочки ).

Следующим этапом идет обсуждение на тему “ваши предложения по улучшения сервиса, и как бы вы это протестировали, по каким параметрам оценивали бы результат” – к этому вопросу желательно подготовится заранее. Для меня это большого труда не составило, ибо, как уже было упомянуто, сайтом я пользуюсь не один год.

Fail

После второго собеседования ответа ждал довольно долго. Компания не давала о себе знать где-то еще недели 2-3. После чего мне пришло письмо стандартное письмо, в котором вероятно подставили только одно предложение для моего случая:

The interviewers were impressed with your experience with data, testing and suggestions for our website. They however felt your technical skills are not strong enough to be succesful in this position.

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

Собеседование третье оно же четвертое

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

Стандартное интервью:
1) Интервьюеры рассказали о себе, чем занимаются
2) Рассказал о себе
3) Дали несложную задачу – поиск целых в массиве по какому-то предикшену, уже точно не помню
4) Набросал реализацию, попросили оценить алгоритмическую сложность, спросили как можно улучшить
5) Спросили есть ли вопросы
скучное и неинтересное, как и сам booking.com )

Что-то типа выводов

Несмотря минусы, которые были описаны в посте, я по прежнему считаю, что Booking.com – идеальная компания для релокейта в Амстердам. Процесс интервью пропитан бюрократией, как в принципе и во всех крупных корпорациях. Компания, скорее всего, больше оценит ваше понимание принципов A/B тестирования, чем конкретные технические знания.

]]>
https://stepansuvorov.com/blog/2014/09/booking-com-interview/feed/ 6
Front-end Engineer собеседование от Amazon https://stepansuvorov.com/blog/2013/11/front-end-engineer-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d1%82-amazon/ https://stepansuvorov.com/blog/2013/11/front-end-engineer-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d1%82-amazon/#comments Wed, 27 Nov 2013 10:22:55 +0000 http://stepansuvorov.com/blog/?p=1245 Continue reading ]]>

Много чего слышал хорошего о компании, которая у всех на слуху, и вот решил откликнуться на позицию Front-end Engineer. Сказать что описание вакансии очень впечатлило – это не сказать ничего. Я нажал на кнопку “Apply” после чего формочка на сайте побещала, что рассмотрят мою кандидатуру и если что – со мной свяжутся.

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

Договорился обо всем в почтовой переписке с HR менеджером. Хочу отметить на сколько они внимательны к деталям: выслали подробную инструкцию с подсказками; как толковыми так и просто смешными типа “Не проходите собеседование, когда вы за рулем автомобиля”, ну что ж, вероятно были у них уже случаи.

Итак, подошло время собеседования с техническим специалистом. Минус за пунктуальность – не было “notification call”, чтобы убедиться, что на моей стороне все ок и чтобы на всякий случай напомнить, что у меня сейчас собеседование.

Спустя несколько минут с момента, когда должно было начаться собеседование телефон зазвонил. Это был технический специалист. Назовем его тимлид J.

Началось все с общего вопроса “а чем я вообще занимаюсь?”, где нужно было максимально сжато пояснить суть работы за последние 10 лет. Далее пошли технические вопросы. Общие и моментами совсем общие: работал с тем-то – “да/нет”. Сложилось впечатление, что J идет по стандартной анкете и ставит галочки. После было предложено перейти в онлайн инструмент для совместной работы с кодом (collabedit ), чтобы продемонстрировать способности программировать в режиме реального времени.

Задачу поставили следующую: нужно создать табы(tabs), причем использовать можно все что угодно(например jQuery), кроме конечно UI библиотеки с табами. Меня удивила такая примитивная задача, которая особо не могла показать моего знание JavaScript, скорее подчеркнуть не знание какой-нибудь специфики HTML/CSS. В общем, накидал структуру, добавил стили параллельно проверяя в jsfiddle. На JavaScript соответственно было только переключение самих табиков. Тоже всего пару строк кода. Все это время, добавляя строчку за строчкой кода, думал: “когда же начнется реальное задание?”.

…но это и было задание. Из которого 60-70% были по HTML/CSS. Больше заданий не было.

Мне также предоставили возможность задать вопросы(ниже диалог по основным).

Я:  А вам нужен JavaScript программист(настоятельно рекомендую посмотреть описание вакансии) или верстальщик?(вопрос навеян собеседованием)
J: Нам нужен, конечно, программист, но который будет где-то 60% заниматься версткой
Я: …окей. А что там тогда такое в вакансии написано о node.js?
J:  …эээ… ну да, мы используем его для какого-то там модуля…
Я:  хорошо, а для разработки используются какие-то фреймворки?
J:  да, мы используем свой самописный фреймворк
Я: это UI или компонетный фреймворк?
J:  это очень уникальный фреймворк, он объединяет в себя все
Я: но все же, если сравнивать с современными аналогами, на что больше похож?
J:  я же сказал это Уникальный фремворк … все, мне нужно бежать… с вами свяжутся …

Связываются до сих пор… а прошло уже где-то 2 месяца с момента собеседования. Ну что ж, видимо не прошел HTML тест. Хотя даже в этом случае компания должна была дать фидбек. Еще один минус им в карму.

Итого: Все собеседование заняло 1 час(похоже у них строго по регламенту) Из них где-то 10/15 минут вы представляете себя,  потом минут 5 идут общие вопросы, и после – детальная тех часть 30/40 минут. Если осталось время – можно задать вопросы. Уровень технического специалиста мягко говоря “не впечатлил”.

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

UPD: Написал им, спросил почему нет фидбека до сих пор. В ответ получил что-то типа “упс…, извиняемся с столь долгое вермя ответа… после длительного процесса рассмотрение всех кандидатов, мы все же решили продолжить диалог с другим, если вы не возражаете, я помешаю ваше резюме в нашу базу и при появлении вакансии в одной из команд Amazon с вами свяжутся

]]>
https://stepansuvorov.com/blog/2013/11/front-end-engineer-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%be%d1%82-amazon/feed/ 14
Список литературы для web-разработчика https://stepansuvorov.com/blog/2012/12/%d1%81%d0%bf%d0%b8%d1%81%d0%be%d0%ba-%d0%bb%d0%b8%d1%82%d0%b5%d1%80%d0%b0%d1%82%d1%83%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-web-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0/ https://stepansuvorov.com/blog/2012/12/%d1%81%d0%bf%d0%b8%d1%81%d0%be%d0%ba-%d0%bb%d0%b8%d1%82%d0%b5%d1%80%d0%b0%d1%82%d1%83%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-web-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0/#respond Fri, 14 Dec 2012 19:14:49 +0000 http://stepansuvorov.com/blog/?p=800 Continue reading ]]>

По просьбам начинающих и продолжающих разработчиков попытаюсь сформировать список, который бы помог в освоении материала.

Сразу скажу: будет много ссылок на официальную документацию, ибо порой сложно найти что-то лучше.

UI

HTML & CSS

JavaScript

PHP

SQL

ООП

Регулярные выражения

Unix/Linux

Web Servers

Процесс разработки

 

* Список будет постоянно обновляться и пополняться, так что буду рад если выскажете в комментариях что еще можно добавить.

]]>
https://stepansuvorov.com/blog/2012/12/%d1%81%d0%bf%d0%b8%d1%81%d0%be%d0%ba-%d0%bb%d0%b8%d1%82%d0%b5%d1%80%d0%b0%d1%82%d1%83%d1%80%d1%8b-%d0%b4%d0%bb%d1%8f-web-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0/feed/ 0
Логические задачи https://stepansuvorov.com/blog/2012/11/%d0%bb%d0%be%d0%b3%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b8/ https://stepansuvorov.com/blog/2012/11/%d0%bb%d0%be%d0%b3%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b8/#respond Tue, 27 Nov 2012 11:45:20 +0000 http://stepansuvorov.com/blog/?p=745 Continue reading ]]> Как и обещал: выкладываю задачи на логику, которые мы даем в конце собеседования.

Задача1 – Монетки

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

 

Задача2 – Шарики

Более сложный вариант задачи с монетками.

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

 

Задача3 – Фитиль

У Вас есть два шнура (фитиля). Каждый шнур, подожженный с конца, полностью сгорает дотла ровно за один час, но при этом горит с неравномерной скоростью. Как при помощи этих шнуров и зажигалки отмерить время в 15 минут?

 

Задача4 – Скалолаз

Путешественник подошёл к крутому обрыву глубиной 100 метров, возможности и времени обойти его у него не было, а спускаться надо. Ровно посередине обрыва (на глубине 50 метром) росло прочное дерево. У путешественника в рюкзаке оказалась прочная верёвка длинною 75 метров и острый нож, которым он может разрезать верёвку в любом месте сколько угодно раз. Как путешественнику безопасно спуститься вниз с обрыва? (Прыжки с любой высоты запрещены условием)

 

Задача5 – Мудрецы

В одной деспотичной стране король созвал всех придворных мудрецов (количество их не принципиально, поэтом без ограничения общности будем считать, что их 100 человек) и объявил им следующее:
Завтра их всех выведут и завяжут глаза, затем каждому на голову наденут колпак черного или белого цвета и снимут повязки. Каждый сможет видеть цвет колпака всех остальных, но не может видеть свой колпак. Каждому в колонне зададут вопрос: Какого цвета на тебе колпак? Если мудрец ответит правильно, его оставят в живых. Если неправильно, значит он недостоин быть мудрецом и его казнят.

Какую стратегию надо избрать мудрецам, чтобы как можно больше из них остались в живых? На размышления и совещания им дается ровно одна ночь.

 

 

продолжение следует…

если были какие-то неточности в условии – поправьте пожалуйста в комментрии.

]]>
https://stepansuvorov.com/blog/2012/11/%d0%bb%d0%be%d0%b3%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%b8/feed/ 0
Примеры задач на собеседование для старших разработчиков https://stepansuvorov.com/blog/2012/07/%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87-%d0%bd%d0%b0-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%bb%d1%8f-%d1%81%d1%82/ https://stepansuvorov.com/blog/2012/07/%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87-%d0%bd%d0%b0-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%bb%d1%8f-%d1%81%d1%82/#comments Tue, 31 Jul 2012 08:43:05 +0000 http://stepansuvorov.com/blog/?p=370 Continue reading ]]> В случая, когда становится ясно, что человек очень легко справляется с задачами для начинающего разработчика, можно переходить к более серьезным вариантам.

PHP:

Необходимо задать так $a, чтобы следующее выражение

($a[0] === 1 && $a[0] === 2)

вернуло TRUE.

Подсказка: вопрос на понимание использования SPL.

JavaScript:

Необходимо так задать sum, чтобы выражение:

sum(3)(7)

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

+sum(3)(7)...(5)

т.е. параметров может быть неограниченное количество.

Подсказка: В данной задаче поднимаются темы: создания объекта, замыкание, псевдостатические переменные, магические методы.

SQL:

Составить запрос по следующему условию:  в библиотеке на пронумерованных полках стоят книги разного цвета. Составьте запрос, который найдёт все полки в библиотеке, на которых стоят только красные книги.

Успешной подготовки!

]]>
https://stepansuvorov.com/blog/2012/07/%d0%bf%d1%80%d0%b8%d0%bc%d0%b5%d1%80%d1%8b-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87-%d0%bd%d0%b0-%d1%81%d0%be%d0%b1%d0%b5%d1%81%d0%b5%d0%b4%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b4%d0%bb%d1%8f-%d1%81%d1%82/feed/ 5
Отбор PHP кандидатов в нашей компании. https://stepansuvorov.com/blog/2012/07/%d0%be%d1%82%d0%b1%d0%be%d1%80-php-%d0%ba%d0%b0%d0%bd%d0%b4%d0%b8%d0%b4%d0%b0%d1%82%d0%be%d0%b2-%d0%b2-%d0%bd%d0%b0%d1%88%d0%b5%d0%b9-%d0%ba%d0%be%d0%bc%d0%bf%d0%b0%d0%bd%d0%b8%d0%b8/ https://stepansuvorov.com/blog/2012/07/%d0%be%d1%82%d0%b1%d0%be%d1%80-php-%d0%ba%d0%b0%d0%bd%d0%b4%d0%b8%d0%b4%d0%b0%d1%82%d0%be%d0%b2-%d0%b2-%d0%bd%d0%b0%d1%88%d0%b5%d0%b9-%d0%ba%d0%be%d0%bc%d0%bf%d0%b0%d0%bd%d0%b8%d0%b8/#comments Tue, 24 Jul 2012 12:34:04 +0000 http://stepansuvorov.com/blog/?p=326 Continue reading ]]> Думаю статья будет полезна тем, кто хочет подготовиться к собеседованию, но не знает за какую книжку схватиться.

Любой отбор начинается с небольшого письменного теста, который позволяет определить ваш приблизительный уровень. Тут не будет трудных вопросов: немного на понимание синтаксиса, типов и функций PHP; еще немного на тему javascript; и еще кусочек на составление запросов к базе данных.

Если вы успешно справились с тестом(это набрали хотя бы треть правильных ответов) – сразу же начинается второй этап – собеседование. Как правило интервью проводят 2 человека. Диалог начинается с вольной темы “Почему именно PHP?” или “Какие были интересные проекты?”. Далее идут вопросы по теории. Если вы претендуете на должность выше начинающего разработчика, вы должны разбираться в следующих темах:

1. Проектирование и ООП

  • 3 базовых понятия ООП
  • модификаторы доступа
  • статические члены класса
  • магические методы, конструктор
  • Абстрактный класс и Интерфейс
  • шаблоны проектирования, Синглтон

2. Клиент-серверное взаимодействие

  • идея DNS
  • протокол HTTP, заголовки, GET/POST
  • логика работы session и cookies

3. Работа с базой данных

  • типы данных
  • отличия индексов
  • нормализация
  • виды движков (engine) таблиц
  • joins
  • views, triggers, procedures, functions, transactions
  • понимание агрегирующих операций

4. Настройка рабочей среды и администрирование

  • настройка вебсервера и виртуальных хостов
  • самые основные команды для работы в среде Linux

5. Базовые принципы HTML/CSS

  • типы элементов
  • позиционирование
  • селекторы и их приоритетность

6. JavaScript

  • элементы и их события
  • работа с объектами
  • jQuery

7. Регулярные выражения

  • пониманием базовых принципов

 

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

Успешной вам подготовки!

Буду рад услышать критику или предложения в комментариях.

P.S.: так же могу порекомендовать вам менее структурированную, но не менее информативную статью на блоге Антона Шевчука.

]]>
https://stepansuvorov.com/blog/2012/07/%d0%be%d1%82%d0%b1%d0%be%d1%80-php-%d0%ba%d0%b0%d0%bd%d0%b4%d0%b8%d0%b4%d0%b0%d1%82%d0%be%d0%b2-%d0%b2-%d0%bd%d0%b0%d1%88%d0%b5%d0%b9-%d0%ba%d0%be%d0%bc%d0%bf%d0%b0%d0%bd%d0%b8%d0%b8/feed/ 7