Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, Александр Каширин, Вы писали:
АК>>Тем не менее мои тестовые задания были приняты, а было отказано уже после телефонного интервью. Причем Алевтина перезвонила буквально в течение 15 минут, тактично объяснила мне, что я не поразил товарищей знаниями своими , и у CQG более высокие требования к кандидатам. Вопросы на интервью задавались очень толковые и профессиональные: никаких каверз, просто проверка глубокого понимания того, о знании чего я заявил в резюме (чтобы оценить степень толковости вопросов, приведу типичный вопрос для проверки владения STL: оцените трудоемкость операций вставки и поиска в vector, list и set). Честно говоря, я просто очень несерьезно отнесся к собеседованию, и даже те вопросы, о которых я мог подумать и ответить более толково, я нередко "сливал" на то, что "не помню, это легко можно найти в хелпе"
M>Между прочим я бы сильно насторожился если человек не знает базовых алгоритмов и структур данных и временную сложность операций с ними. Тут налицо было или недоразумение или нужно срочно учить кормена.
А кто сказал, что я не ответил именно на эти вопросы?
Здравствуйте, Александр Каширин, Вы писали:
M>>Между прочим я бы сильно насторожился если человек не знает базовых алгоритмов и структур данных и временную сложность операций с ними. Тут налицо было или недоразумение или нужно срочно учить кормена.
АК>А кто сказал, что я не ответил именно на эти вопросы?
Значит я неправильно прочитал сообщение. тогда пост мимо ...
Здравствуйте, Anonim1999, Вы писали:
A>Расскажите о конторе. A>Поиск по форуму дает в основном положительные отзывы, так что в первую очередь интересуют отрицательные Но приветствуется, конечно, любоая инфа.
Расскажу коротко свой опыт собеседования с ними, возможно будет кому-то полезен, так, как слегка отличается от только позитивных. которые тут постят.
Сразу скажу, что работу я не искал — мне предложили рассмотреть вариант от "очень интересной компании".
До того, как прийти на первое собеседования я пообщался со знакомым, который тоже туда ходил. От него было много очень хвалебных отзывов о том, что там только профи, хорошо собеседуют, интересные задания и т.д. но есть принцип "лучше не взять сотню профи чем одного новичка", и это меня очень насторожило.
Возможно это и правильный принцип, но он ставит компанию сразу намного выше, чем кандидатов, что имхо не совсем здоровая практика по отношению к последним.
Ну да ладно, всё равно было интересно — как же на самом деле. Может они там реально такие монстры весь и супер-профессионалы, значит интересно будет с ними пообщаться
Сразу же первое, что насторожило — это то, что после того, как мне была назначена первая встреча ровно на 14:00 в 13:50 когда я подходил к их офису, Алевтина позвонила и сказала, что она не сможет присуствовать, и оставит нужные бумажки для заполнения у какой-то девушки, что в коридоре. Да, бесспорно мелочь, но всё-таки немного удивила такая мелочь у компании, которая считает себя "компанией профессионалов". При этом во время заполнения бумажек, Алевтина появилась, меня пересадили с одной комнаты в другую, потом снова пропала, сказав оставить бумажки той же девушке в коридоре, которой не оказалось на месте когда я закончил заполнять, и мне пришлось минут 10 ждать пока хоть кто-то появиться, кому можно отдать бумажки.
Ещё раз: да, я согласен, что это всё мелочи жизни, и особого неудобства не доставили мне все эти манипуляции. Но, так сказать, первое впечатление о компании создалось.
Ах да, толком задать какие либо вопросы о компании и поговорить ни с кем не получилось — только заполнение тестов.
Ну ладно, получил я потом их тестовые задания. Задания действительно довольно интересные, вот только очень не точные. Как и по первому заданию, так и по второму я нашёл целый список из десятка пунктиков, которые давали совершенно неоднозначную трактовку задания. Ну мы тоже не пальцем деланны, не раз от заказчиков тоже приходят такие спецификации — так что особой проблемы это не составило: одну задачу я решил сразу одновременно двумя способами, при этом позволил динамически подменять алгоритм во время выполнения, вторую задачку дополнил недостающими фактами исходя из "здравого смысла".
При этом, когда отсылал решение в письме привёл все те пунктики, которые вызвали неоднозначность, обосновав почему это неоднозначность и описав своё решение.
А теперь самое интересное: когда я пишёл на техническое собеседование со специалистами, они, оказываеться, не получали все эти комментарии к решению, и мне пришлось заново объяснять большенство косяков задания.
Снова случайность? Возможно, не спорю — везде бывают накладки: не успели передать, потерялось письмо и т.д.
Теперь о техническом собеседовании: хорошего действительно много можно сказать, люди хорошо подготовленные, вопросы задавались из многих областей. Обсудили и некоторые косяки моего решения (меня порадовало, что ошибок не нашли, нашли только пару неоптимальных подходов — ну давно я с С++ не работал, работая с С# очень быстро привыкаешь, к вызовам подобным AddObject(new MyClass()) не боясь потерять созданный объект в случае возникновения ошибки до сохранения ссылки в контейнере . С другой стороны — если ошибка не может произойти внутри функции, то зачем думать о _потенциальной_ возможности потери объекта? Если не ошибаюсь, Фаулер писал что-то вроде "пишите код, как будто ошибок нет совсем — ошибка должна быть действительно исключительной операцией". Но это уже спорный вопрос, не для этого раздела).
Но в целом, если вспомнить что CQG — "компания профессионалов", то сразу же были заметны довольно серьёзные ошибки людей, которые собеседовали:
1. Нечёткая и долгая постановка вопроса: иногда приходилось ждать по пол минуты, пока получишь полностью вопрос. При этом вопрос немного "растекаться по древу" — ближе к концу уже трудно понять о чём было в начале.
2. Иногда задавался вопрос с некоторым термином, который не совсем общепринятый — к примеру, мне задали вопрос "что такое ...", я затруднился ответить и попросил объяснить из какой хотя бы области этот термин (ООП, многопоточность, UML, ...), на что получил отказ. При этом в последствии после гугления оказалось, что я почти каждый день работаю с этим, постоянно использую, просто у меня в компании этот термин по другому называют.
3. По середине собеседования подошёл ещё один человек, который начал задавать некоторые вопросы, схожие с теми, которые были уже заданы.
4. Ну и самое сильное, что мне запомнился, это маленький пример кода, который мне показали и попросили сказать, что он выдаст в результате. Ну сначала этот кусок кода был с ошибкой, на которую я и указал (человек извинился, подправил). Потом я выдал свою версию, на что мне сказали, что это неверный ответ. Я перепроверил. Потом ещё раз. Повторил свой ответ, снова сказали что неверно. Я тогда решил запомнить букву в букву код (было около 10 строк, могу если интересно запостить его тут — он просто элементарный), После этого попросил убедиться, что ничего не ошиблись в коде. Но всё равно мой ответ был неверный.
Потом я пришёл домой, набрал этот кусок кода на компе, и очень удивился, когда мой ответ оказался верным (мне было действительно узнать где же ошибка, по этому я запомнил код на бумажке очень точно — буква в букву).
Сейчас уже точно не припомню какие ещё косяки были на техн. собеседовании, не не скажу, что вышеперечисленные есть всё, что меня насторожило.
В общем, после технического собеседования не смотря на отличнейший кофе, который мне был предложен, впечатление о компании было всё-таки хуже — у некоторых других компаний, о которых менее лестные слухи ходят, профессионализма в подходе к собеседованию, к методике собеседования, и т.п. лично мне было заметно чуть больше.
Завершу расказ тем, что по результатам собеседования я получил "we do not currently see that you are a strong match for a Senior Developer position at this time". Я не буду спорить, что заключение неверное — я себя не считаю монстром-профи, но, как говориться, дело не в этом. Кстати, после того, как я потратил на CQG всё-таки не мало времени (только собеседование проходило чуть больше 2 часов), хотелось получить информацию не просто о том, что я не подхожу, а и то, что именно не подошло им — насколько я знаю, многие менее крутые компании такое практикуют. Просто тогда не так обидно потраченного времени, и знаешь где тебе нужно ещё поработать над собой.
Ещё раз отмечу, что, возможно, это только мне так "повезло" — может просто было жарко, или у людей был тяжелый день перед этим или ещё какая-то причина. Возможно реально компания отличная, а я слишком привередлив, но я ожидал чуть большего от компании, о которой столько говорят хорошего, у которой нужно чтоб попасть на техн. собеседование пройти несколько этапов (бумажки, написание кода), у которой такие высокие критерии отбора персонала.
Вот такое мнение, возможно кому-то будет полезным.
Здравствуйте, Olostan, Вы писали:
O>Потом я пришёл домой, набрал этот кусок кода на компе, и очень удивился, когда мой ответ оказался верным (мне было действительно узнать где же ошибка, по этому я запомнил код на бумажке очень точно — буква в букву).
Здравствуйте, Denis Mingulov, Вы писали:
DM>Здравствуйте, Olostan, Вы писали:
O>>Потом я пришёл домой, набрал этот кусок кода на компе, и очень удивился, когда мой ответ оказался верным (мне было действительно узнать где же ошибка, по этому я запомнил код на бумажке очень точно — буква в букву).
DM>Код приведите, пожалуйста. DM>На 99% уверен, там поведение разное может быть.
В том то и дело, что код ну просто супер тривиальный. Возможно было намерение сделать какой-то неоднозначный прикол, но факт в том, что на листочке было написано именно то, что я набрал, когда пришёл домой. Вот собственно тот код, который был написан на листочке:
class Program
{
public class B
{
public virtual void foo () { Console.WriteLine("B.Foo"); }
}
public class C: B
{
public override void foo() { Console.WriteLine("C.Foo"); }
}
public class D
{
public void Do(B x) { x.foo(); }
}
static void Main(string[] args)
{
B o = new C();
D d = new D();
d.Do(o);
}
}
Я просто не могу представить что может заставить эту программу вывести что-то, кроме "C.Foo".
Название классов, методов сохранил оригинальное.
Как мне заметили, возможно хотели узнать, насколько я стойкий в своём ответе. Но дело в том, что я в течении наверное минуты доказывал свой вариант, просил перепроверить задание. Но в конце была фраза (дословно цитирую) "У Вас будет время подумать, почему Ваш ответ неверный".
Наверное один из наиболее неприятных эпизодов на собеседовании в CQG.
public class D
{
public void Do(B x) { x.foo(); }
}
O>Я просто не могу представить что может заставить эту программу вывести что-то, кроме "C.Foo". O>Название классов, методов сохранил оригинальное.
Я не в курсе как в С#, но в плюсах — однозначно будет эффект отсечения: так как х передается по значению, вызовется конструктор копирования В => будет создан объект В
поэтому будет B.Foo
Здравствуйте, Olostan, Вы писали:
O>В том то и дело, что код ну просто супер тривиальный. Возможно было намерение сделать какой-то неоднозначный прикол, но факт в том, что на листочке было написано именно то, что я набрал, когда пришёл домой. Вот собственно тот код, который был написан на листочке:
Если это все. То данный код не скомпилируется с сообщением типа "не знаю что такое Console".
Но если в начало добавить using System. То будет C.Foo
... << RSDN@Home 1.2.0 alpha rev. 673>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, alion, Вы писали:
A>Я не в курсе как в С#, но в плюсах — однозначно будет эффект отсечения: так как х передается по значению, вызовется конструктор копирования В => будет создан объект В A>поэтому будет B.Foo
А если Паскаль, то вообще не работать .
Только это не имеет никакого значения, потому что задача на С#. Какой был смысл этого сообщения?
Здравствуйте, WolfHound, Вы писали:
WH>Если это все. То данный код не скомпилируется с сообщением типа "не знаю что такое Console".
Я более чем уверен, что вопрос был не про using.
WH>Но если в начало добавить using System. То будет C.Foo
Ваш ответ признали бы неверным, как и мой
Здравствуйте, Olostan, Вы писали:
O>Здравствуйте, WolfHound, Вы писали:
WH>>Если это все. То данный код не скомпилируется с сообщением типа "не знаю что такое Console". O>Я более чем уверен, что вопрос был не про using.
WH>>Но если в начало добавить using System. То будет C.Foo O>Ваш ответ признали бы неверным, как и мой
Это их известная шуточка. Я году в 2004 имел сомнительное счастье туда сходить. Меня тоже ткнули носом в совершенно правильный код и безапелляционно заявили что "неправильно". Я и подумал — "нафик я буду шарпу учить такого дурака", тем более что собеседник явно был плюсовым программистом в процессе переползания на .NET и скилами мягко говоря не поражал. И ответил — "ну неправильно и неправильно", после чего по радостной реакции интервьюера сразу все понял
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Здравствуйте, Olostan, Вы писали:
O>Здравствуйте, Denis Mingulov, Вы писали:
DM>>Здравствуйте, Olostan, Вы писали:
O>>>Потом я пришёл домой, набрал этот кусок кода на компе, и очень удивился, когда мой ответ оказался верным (мне было действительно узнать где же ошибка, по этому я запомнил код на бумажке очень точно — буква в букву).
DM>>Код приведите, пожалуйста. DM>>На 99% уверен, там поведение разное может быть.
O>В том то и дело, что код ну просто супер тривиальный. Возможно было намерение сделать какой-то неоднозначный прикол, но факт в том, что на листочке было написано именно то, что я набрал, когда пришёл домой. Вот собственно тот код, который был написан на листочке:
O>Я просто не могу представить что может заставить эту программу вывести что-то, кроме "C.Foo". O>Название классов, методов сохранил оригинальное.
O>Как мне заметили, возможно хотели узнать, насколько я стойкий в своём ответе. Но дело в том, что я в течении наверное минуты доказывал свой вариант, просил перепроверить задание. Но в конце была фраза (дословно цитирую) "У Вас будет время подумать, почему Ваш ответ неверный".
O>Наверное один из наиболее неприятных эпизодов на собеседовании в CQG.
Сдается мне, устроили тебе небольшую провокацию. Хотели реакцию посмотреть, может в драку полезешь, доказывая свою правоту
А вообще, я не понимаю смысла в таких задачках. В реале, я такой код никогда не напишу. Сдается, товарищи не на то упор делают.
Здравствуйте, VGooz, Вы писали:
VG>А вообще, я не понимаю смысла в таких задачках. В реале, я такой код никогда не напишу. Сдается, товарищи не на то упор делают.
Никогда не используешь override и вызов через базовый клас?
Здравствуйте, Olostan, Вы писали:
O>но есть принцип "лучше не взять сотню профи чем одного новичка", и это меня очень насторожило. O>Возможно это и правильный принцип, но он ставит компанию сразу намного выше, чем кандидатов, что имхо не совсем здоровая практика по отношению к последним.
Принцип немного другой:
"Лучше не взять 10 хороших, чем одного плохого"
"Плохой" — это не только в смысле плохой специалист. Человек может быть супер профессионалом, но если он не умеет работать в команде — значит он не подходит.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Как-то я проходил собеседование в одной фирме и мне задали 5 вопросов, на 4 я ответил, как мне сказали, неправильно.
Пришел домой, проверил, оказалось, что я на один ответил неправильно, а в трех случаях они ошиблись.
Таким образом, собеседование закончилось со счетом 3:1 в мою пользу
Но, тем не, менее они мне предложили работу. Не пошел туда, поскольку зарплаты там маленькие, а мне и вовсе предложили в два раза меньше чем сейчас получаю.
Так что не расстраивайтесь, ведь потом с такими проФФФесионалами вам бы пришлось бы работать.
CQG славится тем, что отфильтровывает много людей, а не хорошими специалистами. А это все-таки разные вещи.
Здравствуйте, astral_marine, Вы писали:
_>CQG славится тем, что отфильтровывает много людей, а не хорошими специалистами. А это все-таки разные вещи.
Откуда инфа о выделенном?
_>PS. С хорошими программистами нынче туго.
+1
"For every complex problem, there is a solution that is simple, neat,
and wrong."
_>>CQG славится тем, что отфильтровывает много людей, а не хорошими специалистами. А это все-таки разные вещи. AJD>Откуда инфа о выделенном?
Предыдущий пост + мнение одного моего хорошего знакомого, который имел дело с этой фирмой.
Не буду утверждать, что так оно на самом деле. Просто у меня сложилось такое впечатления об этой фирме после всех этих обсуждений.
Здравствуйте, AndrewJD, Вы писали:
AJD>Здравствуйте, astral_marine, Вы писали:
_>>+ мнение одного моего хорошего знакомого, который имел дело с этой фирмой. AJD>А знакомого чем обидели?
При чём тут "обидели"?
Плохое впечатление о фирме можно получить просто пообщавшись на их собеседовании, без никаких "обид".
Здравствуйте, Olostan, Вы писали:
O>При чём тут "обидели"? O>Плохое впечатление о фирме можно получить просто пообщавшись на их собеседовании, без никаких "обид".
Ну просто интересно, почему сложилось плохое впечатление. Должны же быть причины.
"For every complex problem, there is a solution that is simple, neat,
and wrong."