Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 22:34
Оценка:
Здравствуйте, Konstantin.Nizhegorodov, Вы писали:

DDI>>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку


KN>Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким кодом.


поделись пожалуйста результами, сколько как решает, подсказываешь ты им, где спотыкаются, какие ошибки делают, кто чаще сваливается ?
задача все таки олимпиадная у школьников
Re[27]: C# - как проводить собеседование ?
От: Vzhyk  
Дата: 06.11.07 22:38
Оценка: 4 (1)
Dan Dare III wrote:
>
>
> KN>Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким
> кодом.
>
> поделись пожалуйста результами, сколько как решает, подсказываешь ты им,
> где спотыкаются, какие ошибки делают, кто чаще сваливается ?
> задача все таки олимпиадная у школьников
Я, в частности, когда мне оное подсунули, развернулся и ушел.
И абсолютно доволен этим решением.

P.S. Как говориться, каждый сам себе злобный буратино.
Posted via RSDN NNTP Server 2.1 beta
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 23:05
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Обход дерева. Например посчитать количество листовых узлов. Можно использовать XML DOM.


а как быть с теми кто не знает xml dom
таких полно среди студентов и выпускников а они самые ценные кандидаты
а технологии это вторично у нас

DDI>>от кандидата годится любой код на C# если это проверка на симметричность если выполняются два условия — рекурсия + работоспособность

G>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает.

да именно так и есть мнение что это показывает наличие
умения алгоритмы придумывать
умения алгоритмы реализовывать


G>Если рекурсия так важна в вашей работе, то возьмите какую-либо задачу, решаемую только рекурсией, упростите так чтобы влезала в 15-20 строк.


со строчкой все просто — написал "а б с d e" и отмечай себе рекурсию
если задача про поиск пути то надо рисовать это
если башни надо рисовать все это
Re[17]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 23:08
Оценка:
Здравствуйте, egaron, Вы писали:

E>Я имел в виду (и выведу), что без набора кода в студии зевнуть "=" вместо == — раз плюнуть. А потом собеседователь будет делать долгоиграющие выводы, делая вид что не понимает очепятки.


над такими ошибками не нужно париться
никто не заинтересован придираться к мелочам что бы завалить
Re[16]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 23:16
Оценка:
Здравствуйте, egaron, Вы писали:

E>Может он в институте изучал, на лабах. Там такие вещи не рассказывают.


меня это не интересует написал в резюме будь добр ответить на это хотя бы почитай

E>Я так понимаю, он вписал "винФормз", а не "эксперт по винформз". А это может значит что угодно — от "когда-то юзал" до уровня эксперта.


я не понимаю вопрос как добиться выполнения метода по нажатию на батон тянет на эксперта ?

E>1) качественный код != расширяемый.

E>2) то что понимают под "качественным кодом", таковым на самом деле не является.

сформулируй критерии качества сначала свои а потом спроси про наши и сравнишь

E>Иногда в стремлении к якобы качественному коду нагромождаются десятки уровней абстракции, используются какие-то ненужные библиотеки и визарды (лишь бы было по идеологии МС), а надо ли оно ?


покажи где я про абстракции говорил ?

E>потом такой качественный код приходится приводить в действительно качественный (по рациональности), притом не нарушая принятой архитектуры. А добавленное при таком кодировании в таблицу поле при таком подходе порождает полдня работы над объектной моделью. и самого кода-то нет, есть только нагромождение абстракций, по большей части малонужных. ну, и зато хмл-комменты везде написаны )))


качественный код и качественная архитектура и качественный дизайн это разные вещи



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


DDI>>изощренного знания технологии не требуется от кандидата. хочется иметь гарантию что он освоит хотя бы необходимый минимум


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



DDI>>освоит, только у студедента потенциал выше, интерес есть в наличи, есть азарт, качество кода и знания не хуже а ЗП вдвое ниже


E>вот в чем ключ-то. не хотим платить ЗП. хотим подешевле, да посердитее. студент освоит и уйдет. ах да, он же качественный код оставит за собой, для следующих студентов )))



DDI>>плохого ничего нет с этим для разовых проектов он подходит у нас таких нет

DDI>>для длинных его брать себе дороже здесь все недочеты вылазят в каждой новой версии как говно по весне


E>вылазят в любых проектах, что длинных что коротких.



DDI>>если человек говорит честно, что не сталкивался, это показатель профессионального подхода к делу — говорит значит о том, что знает.


E>есть еще боязнь излишнего количества "не сталкивался" (когда возникнет вопрос — а с чем сталкивался-то ?), есть надежда, что угадайкой наведете на мысль и он вспомнит забытое ....мало ли что. Не оправдываю угадайку, гнусная она вещь, но мотивы могу понять.

E>Во всяком случае, помню как сам на собеседовании не написал довольно sql-запрос, точно такой же, какой писал буквально каждый день, и даже таблицы были той же структуры. точнее написал, но криво и менее рационально. так что фактор страха тоже следует не забывать.

DDI>>не люблю угадайщиков — код на авось он в следующей версии вылезет как говно весной


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

DDI>>а рабочее время на что ?

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


DDI>>для информации — 6-6 + 0.5 бала за интерес, т.е. 6.5-6 это повод рекомендовать на прием


E>ну что ж, пожелаем ему удачи. и чтоб не икалось, а то все кости бедолаге перемыли.
Re[16]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 23:27
Оценка:
Здравствуйте, egaron, Вы писали:

E>вот в чем ключ-то. не хотим платить ЗП. хотим подешевле, да посердитее. студент освоит и уйдет. ах да, он же качественный код оставит за собой, для следующих студентов )))


да цинично согласен

E>есть еще боязнь излишнего количества "не сталкивался" (когда возникнет вопрос — а с чем сталкивался-то ?), есть надежда, что угадайкой наведете на мысль и он вспомнит забытое ....мало ли что. Не оправдываю угадайку, гнусная она вещь, но мотивы могу понять.


мотивы и я понимаю, только одни себя удерживают от этого, другие не могут контролировать

E>Во всяком случае, помню как сам на собеседовании не написал довольно sql-запрос, точно такой же, какой писал буквально каждый день, и даже таблицы были той же структуры. точнее написал, но криво и менее рационально. так что фактор страха тоже следует не забывать.


учитывается обязательно

E>в рабочее время можно заниматься теорией ?


конечно, когда изучаешь тему, то экономишь время
для этого процесс должен быть поставлен
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 23:30
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Вы лет 10-15 назад информатику в вузе не преподавали?


не преподавал но экзаменационные задачи у студентов проверял
был отстранен за то что слишком много хороших оценок поставил а бюджетные деньги их экономить надо
Re[28]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 23:40
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Я, в частности, когда мне оное подсунули, развернулся и ушел.

V>И абсолютно доволен этим решением.

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

задача простая там 10 строчек со скобками а ты вот ушел — хорошо ты себя не показал

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


если тебя куда то не пригласили на собеседование
— если ты проходил и по направлению и по ЗП и по должности это оно и есть
Re[25]: C# - как проводить собеседование ?
От: Кэр  
Дата: 07.11.07 01:04
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>Здравствуйте, The Lex, Вы писали:


TL>>Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)


DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку


Да пожалуйста: вывести все перестановки заданной строки, решение с рекурсией самое простое, но часто не самое разумное — заодно можно это обсудить.
Еще: для заданного числа n вывести все правильные сочетания скобок '(' и ')' — имеется ввиду, что на выходе будут строки, в которых n открывающих скобок и n закрывающих, например, для 2 это будет: ()(), (())
Если подумаете — уверен, что придумаете еще. Если не придумаете — уверен, что сможете найти в интернете. Если еще подумаете — поймете, что программирование не упирается в рекурсию
Re[27]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 07.11.07 06:48
Оценка: 4 (1) -1
Здравствуйте, Dan Dare III, Вы писали:

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


G>>Обход дерева. Например посчитать количество листовых узлов. Можно использовать XML DOM.


DDI>а как быть с теми кто не знает xml dom

DDI>таких полно среди студентов и выпускников а они самые ценные кандидаты
Деревьев мало в этой жизни чтоли? Хотябы простое бинарное дерево. Думаю уж с алгоритмами обхода все вупускники знакомы

DDI>а технологии это вторично у нас

И чем же вы таким занимаетесь?


DDI>>>от кандидата годится любой код на C# если это проверка на симметричность если выполняются два условия — рекурсия + работоспособность

G>>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает.

DDI>да именно так и есть мнение что это показывает наличие

DDI>умения алгоритмы придумывать
DDI>умения алгоритмы реализовывать

Очень пагубный путь. Можете взять человека, который будет заниматься придумыванием новых алгоритмов, вместо реализации существующих.
Вам всетаки кодер нужен или кто?
Re[29]: C# - как проводить собеседование ?
От: Vzhyk  
Дата: 07.11.07 08:55
Оценка: 3 (2)
Dan Dare III wrote:
>
> V>Я, в частности, когда мне оное подсунули, развернулся и ушел.
> V>И абсолютно доволен этим решением.
>
> а я бы на твоем месте не был бы так уверен — досиди до конца, скажи что
> не можешь написать
А зачем. Есть много фирм, на которых я работать буду, только если
заплатят раз в 10 больше, чем имею сейчас. Еси им нравиться тратить
время на подобное, это их проблемы. В такой фирме я все одно не смогу
работать.

>

> задача простая там 10 строчек со скобками а ты вот ушел — хорошо ты себя
> не показал
Отвечу пословицей: "Всем мил не будешь"

>

> слухт они впереди тебя идут
Ну да. И это хорошо.

> многие фирмы имеют обыкновение обмениваться информацией "у тебя этот был

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

>

> если тебя куда то не пригласили на собеседование
> — если ты проходил и по направлению и по ЗП и по должности это оно и есть
Не было такого.
Вот собеседование не всегда проходил, это было, по молодости по знаниям
и опыту, да и давно это было, потом не строговывались.
Posted via RSDN NNTP Server 2.1 beta
Re[27]: C# - как проводить собеседование ?
От: Dog  
Дата: 07.11.07 09:09
Оценка:
DDI>таких полно среди студентов и выпускников а они самые ценные кандидаты

G>>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает.

DDI>да именно так и есть мнение что это показывает наличие
DDI>умения алгоритмы придумывать
DDI>умения алгоритмы реализовывать
Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[25]: C# - как проводить собеседование ?
От: Dog  
Дата: 07.11.07 09:09
Оценка:
Dog>>Это лишь ваше представлениие о написании кода.
DDI>конечно мое твое представление применить не могу потому что ничего об этом не знаю
Так вот откуда ростут ноги у вашей "психологии" (а надо бы знать )

DDI>скажи пожалуйста ты с подобными задачами сталкивался на собеседовании ?

Да сталкивался неоднократно. Что-то решал, что-то нет. Я так и не понял какие знания от меня хотели на этих задачках. (...может кроме понимания рекурсии). Большинство алгоритмов, с которыми за последние годы я сталкивался, реализовывались конечными автоматами. Сам когда-то давал такие задачки кандидатам, но, судя по ответной реакции да и последующим результатам, быстро разачаровался. Можно давать такие задачки кандидатам без или с малым опытом, но если человек проработал пару лет, то смысла не вижу.
Гораздо эффективнее создать кандидату номальную, спокойную, дружественную обстановку, что бы он мог расслабится и отвечать своими словами. Написание программ на бумажке с "тремя жизнями" на нормальные условия ни как не тянет.
Проведение "стрессового" собеседования может практиковаться начальником или кадровиком. Ведь это именно их работа оценивать психологическое состояние кандидата, а не ваша.

Dog>>Всё что, для меня, будет написано через (_._) будет проверятся дебагером, а ещё лучше тестами. Пусть даже там 3 строчки. А проявление "преждевременной оптимизации" и есть — через (_._)

DDI>если не ты писал код — это нормально
Нормально — это если не я писал, не я буду править и вообще я этого не видел. Тогда это нормально

DDI>если написано без ошибок и без лишних трат времени то это алгоритм

DDI>если с ошибками или/и лишними тратами времени это преждевременная оптимизация
Уууу... Преждевременная оптимизация это и есть написание как раз вот таких алгоритмических "велосипедов", что и ведёт к усложнению кода, потерям времени, возникновению ошибок и т.д. про отладку и поддержку вообще молчу.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[28]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 07.11.07 11:03
Оценка:
Здравствуйте, Dog, Вы писали:

DDI>>умения алгоритмы придумывать

DDI>>умения алгоритмы реализовывать
Dog>Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели.

а самые полезные — менеджеры, да?
Люди, я люблю вас! Будьте бдительны!!!
Re[8]: C# - как проводить собеседование ?
От: Andrew S Россия http://alchemy-lab.com
Дата: 07.11.07 12:32
Оценка: 4 (1) :)
AVK>>>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит.
DDI>>не понял идею
DDI>>как быть если человек не знает паттернов но отличный каркасс строит, работать легко и удобно
DDI>>рядом со мной таких двое
Dog>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают


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

(c) классика
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[9]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 07.11.07 13:22
Оценка:
Здравствуйте, Andrew S, Вы писали:

Dog>>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают


AS>

AS>На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и
AS>устаревшую, но довольно верную защиту Филидора.

AS>(c) классика

Аналогия интересная, однако же кич по поводу "знания паттернов проектирования" резко негативно воспринимается, когда, наконец, просто прочитаешь все эти паттерны, и увидишь, что все это "новое" — не иначе как "хорошо забытое старое" и вообще часто такие "бояны", что такую вот мелочь (скажем, тот же double check) громко назвать "паттерном проектирования" — это как-то... А потом приходит какой-нибудь, простите, юнец, который не играл ни одной партии, но, тем ни менее, хорошо знает слова "испанская партия" и "защита Филидора" — и о чем это говорит?
Голь на выдумку хитра, однако...
Re[17]: C# - как проводить собеседование ?
От: Eugeny__ Украина  
Дата: 07.11.07 16:12
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>задача про симметрию только для собеседования

DDI>задача много чего о человеке рассказывает, очень много

Можно узнать, что в этой задаче такого, что будет рассказывать о человеке?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[21]: C# - как проводить собеседование ?
От: Eugeny__ Украина  
Дата: 07.11.07 22:22
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

Это как раз "угадай, что хотели".

DDI>13 строчек


DDI>
DDI>        static bool IsSymmetric(string s)
DDI>        {
DDI>            // null пусть будет симметричным

А по-моему, если уж проверять, то лучше кинуть NPE
C чего это NULL симметричен? К NULL данная операция неприменима.
DDI>            if (s == null)
DDI>                return true;

DDI>            int length = s.Length;

DDI>            // если длинна 1 или 0 значит уже симметрично
DDI>            if (length <= 1)
DDI>                return true;

DDI>            // сюда придет строка длинной 2 и выше
DDI>            if (s[0] != s[length - 1])
DDI>                return false;

DDI>            // оптимизация

Оптимизация? Круто.
DDI>            if (length <= 3)
DDI>                return true;

DDI>            // здесь длинна будет только 4 и выше

Здесь можно бы было бы куда больше прооптимизировать.
Каждый сабстринг создает новую копию строки.
Так что было бы выгоднее создать метод IsSymmetric(string s, int start, int end) и сравнивать чары
DDI>            return IsSymmetric(s.Substring(1, length - 2));
DDI>        }
DDI>


Вобщем, смысла данного задания я не вижу.

1. Если нужна просто понятная реализация — Ромашка привел гораздо более простой вариант(обычно так и нужно, врядли где такое сравнение будет узким местом). Кстати, таки вариант Ромашки куда быстрее.
2. Если нужна таки скорость — рекурсия и сабстринг сожрут всю оптимизацию. То есть, само задание не предполагает, что нужна скорость.


Вобщем, я бы в страшном сне не написал ТАК проверку на симметричность.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[22]: C# - как проводить собеседование ?
От: Dog  
Дата: 08.11.07 00:19
Оценка:
E__>Вобщем, смысла данного задания я не вижу.
E__>1. Если нужна просто понятная реализация — Ромашка привел гораздо более простой вариант(обычно так и нужно, врядли где такое сравнение будет узким местом). Кстати, таки вариант Ромашки куда быстрее.
E__>2. Если нужна таки скорость — рекурсия и сабстринг сожрут всю оптимизацию. То есть, само задание не предполагает, что нужна скорость.
Нужно ни то и ни другое. Нужно посмотреть понимает ли человек рекурсию и посмотреть как он думает. Всё.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 08.11.07 11:36
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Да пожалуйста: вывести все перестановки заданной строки, решение с рекурсией самое простое, но часто не самое разумное — заодно можно это обсудить.


а как быть с теми кто комбинаторики не знает это ведь невостребованая часть математики

Кэр>Если подумаете — уверен, что придумаете еще. Если не придумаете — уверен, что сможете найти в интернете. Если еще подумаете — поймете, что программирование не упирается в рекурсию


если ты перечитаешь этот топик то поймешь что я даю задачи не только на рекурсию

условие задачи должно быть очень простым, не должно требовать специальных знаний, специальной практики , задача должна быть решена в 15 минут

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