тестовое задание.
От: xednay89 Россия  
Дата: 04.10.12 15:09
Оценка:
Сегодня посетил собеседование на должность c++ developer.
Вроде все нормально: компания понравилась, готов там поработать.

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

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

Разработать C++ приложение под операционную систему Windows, которое следит за кликами мышкой и передает информацию на сервер о том, куда был сделан клик (ярлык, приложение, кнопка и т. д.).

Приложение должно иметь диалоговое окно содержащее две кнопки: «Старт» и «Стоп»:

При нажатии на кнопку «Старт» приложение начинает следить за кликами мышки в системе. При каждом клике приложение должно определять, где был произведен клик с точностью до элемента, если это возможно (например — Рабочий стол — Ярлык «Мой компьютер»). Информация о каждом клике должна отправляться на сервер. Для этого необходимо выполнить HTTP POST запрос на url. На этот запрос должны отправляться данные в формате JSON (в переменной json) следующего вида:

{
«operation»:«save»,
«click»:«место, где был совершен клик»,
«time»:«время, когда был совершен клик»
}

В ответ от сервер придет JSON пакет следующего вида:

{
«status»:«1»
«message»:«OK»
}
если запрос был успешно обработан

{
«status»:0,
«message»:«Wrong request»
}
если запрос был ошибочным.

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

При получении ответа в лог необходимо занести успешен ли был запрос или нет

Пример:


11.11.2011 13:52 Отправка клика: {JSON структура}
11.11.2011 13:52 Отправка клика: Успешно сохранен

При нажатии на кнопку стоп процесс наблюдения за кликами должен быть остановлен.

Для разработки пользовательского интерфейса разрешается применять: WinAPI, WTL и подобные технологии. Запрещается использование сторонних библиотек типа Qt.



Собственно вопрос: для себя я оценил это задание часов на 8 — 10. Но меня сильно смутило вот это —

приложение должно определять, где был произведен клик с точностью до элемента, если это возможно (например — Рабочий стол — Ярлык «Мой компьютер»)


обоснованно ли мое недоумение?
Re: тестовое задание.
От: Vzhyk  
Дата: 04.10.12 15:28
Оценка:
04.10.2012 18:09, xednay89 пишет:

> обоснованно ли мое недоумение?

Обосновано вообще или обосновано для тебя?
Posted via RSDN NNTP Server 2.1 beta
Re: тестовое задание.
От: nightcode  
Дата: 04.10.12 16:34
Оценка:
Здравствуйте, xednay89, Вы писали:

X>Сегодня посетил собеседование на должность c++ developer.

X>Вроде все нормально: компания понравилась, готов там поработать.

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


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

X>[q]

У тебя какая цель ? Устроиться в компанию, которая понравилась или научить уму-разуму собеседующих ? Если второе то ты своего, возможно, добился, если первое — то нет.
Re: тестовое задание.
От: Alex Dav Россия  
Дата: 04.10.12 16:36
Оценка: +1
Здравствуйте, xednay89, Вы писали:

X>обоснованно ли мое недоумение?

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

Теперь про задание — мне нравится:
1. Требуют минимум GUI — это приятно, т.к. тратить на него время...
2. что они увидят — работу с win service (хотя вроде не обязательно), работу с файлами, работу с server-client, много поточную работу и все это действительно в простом задании (я имею ввиду, что реально будет только код — никакой графики, защиты и т.п.)

По поводу куда кликнул, ну а что тут таково вытащить побольше информации из активного окна? Думаю даже не важно, что вы вытащите — возьмите просто свойство Caption и думаю им будет достаточно, т.к. умение работать с WinApi вы покажите.

Я бы оценил часа в 4, при условии, что почти все мне надо вспоминать и google — лучший друг .
Re[2]: тестовое задание.
От: namespace  
Дата: 04.10.12 17:35
Оценка: +2
AD>По поводу куда кликнул, ну а что тут таково вытащить побольше информации из активного окна?
Вопрос в точности определения элемента.
Вернуть заголовок окна или кнопки — мелочь. Или название пункта меню.
Но все остальное — это просто гиблое дело. Например, тулбар, вкладки и пр. включая кастомные контролы.
Эти 4 часа уйдут только на ресеч с целью оценки времени.
Но можно взять исходники похожих опен-сурсных проектов и подглядеть, как там сделано. Но даже с его помощью не уложится в 4 часа.

Другой вопрос, что, может быть, им и не нужна такая точность, это стоило обсудить.
Re[3]: тестовое задание.
От: Alex Dav Россия  
Дата: 04.10.12 17:56
Оценка:
Здравствуйте, namespace, Вы писали:


N>Эти 4 часа уйдут только на ресеч с целью оценки времени.

N>Другой вопрос, что, может быть, им и не нужна такая точность, это стоило обсудить.
Обычно раздающие тестовое задание оставляют контакты, если надо спросить что то, да и сомневаюсь что им нужная такая точность, иначе сделали бы ставку только на нее. Но если вы правы, то да это займет намного больше времени, т.к. возможно придется бегать по дереву окон-контролов и т.п.
Re: тестовое задание.
От: dimaka Россия http://dmitry-pavlov.com
Дата: 04.10.12 18:46
Оценка: 1 (1) -1
хорошее "взрослое" задание. покажет все что надо. последний нюанс — скорее посмотреть как вы поступите, чем конкретное требование. как требование — сформулировано не совсем четко. я такие формулировки в задание обычно использовал, чтобы посмотреть, будет ли кандидат уточнять требования или загасится наглухо и будет интерпретировать и отсебятину сочинять. уточнение требований и коммуникация — такая же часть нашей работы как написание, тестирование и документирование кода, удовлетворяющего требованиям
Remote ASP.NET / C# Developer
Re: тестовое задание.
От: minorlogic Украина  
Дата: 04.10.12 20:14
Оценка: +4
Задание не выглядит сложным, скорее довольно простое. Но оно слишком объемно , особенно если не работал последние годы с WIN API и не знаешь аббревиатуры типа JSON
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: тестовое задание.
От: xednay89 Россия  
Дата: 04.10.12 20:28
Оценка:
Здравствуйте, Alex Dav, Вы писали:

AD>Здравствуйте, xednay89, Вы писали:



AD>2. что они увидят — работу с win service (хотя вроде не обязательно), работу с файлами, работу с server-client, много поточную работу и все это действительно в простом задании (я имею ввиду, что реально будет только код — никакой графики, защиты и т.п.)


просто я бы с удовольствием показывал эти навыки и умения на собеседовании. Иначе зачем оно?
Re: тестовое задание.
От: MescalitoPeyot Украина  
Дата: 04.10.12 21:06
Оценка: 2 (2) :))
Здравствуйте, xednay89, Вы писали:

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


Я выполнял тестовое задание два раза в жизни. У меня тогда было мало опыта, мало лет возраста и не было вышки, зато в резюме была частая смена мест работы, а на дворе был разгар кризиса. В ответ на второе из заданий от "специалистов" пришел сначала вопрос "а что такой #include <boost/shared_ptr.hpp> ?", а потом резолюция "в решении есть утечки памяти", которых — я уверен — там не было. Ощущение было как в известном анекдоте: "Слушай Билли! А тебе не кажется что мы с тобой только что бесплатно говна наелись?" С тех пор зарекся их выполнять и решил при поиске работы отодвигать всех работодателей с тестовыми заданиями в самый конец списка и делать их только когда со всех остальных будет получен офер или отказ.
Re: тестовое задание.
От: tomasmor  
Дата: 05.10.12 06:02
Оценка:
Опять же, расскажу как это выглядит изнутри.
Если в компании ведется командная разработка, то довольно важна культура кода в принципе.
И есть примеры того, что человек неплохо показывает себя на собеседовании -- решает тесты, отвечает на вопросы по теории, но по каким-то причинам творит что-то дикое в коде.
И в связи с этим, мы просто обязаны посмотреть человека "на практике". Обычно бывает достаточно примеров кода. Но бывают случаи, когда в примерах кода люди присылают хелло, вролд или вообще отказываются, говоря об NDA. И вот в таких случаях ничего, кроме тестового задания, мы предложить не можем. Если у Вас есть альтернативные варианты того, как решить эту проблему -- расскажите, мы будем крайне благодарны.
Re[2]: тестовое задание.
От: Vlad_SP  
Дата: 05.10.12 06:17
Оценка: 2 (2)
Здравствуйте, dimaka, Вы писали:

D>уточнение требований и коммуникация — такая же часть нашей работы как написание, тестирование и документирование кода, удовлетворяющего требованиям


Я, в общем, считаю, что задание не шибко сложное, но — объемное. А ведь упомянутые уточнение требований и коммуникации — это затраты времени кандидата, которые тоже должны быть включены в общие затраты времени на выполнение задания. И вот это-то "уточнение" запросто может скушать очень и очень немало времени.

Короче, вопрос опять сводится к тому, сколько времени кандидат готов потратить на данную фирму, включая сюда все "уточнения требований и коммуникации"....
Re[2]: тестовое задание.
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 05.10.12 08:28
Оценка:
Здравствуйте, tomasmor, Вы писали:

T>И в связи с этим, мы просто обязаны посмотреть человека "на практике". Обычно бывает достаточно примеров кода. Но бывают случаи, когда в примерах кода люди присылают хелло, вролд или вообще отказываются, говоря об NDA.

NDA это бич программерского мира. Кстати, люди которые легко нарушают NDA, даже по пустякам, посылая куски кода из комерческих проектов, не очень надёжны. ИМХО.
T>И вот в таких случаях ничего, кроме тестового задания, мы предложить не можем. Если у Вас есть альтернативные варианты того, как решить эту проблему -- расскажите, мы будем крайне благодарны.
Просто пересмотрите своё тестовое. У вас оно мутноватое, о чём, кстати, на этому форуме был небольшой флейм.
Sic luceat lux!
Re[2]: тестовое задание.
От: Vzhyk  
Дата: 05.10.12 08:49
Оценка: 6 (4) +4
04.10.2012 19:36, Alex Dav пишет:

> Я бы оценил часа в 4, при условии, что почти все мне надо вспоминать и

> google — лучший друг .
Ну то-бишь, твою оценку можно умножить на 4-5. Уверен, это будет
реальный срок, за который ты уложишься.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: тестовое задание.
От: Vzhyk  
Дата: 05.10.12 08:54
Оценка:
05.10.2012 9:02, tomasmor пишет:

> предложить не можем. Если у Вас есть альтернативные варианты того, как

> решить эту проблему -- расскажите, мы будем крайне благодарны.
Зачем? Вы же вполне осознано проводите свою политику набора сотрудников
и отбираете тех, кто вам наиболее подходит. Зачем вам те, которые вам не
подходят?
Например, я вам не подхожу.
Posted via RSDN NNTP Server 2.1 beta
Re: тестовое задание.
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.10.12 08:55
Оценка:
Здравствуйте, xednay89, Вы писали:

X>Пообещали прислать тестовое задание.


Какое-то оно... Смущает, что кандидата можно послать, а код использовать в коммерческих целях. Например, если кровь из носа надо решить такую задачу, а нужных сцецов нет.
Re[2]: тестовое задание.
От: alzt  
Дата: 05.10.12 09:18
Оценка: :))) :)
Здравствуйте, MescalitoPeyot, Вы писали:

MP>пришел сначала вопрос "а что такой #include <boost/shared_ptr.hpp> ?", а потом резолюция "в решении есть утечки памяти"


Ну конечно, delete-то ты не вызывал .
Re[2]: тестовое задание.
От: alzt  
Дата: 05.10.12 09:20
Оценка:
Здравствуйте, tomasmor, Вы писали:

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


Если это всего-лишь вопросы стиля, то решается постепенно code review, другого способа нет. Плюс дать почитать ваши внутренние правила оформления кода, но они редко где есть.
Re: тестовое задание.
От: alzt  
Дата: 05.10.12 09:23
Оценка: 3 (3) +2
Здравствуйте, xednay89, Вы писали:

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

В общем попахивает каким-то неуважением к кандидату и его времени. Либо ищут человека, который будет хорошо работать в условиях соковыжималки.
Re[2]: тестовое задание.
От: nightcode  
Дата: 05.10.12 09:31
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Какое-то оно... Смущает, что кандидата можно послать, а код использовать в коммерческих целях. Например, если кровь из носа надо решить такую задачу, а нужных сцецов нет.

а не проще на фрилансе нанять человека ?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.