Re[4]: компания JetBrains
От: sux Земля  
Дата: 16.11.10 15:13
Оценка:
Здравствуйте, qxWork, Вы писали:

W>Именно так, более того, за последние 2 месяца ни один человек не сказал на телефонном интервью, что он не будет его делать.


о ужас, сколько уже ищете? а скольких нашли?
Re: Окончательные комментарии
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 16.11.10 15:20
Оценка: 22 (8) +3
Сегодня были получены окончательные комментарии от уважаемого специалиста к улучшенному варианту решения. Мои ответы:

1. Синхронизация.
Был неправ, она есть, но у меня к ней существенные претензии:
а) я категорически против такого решения, ибо блокировки очень значительные, и мне лично очень не нравится, что такое решение рассматривается. Если бы изначально было написано, что синхронизация реализована неэффективно с такими-то целями, также рассматриваливась лучшие варианты (какие именно) — отношение к решению было бы лояльнее.


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

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


Есть такая штука — контекст синхронизации
Автор(ы): Joseph Albahari
Дата: 24.03.2007
Подробно рассматривается работа с потоками — запуск, завершение, прерывание, блокировки, синхронизация, контексты синхронизации, особенности взаимодействия с апартаментами, а также потоковые возможности .NET — потоковые таймеры, пулы потоков, BackgroundWorker, асинхронные методы и делегаты.
В статье использован материал из книги Joseph Albahari, Ben Albahari "C# 3.0 in a Nutshell" — http://www.oreilly.com/catalog/9780596527570/
(кстати, обратите внимание на название раздела, где расположена статья). Экземпляры FsSyncFileStream создаются внутри экземпляра FsDisk и потому получают общий с ним контекст. В результате методы FsSyncFileStream.Write() даже разных экземпляров не работают параллельно в разных потоках. И не должны работать, потому что физический файл — один, и параллельная запись в него из разных потоков невозможна.

2. Таки кнопка cancel всегда неактивна (как минимум, мне не удалось ее увидеть работающей). Что странно, ибо это именно то, что Вы переделывали.


New VirtualFS...->(выбираем файл)->(вводим имя папки на диске)->Import physical folder...
Кнопка Cancel раздизабливается, но, разумеется, только на время выполнения асинхронной операции.
Уважаемый специалист вновь не захотел потратить немножко своего времени...

4. Отсутвие unit-тестов удивляет — мне трудно понять, как без них можно заставить работать не самую тривиальную программу.


Удивляет, что это удивляет уважаемого специалиста только сейчас. Хотя еще в сопроводительном письме к решению я упоминал, что готов их реализовать и предоставить, если потребуется. Уважаемый специалист не читал сопроводительного письма.
Re[2]: В догонку
От: Aviator  
Дата: 16.11.10 16:03
Оценка: +6
Небольшой оффтоп

_>

_>4. Отсутвие unit-тестов удивляет — мне трудно понять, как без них можно заставить работать не самую тривиальную программу.


Интересно, а не удивляет ли проводившего code review, как писали программы до появления библиотек юнит тестов. Хотя может программирование началось с релиза .NET и библиотеки NUnit...
Re[2]: Окончательные комментарии
От: gangof4  
Дата: 16.11.10 17:19
Оценка: 10 (2) +6
Не поленился скачал, посмотрел.
Для тестового задания более чем достаточно. Видно что человек нормально пишет код.
Очень хотел бы посмотреть на тестовое задание такой же тематики, которое бы приняли.
Наверное это уже готовый коробочный продукт.
Re[3]: В догонку
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 17.11.10 09:11
Оценка: :)
Здравствуйте, Aviator, Вы писали:

A>Интересно, а не удивляет ли проводившего code review, как писали программы до появления библиотек юнит тестов. Хотя может программирование началось с релиза .NET и библиотеки NUnit...


Да хреново писали до юнит-тестов, с этим никто не спорит.
Но, упомянув про юнит-тесты, уважаемый специалист зачем-то перевыполнил свой план: формально и наличия рекурсии в CreateFolder() ему было бы достаточно для отрицательного отзыва.
Re[4]: В догонку
От: Aviator  
Дата: 17.11.10 10:00
Оценка: +3
Здравствуйте, scale_tone, Вы писали:

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


A>>Интересно, а не удивляет ли проводившего code review, как писали программы до появления библиотек юнит тестов. Хотя может программирование началось с релиза .NET и библиотеки NUnit...


_>Да хреново писали до юнит-тестов, с этим никто не спорит.

Ага, linux и apache ужасно написаны, невозможно пользоваться, никакой стабильности работы, да? А как появились библиотеки для юнит тестирования, софт перешёл на новый уровень качества? Это я к тому, что мыслить надо не только шаблонами...
Re[5]: В догонку
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 17.11.10 10:20
Оценка: -1
Здравствуйте, Aviator, Вы писали:

_>>Да хреново писали до юнит-тестов, с этим никто не спорит.

A>Ага, linux и apache ужасно написаны, невозможно пользоваться, никакой стабильности работы, да? А как появились библиотеки для юнит тестирования, софт перешёл на новый уровень качества? Это я к тому, что мыслить надо не только шаблонами...

Согласен, что шаблонами мыслить нехорошо и не нужно.
А плюсы/минусы юнит-тестирования — это, простите, немножко в другой, холиварный форум
Re[6]: В догонку
От: Aviator  
Дата: 17.11.10 11:09
Оценка: 9 (1) +11
Здравствуйте, scale_tone, Вы писали:

_>Согласен, что шаблонами мыслить нехорошо и не нужно.

_>А плюсы/минусы юнит-тестирования — это, простите, немножко в другой, холиварный форум
Не совсем, меня смутил юношеский максимализм во фразе
4. Отсутвие unit-тестов удивляет — мне трудно понять, как без них можно заставить работать не самую тривиальную программу.
Re[7]: В догонку
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 17.11.10 14:28
Оценка: +2
Здравствуйте, Aviator, Вы писали:

A>Не совсем, меня смутил юношеский максимализм во фразе

A>4. Отсутвие unit-тестов удивляет — мне трудно понять, как без них можно заставить работать не самую тривиальную программу.

Аа, ну так фраза просто не несет в себе смысла. Автору просто нужно было что-то написать
Re[2]: Окончательные комментарии
От: Кодёнок  
Дата: 18.11.10 13:16
Оценка:
Здравствуйте, scale_tone, Вы писали:

_>б) не до конца понимаю, как все работает при условии, что файл записывается на диск и это требует его перемещения в конец таблицы, а в это время кто-то другой активно двигает файлы Я почти уверен, что работать не будет.


Что значит — почти уверен? Проверил бы и точно знал. Что значит синхронизация не очень — в задании же к ней не было специальных требований? Мутный у них специалист какой-то.

А тебе прямым текстом сказали, что не справился с заданием, или это твое заключение? Ни одно из его замечаний не указывает на серъезный недостаток.
Re[3]: Окончательные комментарии
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 18.11.10 14:20
Оценка: 9 (2) +2
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, scale_tone, Вы писали:


Кё>Что значит — почти уверен? Проверил бы и точно знал. Что значит синхронизация не очень — в задании же к ней не было специальных требований? Мутный у них специалист какой-то.


В задании не было специальных требований. Подразумевалось требование не использовать контексты синхронизации, потому что интервьюер не знает, что это такое. Но плохо не это (я тоже много чего не знаю), а то, что интервьюер упорствует в своем незнании: он не прочитал сопроводительное письмо, в котором о них написано, вообще не смотрел код и не стал читать статью
Автор(ы): Joseph Albahari
Дата: 24.03.2007
Подробно рассматривается работа с потоками — запуск, завершение, прерывание, блокировки, синхронизация, контексты синхронизации, особенности взаимодействия с апартаментами, а также потоковые возможности .NET — потоковые таймеры, пулы потоков, BackgroundWorker, асинхронные методы и делегаты.
В статье использован материал из книги Joseph Albahari, Ben Albahari "C# 3.0 in a Nutshell" — http://www.oreilly.com/catalog/9780596527570/
из раздела "Основы". А еще удивительно, что человек не побоялся в своем упорном незнании публично признаться и вылез на форум.

Кё>А тебе прямым текстом сказали, что не справился с заданием, или это твое заключение? Ни одно из его замечаний не указывает на серъезный недостаток.


Ревью было выслано через 2 недели после отправки и только после того, как я попросил уведомить меня о результатах. Из ревью непосредственно никакие результаты не следовали, поэтому я переспросил, стоит ли продолжать взаимодействие (без ответа), а потом все-таки выслал вариант с отменой операций (тоже без ответа). Ответы (сразу же) поступили только после того, как я озвучил название компании. В тот же день поступил ревью
Автор: scale_tone
Дата: 16.11.10
нового варианта и официальный отказ на его основании.
Re[5]: И снова тестовое задание...
От: Олег К.  
Дата: 21.11.10 09:46
Оценка:
A>Вот так вот блин учат в ведущих российских вузах.
Что за ВУЗ?
Re[2]: компания JetBrains
От: Олег К.  
Дата: 21.11.10 10:16
Оценка: +2
W>4. Скорее всего, описание вакансии не очень хорошо сделано, ибо нам нужен не просто "не студент", а человек, который войдет в костяк команды, которая будет строиться в московском офисе, именно поэтому требования к выполнению задания у нас высокие (и возможно, извращенные).
Смотри, своими действиями ты, возможно, заказал человеку вход в компанию навсегда. Вместе с тем, программисты не работают в вакууме и все решения обычно-таки обсуждаются и, возможно, что-то переписывается. Топик-стартер доказал что может думать и обсуждать и хочет работать у вас.

Ты же упорствуешь в своей правоте. Может лучше все-таки пригласить человека на очное интервью? Это будет в плюс и тебе лично и компании. А то какая-то анти-реклама прямо.
Re[2]: Они сами не знают, чего им надо
От: пыщьх http://rsdn_user.livejournal.com
Дата: 21.11.10 10:23
Оценка: 28 (4)
Здравствуйте, scale_tone, Вы писали:

ИМХО, контора имеет всех необходимых людей и в фоновом режиме ищет "гения, способного выдать в 10 раз больший результат за миску досирака". Если они такого гения найдут (с вероятностью 1e-10, ага), то уволят кого-нибудь из штатных программистов и возьмут на его место гения (одна миска-то дешевле двух).

Кстати, вполне типичное для российских контор явление, когда контора ищет "того, не знаю кого" и отсеивает народ по принципу "хи, что-то не впечатлил". Ибо ни бизнес-плана, ни четких требований к кандидату в конторе нет, а утилизировать рабочее время нанимателей как-то надо.
Запретное обсуждение модерирования RSDN:
http://rsdn-user.livejournal.com/652.html
Re[3]: Они сами не знают, чего им надо
От: Олег К.  
Дата: 21.11.10 10:41
Оценка: +1
Я не думаю что это контора или фоновый режим. Скорее всего конкретные интервьюеры. Правда и интервьюируемые порой такие клоуны бывают.
Re[7]: В догонку
От: StandAlone  
Дата: 21.11.10 13:12
Оценка: 3 (1) +1
Здравствуйте, Aviator, Вы писали:

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


_>>Согласен, что шаблонами мыслить нехорошо и не нужно.

_>>А плюсы/минусы юнит-тестирования — это, простите, немножко в другой, холиварный форум
A>Не совсем, меня смутил юношеский максимализм во фразе
A>4. Отсутвие unit-тестов удивляет — мне трудно понять, как без них можно заставить работать не самую тривиальную программу.\

Надо полагать, это 26-летний PM ...
Re: И снова тестовое задание...
От: frogkiller Россия  
Дата: 21.11.10 14:56
Оценка:
Здравствуйте, scale_tone, Вы писали:

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


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

Но замечу, что насильно мил не будешь, а при оценке кандидата существенную роль играет впечатление ревьюера. Начиная с какого-то уровня, квалификация _разработчика_ становится уже не такой важной — процесс разработки в более-менее серьёзной компании довольно толерантен к тому, потратит он на какую-то фичу, к примеру, 3 часа самостоятельно или 5 часов и с обсуждением с коллегами в курилке и после чтения мануалов. Психологическое умение работать в команде значительно более важно, всё-таки программирование — это командный вид спорта. И именно ревьюеру придётся потом работать с кандидатом. Поэтому, даже если он сам более низкой квалификации, и явно неправ в своей оценке — что ж, такое тоже бывает — это часть реальности. Мнение ревьюера тут имеет гораздо большее значение, чем мнение кандидата. Разумеется, до определённого уровня — но явный неадекват не долго будет этим заниматься, люди вокруг всё же понимают, да и результаты не замедлят быть.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
Re[2]: И снова тестовое задание...
От: wety Россия  
Дата: 21.11.10 15:40
Оценка:
Здравствуйте, Oleg Kosenkov, Вы писали:

Хм. А по какой тарифной ставке должно оплачиваться? По однократной, двукратной или десятикратной? Ведь надо учесть, что для соискателя собеседование — это жуткий шок. Так? Так! Все "домашние задания", которые не оплачиваются ВООБЩЕ мы занесем в Уголовный Кодекс и будем рассматривать как ПРЯМОЕ нарушение прав человека, так? Или будем по-прежнему скулить на форумах о нарушениях прав человека?
Re[2]: И снова тестовое задание...
От: scale_tone Норвегия https://scale-tone.github.io/
Дата: 21.11.10 20:12
Оценка: 12 (5) +4
Здравствуйте, frogkiller, Вы писали:

F> Мнение ревьюера тут имеет гораздо большее значение, чем мнение кандидата. Разумеется, до определённого уровня — но явный неадекват не долго будет этим заниматься, люди вокруг всё же понимают, да и результаты не замедлят быть.


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

Но попробую конкретизировать вопросы (и мои ответы на них), которые из всей истории вытекают и которые тут обсуждаются:

1. Имеет ли право компания JetBrains не брать на работу кандидатов, которые ей просто не нравятся (не то число пробелов при форматировании, фотография в резюме не с той стороны, шнурки не в ту сторону завязывает...)? Да, конечно, имеет.
2. Имеет ли право компания JetBrains давать кандидатам объемные неоплачиваемые тестовые задания? Да, конечно, имеет. Хоть толчки скрести имеет право заставлять до тех пор, пока кандидат не против.
3. Имеет ли право компания JetBrains поверхностно подходить к изучению тестовых заданий кандидатов, т.е. тратить на ревью не более 2-х минут рабочего времени? Нет, не имеет, т.к. это уже прямое неуважение. Даже если я — сопливый джуниор, а интервьюер — академик и троекратный MVP, его рабочее время не может стоить в 20*60/2 = 600 раз больше моего. В два, в три, в десять раз больше может стоить, но не в 600.
4. Имеют ли право потенциальные кандидаты на работу в компанию JetBrains знать, с каким по умолчанию неуважительным отношением им придется столкнуться при выполнении тестового задания? Да, имеют. Отсюда и этот пост.

Ну и еще в процессе обсуждения внезапно вытекла забавная тема отношения сотрудников
Автор: qxWork
Дата: 16.11.10
компании JetBrains к практике тестовых заданий И ведь никто человека за язык не тянул!..
Re: И снова тестовое задание...
От: MozgC США http://nightcoder.livejournal.com
Дата: 21.11.10 21:05
Оценка: 13 (3) +2
Здравствуйте, scale_tone, Вы писали:

_>Прошу уважаемое сообщество выдать свою оценку.


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

Ну а так — вы не первый и не последний. Мне вот один раз человек после собеседования в РУССКУЮ компанию на позицию программиста написал, что мой английский слабоват — это при том, что я больше года жил и работал за границей в англоговорящих странах (включая США), где общался только на английском языке, а общаться приходилось много, и проблем совершенно не было.

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