Информация об изменениях

Сообщение Re[4]: Тестовое задание ... от 14.06.2015 12:10

Изменено 14.06.2015 12:23 Геннадий Васильев

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

S>Ну мне кажется, что Вы преувеличиваете насчет банальных и давно устоявшихся.


Может и преувеличиваю, но ИМХО, по отношению к C++ они сводятся к нескольким основным принципам:

— По возможности точно следовать заданию или переспросить, если что-то неясно (+ коммуникационные навыки);
— Отслеживать и обрабатывать ошибочные ситуации (+ уверенность, что ты знаешь как работают реальные программы);
— Хорошо оформить (+ умение следовать стилю оформления, + забота о читателях);
— Не тащить в коде ничего лишнего (+ к уверенности, что ты умеешь себя ограничивать в творческих порывах);
— Следовать устоявшимся идиоматическим приёмам (+ к уверенности, что кандидат понимает, как ими пользоваться);
— Сделать автоматические тесты хотя бы по граничным значениям (+ к знанию методов тестирования).

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

На RSDN регулярно встречаются вопросы по тестовым заданиям, вот топик трёхлетней давности: http://rsdn.ru/forum/job/4788182
Автор: Геннадий Васильев
Дата: 21.06.12


S>Впрочем, наверное стоило бы говорить о требованиях к кандидату. Вы считате что человек, претендующий на 140к должен знать как минимум все что написано в этом топике? Имо, это все таки уровень сеньора и деньги другие. Если же Вы мне скажете, что это должен знать миддл, то я убьюсь об стенку.


Помимо комментариев и других оформительских штучек, ИМХО, самые серьёзные претензии крутились вокруг двух вещей:

— Лишние абстракции;
— Необычное использование shared_ptr.

Вроде бы, ничего запредельного даже для миддла.

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

S>Работая над этим ТЗ я потратил большую часть времени потратил на обдумывание алгоритма, который удовлетворяет требованиям задачи так, как я их вижу. На мой взгляд алгоритм получился очень даже неплохим и реализация его вполне себе рабочая, без дедлоков, гонок и прочего безобразия. Да, много деталей можно править и улучшать и в реальной обстановке я бы не раз возвращался к этому коду с целью оптимизации и рефакторинга, причем по собственному почину. А в итоге получается, что всем плевать на алгоритм, на ход размышлений, на то, что в итоге все работает, пусть и со скрипом. Главное, что я там вместо голого указателя использовал умный и что комменты не написал.


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

S>Кстати, неприятно, что в этой конторе сидят жлобы, которые даже не удосужились ответить. Подумаешь, кто-то там потратил N часов на ТЗ. Не понравилось, значит игнорим. Рашка, блин.


Согласен, если уж ты сам спрашивал о причинах непрохождения теста, могли бы и объяснить, хотя бы кратко. Высокомерно молчать — просто невежливо и уважения не добавляет.
Re[4]: Тестовое задание ...
Здравствуйте, Selavi, Вы писали:

S>Ну мне кажется, что Вы преувеличиваете насчет банальных и давно устоявшихся.


Может и преувеличиваю, но ИМХО, по отношению к C++ они сводятся к нескольким основным принципам:

— По возможности точно следовать заданию или переспросить, если что-то неясно (+ коммуникационные навыки);
— Отслеживать и обрабатывать ошибочные ситуации (+ уверенность, что ты знаешь как работают реальные программы);
— Хорошо оформить (+ умение следовать стилю оформления, + забота о читателях);
— Не тащить в коде ничего лишнего (+ к уверенности, что ты умеешь себя ограничивать в творческих порывах);
— Следовать устоявшимся идиоматическим приёмам (+ к уверенности, что кандидат понимает, как ими пользоваться);
— Сделать автоматические тесты хотя бы по граничным значениям (+ к знанию методов тестирования).

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

На RSDN регулярно встречаются вопросы по тестовым заданиям, вот топик трёхлетней давности: http://rsdn.ru/forum/job/4788182
Автор: Геннадий Васильев
Дата: 21.06.12


Update: Вообще, конечно, надо ещё смотреть на саму задачу. Если задача простая, то определённо, хотят посмотреть на "второстепенные" моменты. Если сложная — то скорее на ход мысли и порядок тестирования. У тебя задача относительно простая, следовательно "ход мысли" интересует в последнюю очередь.

S>Впрочем, наверное стоило бы говорить о требованиях к кандидату. Вы считате что человек, претендующий на 140к должен знать как минимум все что написано в этом топике? Имо, это все таки уровень сеньора и деньги другие. Если же Вы мне скажете, что это должен знать миддл, то я убьюсь об стенку.


Помимо комментариев и других оформительских штучек, ИМХО, самые серьёзные претензии крутились вокруг двух вещей:

— Лишние абстракции;
— Необычное использование shared_ptr.

Вроде бы, ничего сложного даже для миддла.

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

S>Работая над этим ТЗ я потратил большую часть времени потратил на обдумывание алгоритма, который удовлетворяет требованиям задачи так, как я их вижу. На мой взгляд алгоритм получился очень даже неплохим и реализация его вполне себе рабочая, без дедлоков, гонок и прочего безобразия. Да, много деталей можно править и улучшать и в реальной обстановке я бы не раз возвращался к этому коду с целью оптимизации и рефакторинга, причем по собственному почину. А в итоге получается, что всем плевать на алгоритм, на ход размышлений, на то, что в итоге все работает, пусть и со скрипом. Главное, что я там вместо голого указателя использовал умный и что комменты не написал.


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

S>Кстати, неприятно, что в этой конторе сидят жлобы, которые даже не удосужились ответить. Подумаешь, кто-то там потратил N часов на ТЗ. Не понравилось, значит игнорим. Рашка, блин.


Согласен, если уж ты сам спрашивал о причинах непрохождения теста, могли бы и объяснить, хотя бы кратко. Высокомерно молчать — просто невежливо и уважения не добавляет.