Здравствуйте, Konstantin.Nizhegorodov, Вы писали:
DDI>>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
KN>Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким кодом.
поделись пожалуйста результами, сколько как решает, подсказываешь ты им, где спотыкаются, какие ошибки делают, кто чаще сваливается ?
задача все таки олимпиадная у школьников
Dan Dare III wrote: > > > KN>Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким > кодом. > > поделись пожалуйста результами, сколько как решает, подсказываешь ты им, > где спотыкаются, какие ошибки делают, кто чаще сваливается ? > задача все таки олимпиадная у школьников
Я, в частности, когда мне оное подсунули, развернулся и ушел.
И абсолютно доволен этим решением.
P.S. Как говориться, каждый сам себе злобный буратино.
Здравствуйте, gandjustas, Вы писали:
G>Обход дерева. Например посчитать количество листовых узлов. Можно использовать XML DOM.
а как быть с теми кто не знает xml dom
таких полно среди студентов и выпускников а они самые ценные кандидаты
а технологии это вторично у нас
DDI>>от кандидата годится любой код на C# если это проверка на симметричность если выполняются два условия — рекурсия + работоспособность G>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает.
да именно так и есть мнение что это показывает наличие
умения алгоритмы придумывать
умения алгоритмы реализовывать
G>Если рекурсия так важна в вашей работе, то возьмите какую-либо задачу, решаемую только рекурсией, упростите так чтобы влезала в 15-20 строк.
со строчкой все просто — написал "а б с d e" и отмечай себе рекурсию
если задача про поиск пути то надо рисовать это
если башни надо рисовать все это
Здравствуйте, egaron, Вы писали:
E>Я имел в виду (и выведу), что без набора кода в студии зевнуть "=" вместо == — раз плюнуть. А потом собеседователь будет делать долгоиграющие выводы, делая вид что не понимает очепятки.
над такими ошибками не нужно париться
никто не заинтересован придираться к мелочам что бы завалить
Здравствуйте, 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>ну что ж, пожелаем ему удачи. и чтоб не икалось, а то все кости бедолаге перемыли.
Здравствуйте, egaron, Вы писали:
E>вот в чем ключ-то. не хотим платить ЗП. хотим подешевле, да посердитее. студент освоит и уйдет. ах да, он же качественный код оставит за собой, для следующих студентов )))
да цинично согласен
E>есть еще боязнь излишнего количества "не сталкивался" (когда возникнет вопрос — а с чем сталкивался-то ?), есть надежда, что угадайкой наведете на мысль и он вспомнит забытое ....мало ли что. Не оправдываю угадайку, гнусная она вещь, но мотивы могу понять.
мотивы и я понимаю, только одни себя удерживают от этого, другие не могут контролировать
E>Во всяком случае, помню как сам на собеседовании не написал довольно sql-запрос, точно такой же, какой писал буквально каждый день, и даже таблицы были той же структуры. точнее написал, но криво и менее рационально. так что фактор страха тоже следует не забывать.
учитывается обязательно
E>в рабочее время можно заниматься теорией ?
конечно, когда изучаешь тему, то экономишь время
для этого процесс должен быть поставлен
Здравствуйте, gandjustas, Вы писали:
G>Вы лет 10-15 назад информатику в вузе не преподавали?
не преподавал но экзаменационные задачи у студентов проверял
был отстранен за то что слишком много хороших оценок поставил а бюджетные деньги их экономить надо
Здравствуйте, Vzhyk, Вы писали:
V>Я, в частности, когда мне оное подсунули, развернулся и ушел. V>И абсолютно доволен этим решением.
а я бы на твоем месте не был бы так уверен — досиди до конца, скажи что не можешь написать
задача простая там 10 строчек со скобками а ты вот ушел — хорошо ты себя не показал
слухт они впереди тебя идут
многие фирмы имеют обыкновение обмениваться информацией "у тебя этот был ? был, ну как ? ушел с середины собеседования" или на уровне отделов кадров или на уровне пм или на уровне девелоперов если там есть знакомые
если тебя куда то не пригласили на собеседование
— если ты проходил и по направлению и по ЗП и по должности это оно и есть
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, The Lex, Вы писали:
TL>>Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)
DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
Да пожалуйста: вывести все перестановки заданной строки, решение с рекурсией самое простое, но часто не самое разумное — заодно можно это обсудить.
Еще: для заданного числа n вывести все правильные сочетания скобок '(' и ')' — имеется ввиду, что на выходе будут строки, в которых n открывающих скобок и n закрывающих, например, для 2 это будет: ()(), (())
Если подумаете — уверен, что придумаете еще. Если не придумаете — уверен, что сможете найти в интернете. Если еще подумаете — поймете, что программирование не упирается в рекурсию
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, gandjustas, Вы писали:
G>>Обход дерева. Например посчитать количество листовых узлов. Можно использовать XML DOM.
DDI>а как быть с теми кто не знает xml dom DDI>таких полно среди студентов и выпускников а они самые ценные кандидаты
Деревьев мало в этой жизни чтоли? Хотябы простое бинарное дерево. Думаю уж с алгоритмами обхода все вупускники знакомы
DDI>а технологии это вторично у нас
И чем же вы таким занимаетесь?
DDI>>>от кандидата годится любой код на C# если это проверка на симметричность если выполняются два условия — рекурсия + работоспособность G>>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает.
DDI>да именно так и есть мнение что это показывает наличие DDI>умения алгоритмы придумывать DDI>умения алгоритмы реализовывать
Очень пагубный путь. Можете взять человека, который будет заниматься придумыванием новых алгоритмов, вместо реализации существующих.
Вам всетаки кодер нужен или кто?
Dan Dare III wrote: > > V>Я, в частности, когда мне оное подсунули, развернулся и ушел. > V>И абсолютно доволен этим решением. > > а я бы на твоем месте не был бы так уверен — досиди до конца, скажи что > не можешь написать
А зачем. Есть много фирм, на которых я работать буду, только если
заплатят раз в 10 больше, чем имею сейчас. Еси им нравиться тратить
время на подобное, это их проблемы. В такой фирме я все одно не смогу
работать.
> > задача простая там 10 строчек со скобками а ты вот ушел — хорошо ты себя > не показал
Отвечу пословицей: "Всем мил не будешь"
> > слухт они впереди тебя идут
Ну да. И это хорошо.
> многие фирмы имеют обыкновение обмениваться информацией "у тебя этот был > ? был, ну как ? ушел с середины собеседования" или на уровне отделов > кадров или на уровне пм или на уровне девелоперов если там есть знакомые
Ну и хорошо, соответсвенно сами отсеваются до собеседований.
> > если тебя куда то не пригласили на собеседование > — если ты проходил и по направлению и по ЗП и по должности это оно и есть
Не было такого.
Вот собеседование не всегда проходил, это было, по молодости по знаниям
и опыту, да и давно это было, потом не строговывались.
DDI>таких полно среди студентов и выпускников а они самые ценные кандидаты
G>>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает. DDI>да именно так и есть мнение что это показывает наличие DDI>умения алгоритмы придумывать DDI>умения алгоритмы реализовывать
Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели.
Dog>>Это лишь ваше представлениие о написании кода. DDI>конечно мое твое представление применить не могу потому что ничего об этом не знаю
Так вот откуда ростут ноги у вашей "психологии" (а надо бы знать )
DDI>скажи пожалуйста ты с подобными задачами сталкивался на собеседовании ?
Да сталкивался неоднократно. Что-то решал, что-то нет. Я так и не понял какие знания от меня хотели на этих задачках. (...может кроме понимания рекурсии). Большинство алгоритмов, с которыми за последние годы я сталкивался, реализовывались конечными автоматами. Сам когда-то давал такие задачки кандидатам, но, судя по ответной реакции да и последующим результатам, быстро разачаровался. Можно давать такие задачки кандидатам без или с малым опытом, но если человек проработал пару лет, то смысла не вижу.
Гораздо эффективнее создать кандидату номальную, спокойную, дружественную обстановку, что бы он мог расслабится и отвечать своими словами. Написание программ на бумажке с "тремя жизнями" на нормальные условия ни как не тянет.
Проведение "стрессового" собеседования может практиковаться начальником или кадровиком. Ведь это именно их работа оценивать психологическое состояние кандидата, а не ваша.
Dog>>Всё что, для меня, будет написано через (_._) будет проверятся дебагером, а ещё лучше тестами. Пусть даже там 3 строчки. А проявление "преждевременной оптимизации" и есть — через (_._) DDI>если не ты писал код — это нормально
Нормально — это если не я писал, не я буду править и вообще я этого не видел. Тогда это нормально
DDI>если написано без ошибок и без лишних трат времени то это алгоритм DDI>если с ошибками или/и лишними тратами времени это преждевременная оптимизация
Уууу... Преждевременная оптимизация это и есть написание как раз вот таких алгоритмических "велосипедов", что и ведёт к усложнению кода, потерям времени, возникновению ошибок и т.д. про отладку и поддержку вообще молчу.
Здравствуйте, Dog, Вы писали:
DDI>>умения алгоритмы придумывать DDI>>умения алгоритмы реализовывать Dog>Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели.
AVK>>>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит. DDI>>не понял идею DDI>>как быть если человек не знает паттернов но отличный каркасс строит, работать легко и удобно DDI>>рядом со мной таких двое Dog>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают
На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и
устаревшую, но довольно верную защиту Филидора.
Здравствуйте, Andrew S, Вы писали:
Dog>>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают
AS>
AS>На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и
AS>устаревшую, но довольно верную защиту Филидора.
AS>(c) классика
Аналогия интересная, однако же кич по поводу "знания паттернов проектирования" резко негативно воспринимается, когда, наконец, просто прочитаешь все эти паттерны, и увидишь, что все это "новое" — не иначе как "хорошо забытое старое" и вообще часто такие "бояны", что такую вот мелочь (скажем, тот же double check) громко назвать "паттерном проектирования" — это как-то... А потом приходит какой-нибудь, простите, юнец, который не играл ни одной партии, но, тем ни менее, хорошо знает слова "испанская партия" и "защита Филидора" — и о чем это говорит?
Здравствуйте, Dan Dare III, Вы писали:
DDI>задача про симметрию только для собеседования DDI>задача много чего о человеке рассказывает, очень много
Можно узнать, что в этой задаче такого, что будет рассказывать о человеке?
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
А по-моему, если уж проверять, то лучше кинуть 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) и сравнивать чары
1. Если нужна просто понятная реализация — Ромашка привел гораздо более простой вариант(обычно так и нужно, врядли где такое сравнение будет узким местом). Кстати, таки вариант Ромашки куда быстрее.
2. Если нужна таки скорость — рекурсия и сабстринг сожрут всю оптимизацию. То есть, само задание не предполагает, что нужна скорость.
Вобщем, я бы в страшном сне не написал ТАК проверку на симметричность.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
E__>Вобщем, смысла данного задания я не вижу. E__>1. Если нужна просто понятная реализация — Ромашка привел гораздо более простой вариант(обычно так и нужно, врядли где такое сравнение будет узким местом). Кстати, таки вариант Ромашки куда быстрее. E__>2. Если нужна таки скорость — рекурсия и сабстринг сожрут всю оптимизацию. То есть, само задание не предполагает, что нужна скорость.
Нужно ни то и ни другое. Нужно посмотреть понимает ли человек рекурсию и посмотреть как он думает. Всё.
Здравствуйте, Кэр, Вы писали:
Кэр>Да пожалуйста: вывести все перестановки заданной строки, решение с рекурсией самое простое, но часто не самое разумное — заодно можно это обсудить.
а как быть с теми кто комбинаторики не знает это ведь невостребованая часть математики
Кэр>Если подумаете — уверен, что придумаете еще. Если не придумаете — уверен, что сможете найти в интернете. Если еще подумаете — поймете, что программирование не упирается в рекурсию
если ты перечитаешь этот топик то поймешь что я даю задачи не только на рекурсию
условие задачи должно быть очень простым, не должно требовать специальных знаний, специальной практики , задача должна быть решена в 15 минут
в интернете я искать умею отлично — многое пробую но не много подходит под требования выше