Об ИТ из Канады

Блог Михаила Флёнова - программист, блогер, автор нескольких скандальных книг какими-то глазами...

Я понял, как индусы готовятся к интервью

2016-11-23 12:24:12 / Болтовня

У нас на работе в нашу команду ищут программистов, так что если ты живешь в Торонто, то присылай свое резюме. Компания хорошая, платят неплохо, но есть огромный недостаток, придется использовать на работе TFS. Хотя не все считают это недостатком. 

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

Самым слабым оказался специалист из Индии. Судя по его резюме, он работал в банке и у него 7 лет опыта Web программирования, но когда я ему задал вопрос, как защититься от SQL Injection и XSS, то защиты от первого он не смог дать внятного ответа, а про XSS он не слышал.

Из 8 вопросов он не ответил на 6, но я решил все же дать шанс ему проявить себя и рассказать какой-то проект, которым бы он гордился. Он начал рассказывать, что у него была большая таблица с данными и он ее круто оптимизировал, избавившись от какого-то loop. Если честно, в этот момент мне было скучно его слушать и вместо этого я делал пометки рекрутеру, почему нужно отказать. Но вот оптимизация доступа к данным и какой-то loop почему-то привлек мое внимание, и я вернулся в реально и переспросил: 

- я так понимаю, что ты оптимизировал поиск данных в базе данных?

- да

- можешь сказать коротко, как ты это сделал

- я не помню точно, как это называется, но я нашел какую-то таблицу (дословно он сказал I found index table), с помощью которой избавился от циклической операции. 

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

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


Понравилась статья?

Комментарии

Александр

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

2016-11-23 22:51:11

Overdrive

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

2016-11-24 14:11:18

Михаил Фленов

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

2016-11-24 15:10:27

Евгений

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

2016-11-25 06:49:49

Radekk

А как относитесь к моменту когда просят на бумажке код написать на собеседовании??? причем не какой нибудь приблизительный псевдо, а конкретно рабочий. Ну есть же фиддлы без студии можно, почему именно на бумажке? вот я бумажку вижу и теряюсь сразу, для меня как то неестественно это делать, я последний раз так делал в школе когда был очень ограниченный доступ к Электроника БК 0010

2016-11-25 12:23:49

Ololo

Зачем делать тестовое в офисе? Обычно дают задание и делай когда и как хочешь, некоторые лимитируют время, а некоторые нет. Если задание хорошо сделано зовут на собеседование и на наём спрашивают по заданию и просто. Сразу будет видно сам делал или нет.

2016-11-25 15:27:14

crackcoder

Михаил по алгоритмам какие вопросы задавал?

2016-11-26 18:07:50

Михаил Фленов

Как отсортировать массив. Худший ответ - вызвать функцию Sort, лучшие ответ - рассказать как работает любой алгоритм сортировки. Не нужно его писать, просто описать идею. Идеальный ответ - отсортировать в один проход, потому что данные специфичные. У нас компания, которая разрабатывает софт для управления персоналом, так что у меня массив сотрудников некой компании и нужно отсортировать всех по возрасту. Так что сортировка в один проход делается очень легко.

2016-11-26 19:22:35

crackcoder

Михаил а можно пример кода, сортировки за один проход?

2016-11-27 06:10:30

Михаил Фленов

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

2016-11-27 08:39:58

crackcoder

Что такое "почти массив"?

2016-11-27 10:52:01

Евгений

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

2016-11-27 13:15:37

Михаил Фленов

Ну я же не заставляю написать мне код. Достаточно показать понимание

2016-11-27 14:58:29

admin_zlobber

вы тут ни чего не путаете,за линию еще не научились сортировать,O(n×2log2n) вот вроде бы как оптимальный вариант и то не везде подходит.

2016-11-28 05:22:07

Евгений

Я бы взял на работу человека, который бы умело использовал бы такой подход var _list_drogd = _person.OrderBy(p => p.dr).ToList(); даже если бы он "плавал" бы в различиях между абстрактным классом и интерфейсом или не помнил бы ни одного алгоритма сортировки или не знал бы ни одного численного метода решения уравнений. Получается, что для успешного собеседования надо отрывать учебник по программированию, что бы вспомнить теорию, определения, различия, примеры, а опыт работы, который также в себя включает и знание предметной области, иногда очень важный, в расчет не берется. А между тем, сейчас надобности в подобных знаниях все меньше. Если что-то и надо "вспомнить", то быстрее найти ответ или готовый метод или идею на github.com, чем в учебнике, тем более все не упомнишь. А Вы, Михаил, помните хотя бы один численный метод оптимизации нелинейных функций? А вдруг когда-нибудь и у Вас на интервью спросят.

2016-11-28 09:17:22

Михаил Фленов

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

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

2016-11-28 10:27:04

petrovichtim

Я так и стал программистом. Ходил и собирал вопросы.

2016-11-28 11:24:31

Михаил Фленов

Это хорошо, если ты стал программистом. Хуже, если ты научился проходить интервью, а программистом так и не стал.

2016-11-28 11:26:59

Евгений

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

2016-11-28 12:57:12

crackcoder

admin_zlobber оптимальный вариант это O(logn), а алгоритма со сложность O(n) не существует, ну разве что применить метод пузырька к уже отсортированному массиву. Михаил сделай какой нибудь мини форум, что бы дискуссии можно было устраивать и твое мнение почитать.

2016-12-02 06:40:53

Михаил Фленов

Форум у меня как-то был на отдельном домене, но для этого сайта и на нем общались все только неделю, а потом все загнулось. Дискутируйте здесь.

По поводу сортировки мы так же общались и здесь: http://www.flenov.info/blog.php?catid=3032

2016-12-02 08:38:17

crackcoder

Михаил, тема вниз улетает, с форумом было бы лучше, если не трудно на этом домене сделай.

2016-12-02 13:28:11

Оставить комментарий


Умеешь пользоваться BB кодами? Прекрасно, здесь можно использовать [quote] для цитирования, а так же [b] и [i]. Остальные коды пока использовать запрещено. Я думаю по поводу их использования. В комментариях нельзя выяснять крутость каких-либо продуктов, нужно уважать собеседников и не грубить и нельзя ничего додумывать (читайте мои посты внимательно). Нарушение этих простых правил ведет к удалению комментариев без предупреждения.

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Внимание!

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

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне