Re[8]: Еще о собеседованиях
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.07.10 18:37
Оценка: :)
Здравствуйте, vb-develop, Вы писали:


I>>Если такое есть, то +. Если нет — то 0.


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


Не только начинающие, а например и те, которым пришло понимание функциональщины, но они вынуждены были рабтать на старом фреймворке в силу ряда причин, например обязательства, контракт и тд и тд
Re[7]: Еще о собеседованиях
От: Undying Россия  
Дата: 16.07.10 06:25
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Задача например преобразование связного списка в коллекцию.

I>Что бы решить задачу, испытуемый дожен понимать, что такое связные списки, что такое итераторы, коллекции и уметь рекурсию.

Вот это да удачная задача, т.к. проверяет понимание, а не знание конкретики. Для отсева случайных кандидатов подходит хорошо. А вот задачи на т.н. логику отсеивают совершенно не тех кого нужно.
Re[5]: Еще о собеседованиях
От: pvirk Россия  
Дата: 16.07.10 07:08
Оценка:
Здравствуйте, C0x, Вы писали:

C0x>Неповеришь, но даже после этих флеймов найдутся такие, которые не смогут объяснить всю глубину проблемы с деструкторами. Исходя из правила 80/20 таких будет около 80%.


А в чём там глубина проблемы?
Re[6]: Еще о собеседованиях
От: 31415926 Россия  
Дата: 16.07.10 07:28
Оценка: +1 :))
Здравствуйте, pvirk, Вы писали:

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


C0x>>Неповеришь, но даже после этих флеймов найдутся такие, которые не смогут объяснить всю глубину проблемы с деструкторами. Исходя из правила 80/20 таких будет около 80%.


P>А в чём там глубина проблемы?


Глубина, проблемы.... Страшно далеки Вы от народа... У меня тут намедни претендент на зарплату >100K не смог объяснить, что такое число с плавающей точкой. Я спрашивать не собирался, т.к. полагал это неприличным, но он так невразумительно излагал, что я спросил — просто чтобы услышать хоть что-то внятное. А вы о виртуальных деструкторах.... Проще надо быть, и люди к Вам потянутся. Так сказать, не зарастет народная тропа.... К сожалению, у нас нужно уметь программировать в традиционном понимании этого слова, ток что маемся.
Re[6]: Еще о собеседованиях
От: C0x  
Дата: 16.07.10 07:31
Оценка: :)
Здравствуйте, pvirk, Вы писали:

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


C0x>>Неповеришь, но даже после этих флеймов найдутся такие, которые не смогут объяснить всю глубину проблемы с деструкторами. Исходя из правила 80/20 таких будет около 80%.


P>А в чём там глубина проблемы?


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

Вот после такого разговора, мне стало понятно, что человек слышал, что деструкторы нужно делать виртуальными (наверное на РСДНе начитался советов), а порядок вызова деструкторов, или, что будет если исключение в цепочке вызова деструкторов вылетит и т.д. совершенно не понимал.
Re[7]: Еще о собеседованиях
От: pvirk Россия  
Дата: 16.07.10 08:37
Оценка:
Здравствуйте, C0x, Вы писали:

P>>А в чём там глубина проблемы?


C0x>Приходит значит тип на собеседование. Спрашиваю "Что в этом примере не так?", отвечает "ааа, деструктор нужно сделать виртуальным" (при этом указывая на деструктор наследника а не базового класса), спрашиваю "а нафига собственно?", ответ "хмм.. ну вообщето деструкторы нужно делать виртуальными.., чтобы гарантированно все подчищалось"


В принципе правильно ответил.

C0x>Вот после такого разговора, мне стало понятно, что человек слышал, что деструкторы нужно делать виртуальными (наверное на РСДНе начитался советов), а порядок вызова деструкторов, или, что будет если исключение в цепочке вызова деструкторов вылетит и т.д. совершенно не понимал.


А как же заветы великих гуру, что деструкторы никогда не должны генерировать исключений?
Re[8]: Еще о собеседованиях
От: C0x  
Дата: 16.07.10 09:05
Оценка: +1
Здравствуйте, pvirk, Вы писали:

P>В принципе правильно ответил.


Нет не правильно, т.к. не поставил virtual там где это было необходимо.

P>А как же заветы великих гуру, что деструкторы никогда не должны генерировать исключений?


Заветы это хорошо, а не понимание проблемы плохо.
Re[2]: Еще о собеседованиях
От: PorcoRosso  
Дата: 16.07.10 09:28
Оценка: 6 (1) +3
Здравствуйте, pvirk, Вы писали:

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


А мне приходится собеседовать людей, которые в скиллах пишут MS SQL, но совсем не знаю что такое join.
Давайте я плакаться начну?
Re[9]: Еще о собеседованиях
От: vb-develop  
Дата: 16.07.10 09:50
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, vb-develop, Вы писали:



I>>>Если такое есть, то +. Если нет — то 0.


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


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


А, т.е. для вас опыт работы на суппорте старых проектов, ровно как и небольшой опыт вообще, является неким плюсом к кандидату? Интересно каких людей вы набираете с такими критериями. Хотя думаю замечание в сообщении по этому вопросу http://rsdn.ru/forum/job/3878073.aspx
Автор: pvirk
Дата: 14.07.10
к вам относится в полной мере.
Re[10]: Еще о собеседованиях
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.07.10 10:50
Оценка:
Здравствуйте, vb-develop, Вы писали:

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


VD>А, т.е. для вас опыт работы на суппорте старых проектов, ровно как и небольшой опыт вообще, является неким плюсом к кандидату?


Почему именно суппорт ?

Есть еще и майнтенанс, т.е. выпуск версии за версией.

На майнтенансе опыт майнтенанса это плюс

Вообще опыт если есть, то это плюс.

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

>Интересно каких людей вы набираете с такими критериями.


Тех которые могут решать именно наши задачи.
Re[8]: Еще о собеседованиях
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.07.10 10:59
Оценка:
Здравствуйте, Undying, Вы писали:

I>>Задача например преобразование связного списка в коллекцию.

I>>Что бы решить задачу, испытуемый дожен понимать, что такое связные списки, что такое итераторы, коллекции и уметь рекурсию.

U>Вот это да удачная задача, т.к. проверяет понимание, а не знание конкретики. Для отсева случайных кандидатов подходит хорошо. А вот задачи на т.н. логику отсеивают совершенно не тех кого нужно.


Задачи на логику обычно никого не отсеивают. У меня это доп. бонус.

Из двух одинаковых кандидатов я выберу того, кто решил задачу на логику.
Re[9]: Еще о собеседованиях
От: fgrdn Земля  
Дата: 16.07.10 11:04
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Из двух одинаковых кандидатов я выберу того, кто решил задачу на логику.


мдя..
in c/c++ we trust!
Re[7]: Еще о собеседованиях
От: мыщъх США http://nezumi-lab.org
Дата: 16.07.10 17:14
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, мыщъх, Вы писали:


I>Задача например преобразование связного списка в коллекцию.

а что такое коллекция? это что-то из NET'а? а это не слишком просто? обход дерева ИМХО в этом смысле дает больше инфы о кандидате. кстати, тут с удивлением обнаружил, что некоторые считают, что список принципиально невозможно юзать по индексу, ну а дерево -- тем более, хотя слово "индексация" все слышали. а проиндексированное дерево обходится в одну строчку, даже если там очень мощная иерархия детей и родителей с закольцованными ссылками.

I> Что бы решить задачу, испытуемый дожен понимать, что такое связные списки,

I> что такое итераторы, коллекции и уметь рекурсию.
I>Решение обычно в строчек 10.
в 10 строчек? а оно работает? а что если структура списка повреждена и мы ходим кругами? в рекурсии мы вообще отвалимся по исключению об исчерпании стека, которое никто толком не умеет обрабатывать (там хитрая махинация с атрибутами страниц требуется). помечать уже пройденные элементы можно, но тут встает вопрос о работе в многопоточной среде... в общем, если делать это _правильно_ то я не вижу решения короче 100 строк.

I>Специфика проекта — часто нужно иметь дело с обходом сложных структур.

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

I>>>Показывает как и чем человек интересуется.

М>>или какого он о себе мнения. вот, например, foo(a, b){return a+b;} интересная фича или нет?
I>Ели этот код работает, то да, интересно
а он работает? ну да, он по стандарту. компиляторы компилят, но некоторые из них ругаются. ругательство это не ошибка, но стоит ли оно экономии 12 букв? на программах из 100 строк -- возможно, и стоит, а так -- нет ИМХО.

I>Если чел знает это и может объяснить, стало быть интерес есть, я так считаю.

проблема в том, что считать фичей, а что само разумеется. например, если я знаю, что компилятор не оптимизирует обращения к переменным, передамнным через указатели и потому копированих их в локальные переменные нужно делать самостоятельно -- говорить об этом или нет? если говорить -- меня за дурака примут. если не говоить -- за пионера. а вот вынос инваринтов в стиле for (a=0;a<strlen(s);a++) это уже фича. большинство компиляторов распознает библиотечную функцию и вынесет ее как инваринт, хотя это и против стандарта, т.к. strlen может иметь некий побочный эффект неизвестный компилятору (ну грубо говоря туда впихнули глобальную переменную аля счетчик вызовов), но компилятор все-таки рискует и выносит. а потому for (a=0, len=strlen(s); a < len; a++) писать скорее вредно, чем полезно. выигрыша никакого, а наглядность теряется. но... чтобы такое говорить, я должен быть в курсе уровня подготовки того, кто меня интервьирует, ибо если он со мной не согласится, а ассемблерный листинг компилятора для него не вещдок, то зачем мне выпедриваться?

вообще, фичи и трюки это больной (во всяком случае для меня) вопрос. у меня глаза на лоб полезли когда мои более опытные коллеги уже далеко не юнешского возраста не могли понять как у меня работает "return *(dst + i) = 0, i;" и не верили, что тут все по стандарту и что это совсем не трюк.

М>>или я не совсем понимаю, что такое фичи?

I>Я вообще больше про дотнет. Некоторые например увидев лямбды чуть не взахлёб рассказывают как это круто
я считал, что фичи это нечто такое, что работает, но о чем мало кто знает. например, if (foo()) bar(); легко трансформируется в (foo() && bar()).

а вот совсем не языковая фича: (x | 0x20). переводит английские буквы в нижний регистр. цифры не трогает. некоторые спецсимволы гробит, так что применяться может очень ограничено, но местами очень полезно (скажем, если нам нужно перевести hex-числа в int). и отношения к таким фичам у начальства бывает очень разное. от позитива -- вау, круто! до негатива -- на кой черт это трюкачество? ведь ни хвоста не понятно, что это вообще такое. даже с комментариями. а если завтра коллеги выдерут этот код и будут им обрабывать прозвольные текстовые строки, где не только цифры и буквы, оно же все развалиться. а писать в комментариях что это такое и как оно работает дольше, чем реализовать нормальное преобразование к нижнему регистру.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re: Еще о собеседованиях
От: kosmik Россия http://www.linkedin.com/in/kosmik
Дата: 16.07.10 17:41
Оценка: +1
Вообще в России даже среди так называемого среднего класса очень много людей, считающих что им все вокруг должны. Далеко не все в этом признаются, но ход мыслей это выдает.
Добавьте к этому то что среди сотрудников, достаточно удаленных от бизнеса компании, в частности среди программистов, настроение "компания мне должна это, это и вот это" распространено больше, чем в-среднем. Ну и отсутствие жизненного опыта, отсутствие понимания того как работают компании добавляет.
Re[8]: Еще о собеседованиях
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 16.07.10 19:27
Оценка:
Здравствуйте, мыщъх, Вы писали:

I>>Задача например преобразование связного списка в коллекцию.

М>а что такое коллекция? это что-то из NET'а? а это не слишком просто? обход дерева ИМХО в этом смысле дает больше инфы о кандидате.

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

Искать по три месяца на одну вакансию я как то не в восторге.

I>>Решение обычно в строчек 10.

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

Ну ты и маньяк. Я требую минимально-возможного решения.

М>а нестандартные решения принимаются?


А почему нет ?

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


Если он не согласится, то нахрена тебе туда идти ?

М>вообще, фичи и трюки это больной (во всяком случае для меня) вопрос. у меня глаза на лоб полезли когда мои более опытные коллеги уже далеко не юнешского возраста не могли понять как у меня работает "return *(dst + i) = 0, i;" и не верили, что тут все по стандарту и что это совсем не трюк.


Это что, зануление i-го эл-та и возврат i ? Такие конструкции пугают людей

М>я считал, что фичи это нечто такое, что работает, но о чем мало кто знает. например, if (foo()) bar(); легко трансформируется в (foo() && bar()).


Во — http://rsdn.ru/forum/cpp.applied/3775995.1.aspx
Автор: Ikemefula
Дата: 15.04.10




М>а вот совсем не языковая фича: (x | 0x20). переводит английские буквы в нижний регистр. цифры не трогает. некоторые спецсимволы гробит, так что применяться может очень ограничено, но местами очень полезно (скажем, если нам нужно перевести hex-числа в int).


Это пережиток ассемблерного детства
Re[9]: Еще о собеседованиях
От: мыщъх США http://nezumi-lab.org
Дата: 16.07.10 20:31
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, мыщъх, Вы писали:


I>Да, инфы даёт бОльше. Но вот обойти дерево могут далеко не все из тех, что справляются со списком.

и при этом у вас стоит задача обхода сложных структур?

I>Искать по три месяца на одну вакансию я как то не в восторге.

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

I> Ну ты и маньяк. Я требую минимально-возможного решения.

сижу, жую крендель и скриплю мозгами под стук клавы. коллега спрашивает над чем работаю. говорю, что дамплю JavaScript объекты от корня и ниже. коллега грит -- а чего такой скрипт стоит? это же просто! и показывает мне свое решение, которое тут же падает на первом тестовом примере в бесконечном рекурсивном спуске, ибо там: a.b.c = this. коллега фиксит это workaround'ом, но оно падает на a.b.c = a.b, ну а так действительно все просто

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

I>Если он не согласится, то нахрена тебе туда идти ?
ну меня же интервьирует не весь отдел. и, возможно, что с тем, кто меня пытает вообще пересекаться по работе не придется. более того, я на 100% не уверен, что при переходе на новый компилятор он не оставит strlen в теле цикла по тем или иным причинам...

М>>вообще, фичи и трюки это больной (во всяком случае для меня) вопрос. у меня глаза на лоб полезли когда мои более опытные коллеги уже далеко не юнешского возраста не могли понять как у меня работает "return *(dst + i) = 0, i;" и не верили, что тут все по стандарту и что это совсем не трюк.


I>Это что, зануление i-го эл-та и возврат i ? Такие конструкции пугают людей

они никогда комму до этого не использовали. вот и соображали что это такое и как оно работает, а я всего лишь поленился поставить скобки в конструкции а-ля if (something) { *(dst + i) = 0; return i;}. в приницпе я согласен, что return *(dst + i) = 0, i; чуть чуть менее наглядно, т.к. читая слева направо можно прочитать не то, что там написано. с другой стороны, информационная плотнось выше. на экран вмещается больше текста. а минус (про который им видимо не ведомо), что в конструкции a, b, c, d компилятор не могет менять порядок и потому оптимизация страдает в отличии от a; b; c; d; хотя "не могет" это по стандарту. оптимизаторам стандарт не указ и они сами анализируют зависимости и спокойно переставляют код.

М>>я считал, что фичи это нечто такое, что работает, но о чем мало кто знает.

М>>например, if (foo()) bar(); легко трансформируется в (foo() && bar()).
I>Во — http://rsdn.ru/forum/cpp.applied/3775995.1.aspx
Автор: Ikemefula
Дата: 15.04.10

мы с вами одной крови

М>>а вот совсем не языковая фича: (x | 0x20). переводит английские буквы в нижний регистр. цифры не трогает. некоторые спецсимволы гробит, так что применяться может очень ограничено, но местами очень полезно (скажем, если нам нужно перевести hex-числа в int).


I>Это пережиток ассемблерного детства

это лень (двигатель прогресса). просто в лом писать кучу проверок на диапазоны. зато потом. если мне нужно сравнить x с '\\' я пишу: x |= 0x20; ... if (x == '|'). мне говорят -- у тебя баг. я -- это не баг, это фича. они -- нет, это не фича, а баг, т.к. тут '\\'. я говорю -- после перевода в нижний регистр у меня '\\' превращается в '|'. они отваливаются по исключению мозга. хотя они правы, конечно. такое лихачество приводит к проблеммам, т.к. ни для кого ни очевидно, что '\\' это '|'.

но вообще да, ассемблерное детство. по скорости 0x20 _намного_ быстрее особенно если нам нужно пробежаться по очень длинному буферу в поисках строки типа 'hTtP://' то выигрыш в скорости оказывается заметен даже без хронометра.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[10]: Еще о собеседованиях
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 17.07.10 03:21
Оценка:
Здравствуйте, мыщъх, Вы писали:

I>>Здравствуйте, мыщъх, Вы писали:


I>>Да, инфы даёт бОльше. Но вот обойти дерево могут далеко не все из тех, что справляются со списком.

М>и при этом у вас стоит задача обхода сложных структур?

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

М>>>я считал, что фичи это нечто такое, что работает, но о чем мало кто знает.

М>>>например, if (foo()) bar(); легко трансформируется в (foo() && bar()).
I>>Во — http://rsdn.ru/forum/cpp.applied/3775995.1.aspx
Автор: Ikemefula
Дата: 15.04.10

М>мы с вами одной крови

На самом деле я учился программировать на твоих постах в фидо лет не знаю сколько назад.

Так шта неудивительно
Re[2]: Еще о собеседованиях
От: avpavlov  
Дата: 17.07.10 13:42
Оценка: +1
P>Потому что приходится тратить тучу времени, переться на собеседования, чтобы только там узнать о неадекватности работодателя.

Спроси перед поездкой, о чём будет идти речь на собеседовании, сколько времени оно предположительно займёт.
Re: Еще о собеседованиях
От: wety Россия  
Дата: 19.07.10 04:48
Оценка:
Здравствуйте, Ytz, Вы писали:

При вот таких неадекватных требованиях даже до собеседования дела не дойдёт. А таких гнилых вакансий сейчас полно.
Я даже более, чем уверен, что и зарплата тоже будет неадекватно низкой в данной компании.
Re[2]: Еще о собеседованиях
От: avpavlov  
Дата: 19.07.10 08:07
Оценка: +1
Вакансия, кстати, создана путём копирования чьего-то резюме

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

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

А Вы просто не посылайте отклик и всё — это же рынок, и он сам прийдёт в равновесное состояние, будете Вы пыхтеть на форуме или нет.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.