Здравствуйте, Ромашка, Вы писали:
Р>Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была Р>действительно нужна? Ну или хотя-бы не тормозила жутко?
F>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
Интересно, я вроде бы работаю с .NET уже года 4, если не 5, но если мне сейчас начать задавать вопросы про вышеперечисленные материи, то боюсь, что не смогу пройти собеседование. Хотя:
1. С GC когда-то разбирался... Более того, даже лазил в исходниках, когда нужно было выяснить, почему GC + Generics + ComVisible + AppDomains в некоторых случаях даёт довольно страшный результат.
2. Когда-то отлично понимал MS IL (даже знал чем отличается call от callvirt и почему компилятор C# всегда генерирует callvirt). Потом, правда появился Reflector, а про IL я забыл.
3. Мягкие ссылки когда-то использовал и когда-то разбирался с ними. Сейчас модуль, где они есть живёт и не вызывает никаких проблем. А про мягкие ссылки я вообще забыл (ничего про них не могу сказать).
4. Воскрешение не использовал никогда и не знаю что это такое.
В-общем, в .NET есть много потаёных мест, куда заглядываешь раз в 5 лет. И помнить всё это просто невозможно. Более того, это и не нужно. Хотя, почему-то многие люди считают, что лучше гордиться знаниями устройства GC, чем выполненными проектами. Это их право. Так же как и у меня есть право посылать таких на (...), когда они пытаются заяснить, что для того, чтобы считаться разработчиком нужно знать про "воскрешения".
А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых?
Здравствуйте, Dan Dare III, Вы писали:
AVK>>Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.
DDI>а какая версия C# ?
3.0. Но на 2.0 можно то же самое сделать, только писанины больше.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
PE>Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать.
Напоминаете мне профессоров из ВУЗов. Которые эти самые "простые вопросы" объясняли фразой "отсюда очевидно, что ...", но потом требовали у студентов доказывать эти "очевидные" истины.
Возможны два варианта:
1. Вы не совсем корректно представляете себе, что просто, и что сложно. Например, вы так долго работали с одной конкретной сложной технологией, так в нее погрузились, что для вас она стала простой. И, напротив, совсем не работаете с другой, простенькой, потому вам она кажется странной и сложной.
2. Вы ждете ответа на "простой" вопрос именно в той форме, в которой этот ответ содержится у вас в голове. Грубый pattern matching механизм Ну как у плохих преподавателей, которые дают лекции, и на экзамене требуют ответа в точности теми же словами, что они говорили на лекции. Для того, чтобы это обнаружить, надо просто... поприсутствовать на собеседовании в виде безмолвного человека, а собеседование пусть проведет ваш коллега. Просто посмотрите со стороны, как это происходит. Многое станет более ясным. Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит.
PE>Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать.
Имхо, проблема не людей, а ваша
PE>Понятно, что знание не означает умение, а умение не означает работу, а работа не означает знание PE>Тем не менее, кто как спрашивает по технической части ?
Из ощущуния последних пройденых собеседований. Не знаю как там отвечают, давно не собеседовал, а спрашивать не умеют точно. Большинство технических собеседований похожи на "назад в университет". Упор делается на знания, а не на понимание. В результате после прохождения 2-3 собеседований можешь спокойно, к примеру, нарисовать любую uml диаграмку из GoF`а, хотя из самих патттернов использовал дай бог половину, а сам uml и того реже.
Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы. Эт опозволит создать более комфортную обстановку. Не заставляйте человека долго обдумывать вопрос, задавайте наводящие вопросы, включайте его в обсуждение, общайтесь.
По поводу задачки на 15 мин на листочке со скобками. Это просто ОПА. Вы сами часто пишите код на листочке. Заметьте не наброски кода, а именно законченый код со скобочками да ещё с тремя жизнями Думаю большинство из нас довольно быстро забывают что такое ручка, рабочий инструмент у нас клавиатура Меня дико ломала необходимость писать на бумаге, даже программку из 4-5 строчек. При наличии компьера тоже не всё так гладко. Я без решарпера уже не могу и порою ловлю себя на том, что на голой студии задумываюсь над простыми вещами вроде синаксиса foreach Так что достаточно спросить именно решение. Программку из 10-15 строчек и её идею довольно просто описать словами. Зачем вводить человека в стрессовое состояние. Что вы хотите протестировать таким способом на техническом собеседовании ?
С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго.
PE>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ? Надо не спрашивать, а общаться с человеком.
зы. Хотя, зачем я вам всё это пишу. С опытом проведения собеседований 3-4 года, вы должы это и так знать
Здравствуйте, egaron, Вы писали:
E>Ну и молодец. Значит работал а не дурака валял или страуструпов читал. А паттерны — чего паттерны, реальность ставит все на свои места, и все равно какая-нить кривизна технологии (типа референсов в веб-сервисах, бээээ....) разрушит весь этот OOD к такой-то бабушке, особенно если сроки поджимают.
не понял. паттерны я не спрашивал. я их спрашиваю у тех кто их в резюме указывает.
забыл указать — он и виртуальных функций не знает. override для него в новинку это не ООД, это ООП и студенты в этом вопросе заткнут его за пояс
DDI>>Сказал, что осталась еще одна ошибка, тот исправил на s.substr(s.length,1)
E>эти "осталось одна ошибка" только нервируют и провоцируют на "угадайку". ну прям как дети — найди 10 отличий. вам кодер нужен или архитектор ?
спроси лучше что я задачей проверяю
DDI>>Спросил чем не понравилось s[s.length-1] услышал "Да, так тоже можно". E>а что, нельзя ?
можно, я не люблю трудночитаемый неэффективный код
строковые неточности больше всего на перформансе сказываются
DDI>>спросил про метод Remove. E>не помню точно, что будет, но кажись, ничего не изменится — ибо надо s = s.Remove(..) либо StringBuilder
если бы я услышал такой ответ,был бы рад просто — на полном серьезе без подколки
DDI>>SQL запрос составил легко E>и слава аллаху. а то многие современные кодерА паттерны знают , а пару таблиц сджойнить — проблема, а уж вменяемую хранимку написать — и пуще того.
потому и спрашиваю SQL
DDI>>с winforms засыпался, IDisposable "сталкивался", с эвентами чтото невнятное пробурчал E>типичный уровень моих коллег и вашего покорного слуги. ничуть не мешает писать вменяемые (и, надо сказать работающие по всей РФ и за ее пределами) проекты. Все равно то, что САМ реально не исопльзовал никогда, быстро вываливается из головы. Что использовал , кстати, тоже с ходу не вспомнишь. E>Так что выбирайте — вам шашечки или ехать ?
человек претендует на знание винформс при этом не знает что такое idisposable и event и много чего еще
зачем он это в резюме писал ? не знает — мог бы и сказать. а так — попытка обмануть
не знаешь — не пиши в резюме. на крайняк скажи честно — гуй писал мышом не вникая работает и ладно. а так получается что вписал для объёму
DDI>>теперь финал (перед этим были общие вопросы по нету, гц не спрашивал)
DDI>>
DDI>>
DDI>>DDI: -А если код "делается страшное" unmanaged ? E>открою секрет — в большинстве проектов нет такого зверя, как анмэнеджед код.
люди читающией мсдн или хоть чтото по специальности в курсе этого — это минимальный интерес
DDI>>- не пугливый, выглядел уверенно
E>Мое мнение — работает кодером (притом успешно), но видел в гробу это кодирование, рвется в ПМы или манагеры. И уверенно ответит на вопрос "кем вы видите себя в компании через 5 лет". разве это так уж лучше зашуганного кодера ?
Кодером работает успешно — зп как у девелопера но я не хочу работать с таким.
что ему доверить ? если свалит быстро, его ужасный код придется разгребать самим
E>Не всех прет корпеть над книгами о паттернах. а пресловутое "качество кода" вовсе не значит рациональность — в качественном коде рациональности обычно как раз ноль целых икс десятых. Качественный код — лишь услада глазам архитектора...
качественный код — это гарантия , что если кодер уйдет, его работа не пропадёт
это гарантия что сотрудничать будет легко, что его код я буду читать как свой
это гарантия что другие тоже легко читать
это показатель отношения к работе — халяву, авось и подобное не приветсвую
E>И еще — при работе над проектами, особенно крупными, бизнес-процесс затмевает детали технологии и изощреное знание технологии говорит лишь о том, что человек отягощен академическими знаниями, а не опытом работы.
изощренного знания технологии не требуется от кандидата. хочется иметь гарантию что он освоит хотя бы необходимый минимум
DDI>>- потенциально больше всего писал на vb, а не C# E>возможно. это не значит что он не освоит си.
освоит, только у студедента потенциал выше, интерес есть в наличи, есть азарт, качество кода и знания не хуже а ЗП вдвое ниже
DDI>>- любит сделать работу и забыть, не углубляясь E>А чт ов этом плохого ? вам нужен срыв сроков из-за сомнительно-гениальной объектной модели и собственног движка?
плохого ничего нет с этим для разовых проектов он подходит у нас таких нет
для длинных его брать себе дороже здесь все недочеты вылазят в каждой новой версии как говно по весне
DDI>>- пытался обхитрить с угадайкой E>значит будет хорошо работать с заказчиками, умение им впарить мозг одно из самых ценных.
он пытался обмануть потенциального сотрудника а не заказчика не плюй в колодец как говорится
на тесте "игра в кастомера" это было бы плюсом
если человек говорит честно, что не сталкивался, это показатель профессионального подхода к делу — говорит значит о том, что знает.
не люблю угадайщиков — код на авось он в следующей версии вылезет как говно весной
DDI>>- интереса к изучению чегото нового не распознал в нем E>возможно, после работы ему больше охота с девушками погулять, чем с загробным видом читать страусиного трупа.
а рабочее время на что ?
просто для тебя суммирую для наглядности
минусы
1 эвентов , 2 винформс, 3 idisposable ( гц смысла нет спрашивать), 4 исключений, 5 со строками не работал, 6 не знает override
7 начитанности и в помине нет , интерес не наблюдается
8 играет в угадайку
плюсы
общительный, SQL, задача про монетки, рекурсия
4-8 не в его пользу
для информации — 6-6 + 0.5 бала за интерес, т.е. 6.5-6 это повод рекомендовать на прием
Здравствуйте, Она На Нас Ий, Вы писали:
ОНН>Здравствуйте, Dog, Вы писали: Dog>>Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.
ОНН>А почему именно Рихтера из 5 Гига MSDN?
потому что Рихтер продается книгой это одна из сильнейших книг по нету
Здравствуйте, Ravlyk, Вы писали:
R>А вы в курсе что индексатор на каждый вызов делает проверку на вхождение индекса в границы. И операция эта занимает время? (В результате чего предложенные варианты без индексатора, но с болшей памятью работают быстрее).
А ты в курсе, что оптимизатор JIT такие проверки умеет устранять?
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dog, Вы писали:
ОНН>>Код знакомый... ОНН>>И логика автора уже тоже начинает набивать оскомину — если не знаешь про воскрешение, алгоритмы поиска, ОНН>>то в РФ тебе помереть с голоду... на улице в позоре и в страшных мучениях, ОНН>>чтобы страну не позорил Dog>Вообщето это ваша логика и лучше бы вы не позорились на всю страну своей телепатией. Dog>А моя логика проста. Одних голых знаний без понимания применения этих знаний недостаточно. А понимание это приходит с опытом. И вопросы на собеседовании вроде, "расскажите как работает GC" или "напишите код синглтона" и т.п. этого понимания не выявляют. Dog>А знание всех этих вещей, это как знание русского языка. Хотя конечно язык можно и не знать, тебя же и так понимают.
Хороший спец должен значть все о немногом, и немного обо всем.
Знать как работает ГЦ для разработки бизнес-апплиейшнов нужно не более, чем то, как собрать на транзисторах схему логического элемента "или -не". Но это не значит, что тот же программист не должен иметь даже общенго понятия о тех же транзисторах и логических элементах — каждый должен хотя бы интересоваться тем, КАК ЭТО ВСЕ РАБОТАЕТ. Естественно, спрашивать детали в таком случае — глупо.
Здравствуйте, Dan Dare III, Вы писали:
DDI>13 строчек
DDI>
DDI> static bool IsSymmetric(string s)
DDI> {
DDI> // 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 и выше
DDI> return IsSymmetric(s.Substring(1, length - 2));
DDI> }
DDI>
[Не думал что буду писать по-удаффски, но сдержаться не могу]
АФФТАР, убей себя аб стену!
Этот код в случае симметричной строки работает в 100 раз медленее варианта с Array.Reverse!!!!!!!
DDI>строковые неточности больше всего на перформансе сказываются
Да уж.
DDI>можно, я не люблю трудночитаемый неэффективный код
Этот код гораздо читаемее вариантов в 3 строчки?
DDI>но только если придешь на собеседование а то DDI>не хочу что бы ты как ромашка поступил
Нет уж, не надо. У меня есть работа, и на собеседовании никто не заставлял меня на бумаге писать рекурсию (кстати очень тяжелое занятие, потому что на бумаге пошаговая отладка не работает)
DDI>задача много чего о человеке рассказывает, очень много
Мне о вас очень много эти 13 строчек рассказли.
Здравствуйте, Dog, Вы писали:
Dog>Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ...
Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, gandjustas, Вы писали:
G>>Обход дерева. Например посчитать количество листовых узлов. Можно использовать XML DOM.
DDI>а как быть с теми кто не знает xml dom DDI>таких полно среди студентов и выпускников а они самые ценные кандидаты
Деревьев мало в этой жизни чтоли? Хотябы простое бинарное дерево. Думаю уж с алгоритмами обхода все вупускники знакомы
DDI>а технологии это вторично у нас
И чем же вы таким занимаетесь?
DDI>>>от кандидата годится любой код на C# если это проверка на симметричность если выполняются два условия — рекурсия + работоспособность G>>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает.
DDI>да именно так и есть мнение что это показывает наличие DDI>умения алгоритмы придумывать DDI>умения алгоритмы реализовывать
Очень пагубный путь. Можете взять человека, который будет заниматься придумыванием новых алгоритмов, вместо реализации существующих.
Вам всетаки кодер нужен или кто?
AVK>>>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит. DDI>>не понял идею DDI>>как быть если человек не знает паттернов но отличный каркасс строит, работать легко и удобно DDI>>рядом со мной таких двое Dog>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают
На третьем ходу выяснилось, что гроссмейстер играет восемнадцать испанских партий. В остальных двенадцати черные применили хотя и
устаревшую, но довольно верную защиту Филидора.
Здравствуйте, Dan Dare III, Вы писали:
DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
сопоставление с образцом (?*):
match (c:cs) ('?':ps) = match cs ps
match cs ('*':ps) | match cs ps = True
match (c:cs) ('*':ps) = match cs ps
match (c:cs) (p:ps) = c==p && match cs ps
match _ _ = False
Dan Dare III wrote: > > V>Я, в частности, когда мне оное подсунули, развернулся и ушел. > V>И абсолютно доволен этим решением. > > а я бы на твоем месте не был бы так уверен — досиди до конца, скажи что > не можешь написать
А зачем. Есть много фирм, на которых я работать буду, только если
заплатят раз в 10 больше, чем имею сейчас. Еси им нравиться тратить
время на подобное, это их проблемы. В такой фирме я все одно не смогу
работать.
> > задача простая там 10 строчек со скобками а ты вот ушел — хорошо ты себя > не показал
Отвечу пословицей: "Всем мил не будешь"
> > слухт они впереди тебя идут
Ну да. И это хорошо.
> многие фирмы имеют обыкновение обмениваться информацией "у тебя этот был > ? был, ну как ? ушел с середины собеседования" или на уровне отделов > кадров или на уровне пм или на уровне девелоперов если там есть знакомые
Ну и хорошо, соответсвенно сами отсеваются до собеседований.
> > если тебя куда то не пригласили на собеседование > — если ты проходил и по направлению и по ЗП и по должности это оно и есть
Не было такого.
Вот собеседование не всегда проходил, это было, по молодости по знаниям
и опыту, да и давно это было, потом не строговывались.
Здравствуйте, Dan Dare III, Вы писали:
G>>Первое решение, пришедшее в голову (предыдущий пост — прикол, хотел рассказ о себе услышать):
DDI>хочешь услышать рассказ мое мыло semen>>dot<kosobutski>a<gmail>dot<com DDI>но только если придешь на собеседование а то DDI>не хочу что бы ты как ромашка поступил
G>>Где тут применить РЕКУРСИЮ???
DDI>13 строчек
... поскипаны за ненужностью.
Ясно. Это именно то, о чем я сразу и сказал: "угадайте ответ, который я загадал" (к)
Такое себе "книжное употребление рекурсии в виде простого решения вырожденного варианта задачи и последовательного сведения рекурсией всех остальных вариантов к вырожденному". Имеет академическую ценность — практической ценности, как и подавляющие 100% таких вопросов, не имеет.
ЗЫ. А теперь вопрос на засыпку: у чем Ваш код неверен? А впрочем... таки да — наверное будет работать и это таки "оптимизация". Но этот код действительно ужасен! Надеюсь, Вы с этим согласны? Из этой конторы просто необходимо бежать, бежать, бежать! Потому что если такой код предлагают писать на собеседовании — что же они предложать писать в реальной работе!?
Здравствуйте, Dog, Вы писали:
Dog>>>Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы. PE>>Идейка весьма сильная ! Лучше психолога проф. рядом сажать. Dog>Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник. Было неплохое собеседование программист + начальник, так же интересно было с кадровиками у которых есть скил в психологии и которые не спрашивают тупо вопросы "какую пользу вы принесёте нашей компании". В независимости от результата, всегда остаются положительные эмоции, что мне кажется хорошо для собеседуемого и большой плюс компании.
Это прессинг, а не собеседование. Вам нужен сотрудник или подсудимый ?
Dog>>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
воскрешение ? А Великий Пост в дотнете есть или пасха ? а рождества там не предусмотрено ?
после этих "воскрешений" невольно задумываюсь — и почему это в нашем проекте только один класс имплементит IDisposable и ниче, все работает и заказчик доволен....
Здравствуйте, Dog, Вы писали:
Dog>Хм... так я вроде именно об этом и пишу
Ты пишешь о том, что незнание алгоритмов GC смертельно.
Dog>И как можно знать это и не представлять как работает GC ?
А какое отношение к GC имеет IDisposable и using?
Dog>Ммм... давайте вэб трогать не будем, десктопные приложения и второй фрэймворк. Если вы уж начали делить на смертельно не смертельно. Какие знания языка и платформы по вашему более критичны.
Т.е. я конечно тебе отвечу и бесплатно, но только на конкретные вопросы, а не на требование составить обзор.
Dog> Не надо делать обзоры, можно просто перечислить.
Перечислить это и есть обзор.
Dog> Нескольких будет вполне достаточно. Я не флэйма ради, интересно ваше мнение, раз уж вы ввязались в это
Ну как минимум надо знать базовые конструкции языка, вроде классов, структур и их различий, массивов, полиморфизма, интерфейсов, событий и делегатов. Надо знать концепцию потоков, понимать базовые моменты реализации string и для чего нужен StringBuilder, понимать что такое атрибуты и с чем их едят. Обязательно нужно представлять себе, что такое IEnumerable<T>, List<T> и Dictionary<K,V>, и знать временную сложность основных операций. Если предполагается использование многопоточности — понимать что такое поток, чем плох Thread.Abort, что такое lock и объекты синхронизации ядра, уметь работать с коллекциями, поддерживающими одного писателя и нескольких читателей одновременно, понимать как себя ведут энумераторы при параллельном доступе. Ну и т.д., в зависимости от области использования.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dan Dare III, Вы писали:
DDI>паттерны они растут из всего, но не из нета
Да при чем тут паттерны? Ну неужели сложно хотя бы о базовых понятиях типа DAL/BLL/PL знать общепринятую терминологию?
DDI>нетовских паттернов пока очень мало
При чем тут нетовские? Для собеседования, если уж мы о микродизайне заговорили, хватит знания таких слов как синглтон, посетитель, стратегия, фасад, фабрика. Что, на изучения этих слов не хватит часа чтения википедии? Неужели можно стать приличным архитектом, не переварив значительное количество современной литературы по дизайну приложений? Неужели, являясь действительно приличным специалистом, можно ничего не слышать про слова "контракт", "связность", "модуль", "слой абстракции"? Если всего этого нет, о чем еще можно говорить?
А знания всяких хитромудрых аббривеатур врое SOA, MDA, MSA ( ), SCSF, UIP, SCOAB и т.п. на собеседовании требовать смысла нет никакого.
AVK>>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит.
DDI>не понял идею DDI>как быть если человек не знает паттернов
Паттерны нет никакого смысла знать. Их нужно понимать. А для понимания, если мозги в нужную сторону повернуты, много времени не нужно. В GoF все паттерны просты как три копейки. Единственно, что нужно заучить — их общепринятые названия, чтобы потом общаться можно было.
DDI> но отличный каркасс строит, работать легко и удобно
Заставлять смотреть дальше своей каморки, иначе синдром "первый парень на деревне" обеспечен.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Dan Dare III пишет: > условие ты не понял у тебя есть еще две попытки
Извини, мне лениво.
> даже то решение что ты привел далеко от идеала цикл for в строке не зря > есть индексатор
Я привел всего одно из решений. В некоторых случаях оно оптимальнее, чем
классическое.
Понимаешь в чем проблема? Ты пытаешься выяснить чего я не знаю, я
пытаюсь тебе показать, что я умею. Первое же нетривиальное решение и
каждый из нас уверен, что его собеседник идиот. ИМХО, очень плохая
тактика, пусть даже на собеседовании.
Posted via RSDN NNTP Server 2.1 beta
Всё, что нас не убивает, ещё горько об этом пожалеет.
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, gandjustas, Вы писали:
G>>Первое решение, пришедшее в голову (предыдущий пост — прикол, хотел рассказ о себе услышать):
DDI>хочешь услышать рассказ мое мыло semen>>dot<kosobutski>a<gmail>dot<com DDI>но только если придешь на собеседование а то DDI>не хочу что бы ты как ромашка поступил
G>>Где тут применить РЕКУРСИЮ???
DDI>13 строчек
Грандиозно. И вы ищите людей, которые будут выдавать такой код в ответ на вашу задачу?.. Удачи вашей компании... Она ей пригодится.
Начнем с того, что данный код не работает на следующей симметричной строке "a\u0304ba\u0304". Пользователь соответствующего языка будет видеть короткую симметричную строку из трех символов и будет удивлен, почему ваш код утверждает обратное. Это раз.
Зачем вам там рекурсия крайне непонятно. Из-за рекурсии будет длинная вложенность вызовов функций со множеством копий строки на стэке. Расход памяти O(n^2), если не ошибаюсь. Даже если отбросить требования работы данного кода с четырех-байтными символами, реализовывать надо данную функцию через цикл. Это два.
Здравствуйте, AndrewVK, Вы писали:
AVK>А зачем? Вы же не учебное заведение? Если он не способен повышать свою квалификацию без пинков, получить от него положительную выгоду в IT-разработке на технической позиции будет крайне непросто.
зачем пинать есть более эффективные способы безо всякого давления на кандидата
вкус к работе и интерес можно прививать например похвалами доверием и ответсвенностью
Р>static bool IsSymmetric(string str)
Р>{
Р> char[] __chrs = str.Substring(str.Length - str.Length / 2).ToCharArray();
Раз копирование и расход памяти. Один проход.
Р> Array.Reverse(__chrs);
Второй проход
Р> return str.Substring(0, str.Length / 2) == new string(__chrs);
Два копирование и расход памяти. Третий проход.
Р>}
Р>
Итого, расход памяти 2 х длинна строки, 3 прохода. При том что задача решается за один проход и без расхода памяти.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, Dan Dare III, Вы писали:
DDI>>Здравствуйте, Ромашка, Вы писали:
DDI>>
DDI>>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки
DDI>>даже то решение что ты привел далеко от идеала цикл for в строке не зря есть индексатор
G>Первое решение, пришедшее в голову (предыдущий пост — прикол, хотел рассказ о себе услышать): G>
G>static bool IsSymmetric(string s)
G>{
G> for (int i = 0; i < s.Length/2; i++)
G> {
G> if (s[i] != s[s.Length - 1 - i]) return false;
G> }
G> return true;
G>}
G>
G>Работает в худшем случае в 2 раза быстрее (в релизе без студии), чем варианты в Array.Reverse.
G>Где тут применить РЕКУРСИЮ???
Надо написать метод static bool IsSymmetricInternal(string s, int beginIndex, int endIndex), который будет сравнивать символы с указанными индексами и рекурсивно вызывать себя, если символы равны. Тогда и будет рекурсия
Dog>Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.
На самом деле, я читал Рихтера, и даже разбирался во всём этом, только вот сейчас вспомнить сходу ничего не смогу. Но если, вдруг, мне это понадобится, то всмопню за 20 минут. Кстати, кроме Рихтера я ещё много чего читал. Даже основы операционных систем Таненбаума и даже изучал исходники ядра MINIX. Но так как это мне в работе не нужно, то я ничего уже не помню.
Dog>... но похоже вы избираете более лёгкий путь
Нет, не более лёгкий путь. Просто сейчас моя оперативная память до отказа забита финасами, математикой, статистикой, формулами. Для GC там места нет, да и не нужен он мне в данный момент.
Dog>Вы этим гордитесь ?
Нет, не горжусь. Глупо гордиться незнанием. Но и комплексовать по этому поводу не собираюсь.
Dog>зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно.
Допустим, в городе N есть 100 программистов на .NET, которые готовы сменить работу. Из них 95 не работали с unmanaged ресурсами и не помнят подробности работы GC. У нас есть два варианта:
а. Попытаться нанять оставшихся 5.
b. Нанять лучших из 100 и заставить в первый же рабочий день изучить работу с unmanaged ресурсами и GC.
Если ваша компания ориентируется на вариант а, то что ж... пожелаем ей удачи в неравном бою с ветрянными мельницами!
Dog>зы. Вы кажется забываете что не только у вас есть право посылать на (...), но так же и у работодателя
Да, есть. Только вот почему-то ни один работодатель пока не воспользовался этим правом...
Здравствуйте, Dog, Вы писали:
Dog>Это я про смертельность. Я понимаю, что в общих случая вызов GC не смертелен, но оказывается можно постараться тяжело ранить
Твой пример показывает не столько незнание принципов работы GC, сколько воинствующий ламеризм (товарищ не знает, но думает что знает, что он умнее разработчиков фреймворка). Непреднамеренно сломать GC не так то просто, поэтому незнание его принципов в большинстве случаев некритично.
DDI>2.5 года опыт разработки ПО на C# .Net, asp.net + mssql + winforms + xml. По проектам в резюме(2 проекта) тараторил как угорелый, разъяснил структуру приложения, объяснил как работают основные блоки, паттерны не спрашивал.
Ну и молодец. Значит работал а не дурака валял или страуструпов читал. А паттерны — чего паттерны, реальность ставит все на свои места, и все равно какая-нить кривизна технологии (типа референсов в веб-сервисах, бээээ....) разрушит весь этот OOD к такой-то бабушке, особенно если сроки поджимают.
синглетона знать достаточно, остальное от лукавого.
DDI>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки
DDI> s[0] реализовал как s.substr(0,1) (substr — это обычное дело на бумаге) а вот s[s.length-1] реализовал как s.substr(s.length,s.length).
Я лично без компа даже не помню, в стринге .Length — метод или свойство. нет, пожалуй бы вспомнил, что свойство. Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты, но встречал и не заморачивающихся на этом кодописателей, пишуших не всегда красиво — несколько раз x=obj.property["index"].field1; x2=obj.property["index"].field2, вместо того, чтобы один раз вычислить индексатор и — и ничего, пишут работоспособный код. Красота — оно хорошо, но в меру. единственным показателем рациональность кода не является (хотя все мы ее любим).
DDI>Сказал, что осталась еще одна ошибка, тот исправил на s.substr(s.length,1)
эти "осталось одна ошибка" только нервируют и провоцируют на "угадайку". ну прям как дети — найди 10 отличий. вам кодер нужен или архитектор ?
DDI>Спросил чем не понравилось s[s.length-1] услышал "Да, так тоже можно".
а что, нельзя ?
DDI>спросил про метод Remove.
DDI>
DDI>string s = "строка символов";
DDI>s.Remove(6,9);
DDI>Console.Write(s);
DDI>
DDI>Услышал ответ "строка символов", поправлять не стал
не помню точно, что будет, но кажись, ничего не изменится — ибо надо s = s.Remove(..) либо StringBuilder
DDI>SQL запрос составил легко
и слава аллаху. а то многие современные кодерА паттерны знают , а пару таблиц сджойнить — проблема, а уж вменяемую хранимку написать — и пуще того.
DDI>с winforms засыпался, IDisposable "сталкивался", с эвентами чтото невнятное пробурчал
типичный уровень моих коллег и вашего покорного слуги. ничуть не мешает писать вменяемые (и, надо сказать работающие по всей РФ и за ее пределами) проекты. Все равно то, что САМ реально не исопльзовал никогда, быстро вываливается из головы. Что использовал , кстати, тоже с ходу не вспомнишь.
Так что выбирайте — вам шашечки или ехать ?
DDI>теперь финал (перед этим были общие вопросы по нету, гц не спрашивал)
DDI>вопрос про исключения по коду на листе бумаги
DDI>
DDI>DDI: -А если код "делается страшное" unmanaged ?
открою секрет — в большинстве проектов нет такого зверя, как анмэнеджед код.
DDI>мое мнение DDI>- качество кода низкое DDI>- думать умеет DDI>- общительный, объяснять умеет DDI>- не пугливый, выглядел уверенно
Мое мнение — работает кодером (притом успешно), но видел в гробу это кодирование, рвется в ПМы или манагеры. И уверенно ответит на вопрос "кем вы видите себя в компании через 5 лет". разве это так уж лучше зашуганного кодера ?
Не всех прет корпеть над книгами о паттернах. а пресловутое "качество кода" вовсе не значит рациональность — в качественном коде рациональности обычно как раз ноль целых икс десятых. Качественный код — лишь услада глазам архитектора...
И еще — при работе над проектами, особенно крупными, бизнес-процесс затмевает детали технологии и изощреное знание технологии говорит лишь о том, что человек отягощен академическими знаниями, а не опытом работы. Если же у человека и академические знания, и опыт их применения — то вряд ли он вообще пойдет искать работу по резюме, чудес на свете не бывает — таких приглашают, а не они ищут.
DDI>- с проектами знаком в общих словах (работает скорее всего кодером, хотя утверждал что имел отношение разработке движка)
в любом проекте все обычно все имеют то или иное отношение к разработке движка, кроме УИ-дизайнера разве что.
DDI>- потенциально больше всего писал на vb, а не C#
возможно. это не значит что он не освоит си.
DDI>- любит сделать работу и забыть, не углубляясь
А чт ов этом плохого ? вам нужен срыв сроков из-за сомнительно-гениальной объектной модели и собственног движка?
DDI>- пытался обхитрить с угадайкой
значит будет хорошо работать с заказчиками, умение им впарить мозг одно из самых ценных.
DDI>- интереса к изучению чегото нового не распознал в нем
возможно, после работы ему больше охота с девушками погулять, чем с загробным видом читать страусиного трупа.
DDI>Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.
потенциал как сидящего на попе ровно кодера низок, просто потому что последним он не хочет быть.
Dan Dare III wrote: > > > KN>Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким > кодом. > > поделись пожалуйста результами, сколько как решает, подсказываешь ты им, > где спотыкаются, какие ошибки делают, кто чаще сваливается ? > задача все таки олимпиадная у школьников
Я, в частности, когда мне оное подсунули, развернулся и ушел.
И абсолютно доволен этим решением.
P.S. Как говориться, каждый сам себе злобный буратино.
Здравствуйте, Plutonia Experiment, Вы писали:
SD>>Возможны два варианта: SD>>1. Вы не совсем корректно представляете себе, что просто, и что сложно.
PE>Это, безусловно, есть в наличии. Я не знаю что просто а что сложно, потому что многое мне кажется простым. Как это выяснить — без понятия. Провести разве что собеседование всех сотрудников ?
у меня почемуто складывается впечатление, что на собеседовании вы преследуете цель "показать какой я крутой спец". А не пообщаться на равных, понять интересы, знания и цели кандидата
Здравствуйте, Dog, Вы писали:
Dog>Я бы добавил сюда ещё понимание элементарных и ссылочных типов, дженерики... и как не странно есть непонимание между делегатами и событиями...
столько всего нельзя спрашивать, а многое из этого будет вопрос что бы завалить кандидата
Dog>зы. Кстати, на каждом собеседовании спрашивают чем отличаются List от Dictionary ... и лишь в одном случае, имелли ввиду ListDictionary
процентов 80 режется вопросами вроде данного, про основы ооп и некоторыми другими, мимо чего просто нельзя пройти
Plutonia Experiment пишет: >
Мне показалось, что ты нес той стороны "копаешь". Ты пытаешься выяснить
какие вопросы задавать, какие простые из них, а какие сложные.
Фактически твое собеседование в таком ключе сведется просто к экзамену.
А это, ИМХО, худший вариант собеседования.
Вопрос: Какова основная цель твоего собеседования?
Для меня ответ прост, как умеет человек решать задачи?
Поэтому я всегда выяснял какие проекты человек делал, причем выяснял что
именно он делал сам и почему так, а не иначе. Смотрел на логичность его
построений, как он искал ту или иную информацию.
А язык программирования, если человек уже делал проект какой на С#, то с
большего он его знает уже. А детали, их слишком много и разных, чтобы
все знать.
Здравствуйте, Dog, Вы писали:
F>>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
AVK>>Не смертельно. Dog>Я бы не был так уверен
Здравствуйте, Dog, Вы писали:
Dog>>>Лучше самому походить на собеседования. Гораздо больше опыта, как отрицательного, так и положительного DDI>>Я спеца, которй пришел поговорить, сразу вычисляю. Не будет опыта вообще никакого. Dog>А в чём проблема пообщаться с умным человеком ?
это время я могу потратить на собеседование другого кандидата, которому действительно нужна работа
Здравствуйте, Dan Dare III, Вы писали:
DDI> s[0] реализовал как s.substr(0,1) (substr — это обычное дело на бумаге) а вот s[s.length-1] реализовал как s.substr(s.length,s.length). DDI>спросил у него, как нумеруются символы в строке, стало s.substr(s.length-1,s.length-1)
Текстовые символы в строке не нумеруются через индексатор Учите матчасть Один Char совсем не обязан представлять текстовый символ в строке.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, aerobus, Вы писали:
BZ>>>а логическими операторами почему не пользуешься?
A>>Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.
BZ>я ваш код прочесть не смог. по моему мнению, людей с императивным мышлением ("ди эрсте колонне марширт...") брать как раз не надо. мыслить нужно логически — либо строка короткая, либо первый и последний символы одинаковы, а середина опять же симметрична
Мне жаль что вы знаете только логический подход к решению задач.
Вы сейчас обвинили меня и наверное многих других в том, что программируя на императивном языке они мыслят императивно Смешно.
Вы также косвенно посоветовали работодателям, набирающим на работу трактористов, требовать от них умения управлять мопедом, боингом, но не трактором. Странно. Логичней ведь уметь управлять трактором и как бонус уметь управлять мопедом и боингом.
Если вы пишете на C# и так недовольны императивным подходом к решению задач, то ой. Пишите тогда на Прологе — там вашему логическому мышлению найдется где разгуляться.
Так что подумайте еще раз логически над вашей критикой.
E>Сие сакральное знание приходилсь однажды даже применять на практике (зная, что комбинаций всего 120 и поэтому не отчаиваясь заранее их перебрать, удалось попасть в подъезд с кодом. Мобил в то время еще не было, так что не удивляйтесь, что просто не позвонил хозяину).
Вот чем математик отличается от нормального человека. Нормальный бы просто внимательно посмотрел на замок и нажал три самые потёртые клавиши (проверено на практике неоднократно)
AVK>А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых?
Конечно всё сразу
Здравствуйте, AndrewVK, Вы писали:
Dog>>private void OnIdle(object sender, EventArgs e) Dog>>{ Dog>> ... Dog>> GC.Collect(); Dog>> GC.WaitForPendingFinalizers(); Dog>> GC.Collect(); Dog>>} Dog>>[/c#]
AVK>Это ты к чему?
Гы-гы. Только начал чесать голову... где тут воскрешение запрятали
Код знакомый...
И логика автора уже тоже начинает набивать оскомину — если не знаешь про воскрешение, алгоритмы поиска,
то в РФ тебе помереть с голоду... на улице в позоре и в страшных мучениях,
чтобы страну не позорил
Здравствуйте, Dog, Вы писали:
Dog>Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ...
Если рассказал — это уже немалый плюс. Большинство вообще даже читать не собирается.
AVK>>А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых? DDI>Что спрашивать по дизайну ? Тут у каждого опыт уникальный и словарик определений у каждого свой.
Вот как раз по опыту и спрашивать. А словарик, GoF и Фулера ни кто не отменял. Будет более чем достаточно для понимания.
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать.
А два три простых и сложных вопроса можно?
Подозреваю что простые типа — "что такое полиморфизм?"
Здравствуйте, De-Bill, Вы писали: DB>В-общем, в .NET есть много потаёных мест, куда заглядываешь раз в 5 лет. И помнить всё это просто невозможно. Более того, это и не нужно. Хотя, почему-то многие люди считают, что лучше гордиться знаниями устройства GC, чем выполненными проектами. Это их право. Так же как и у меня есть право посылать таких на (...), когда они пытаются заяснить, что для того, чтобы считаться разработчиком нужно знать про "воскрешения".
Как хорошо, что есть De-Bill.
Пусть теперь ему говорят, что он всех вокруг уродами считает
А Дог не понимает, что GC создан для того, чтобы его использовать, не вникая.
И, тем более, не для того, чтобы прочитав за 5 мин одну статейку про воскрешения,
проводить собеседования
Здравствуйте, Dan Dare III, Вы писали:
DDI>Что спрашивать по дизайну?
Смотря какой дизайн имеется ввиду. Во-первых дизайн мелких блоков и больших приложений, серверного и настольного софта сильно отличается, во-вторых дизайн высоконагруженных приложений это отдельный разговор, в-третьих идея о том что дизайн не зависит от языка и платформы не совсем соответствует действительности.
Единственное, что можно сказать — не стоит задавать вопросов типа: нарисуй диаграмму классов для такого то приложения, не уточняя при этом сроки, бюджет, требования к производительности и расширяемости.
DDI> Тут у каждого опыт уникальный
Опыт в любом случае штука уникальная.
DDI> и словарик определений у каждого свой.
Здравствуйте, SkyDance, Вы писали:
SD>2. Вы ждете ответа на "простой" вопрос именно в той форме, в которой этот ответ содержится у вас в голове. Грубый pattern matching механизм Ну как у плохих преподавателей, которые дают лекции, и на экзамене требуют ответа в точности теми же словами, что они говорили на лекции.
Напомнили анекдот...
Препод: Из какого материала изготовлен ствол автомата Калашникова?
Студент: из стали.
Препод: Ответ неверный! Ствол изготовлен из легированной стали трам-пам-пам такой-то!... Вот вам дополнительный вопрос.. Из чего изготовлен затвор в автомате Калашикова?
Студент: Ствол изготовлен из легированной стали трам-пам-пам такой-то!
Препод: Ответ неверный!
Студент:
Препод: ИЗ ТОГО ЖЕ МАТЕРИАЛА!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, _Morpheus_, Вы писали:
DDI>>Если приложение критично к объему памяти, например ему надо все 2GB, при этом все объекты долгоиграющие, да еще и размером большие, то поимеешь геморроя.
_M_>если приложению надо 2ГБ, "то поимеешь геморроя" в любом случае
_M_>>вы наверно зациклились на поиске студентов DDI>студенты это моя слабость у них еще вкус к изучению не угас, брать можно почти любого кто хотя бы пришел на собеседование
Заменить студенты на студентки
AVK>>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит. DDI>не понял идею DDI>как быть если человек не знает паттернов но отличный каркасс строит, работать легко и удобно DDI>рядом со мной таких двое
Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают
Здравствуйте, Dog, Вы писали:
DDI>>студенты это моя слабость у них еще вкус к изучению не угас, брать можно почти любого кто хотя бы пришел на собеседование Dog>Заменить студенты на студентки
Здравствуйте, BulatZiganshin, Вы писали:
DDI>>>студенты это моя слабость у них еще вкус к изучению не угас, брать можно почти любого кто хотя бы пришел на собеседование Dog>>Заменить студенты на студентки
BZ>откуда ты знаешь — может ему студенты нравятся?
Здравствуйте, Dan Dare III, Вы писали:
DDI>чего ты на броневик лезешь ?
Не хами. Никто никуда не лезет.
AVK>>Паттерны нет никакого смысла знать. Их нужно понимать. А для понимания, если мозги в нужную сторону повернуты, много времени не нужно. В GoF все паттерны просты как три копейки. Единственно, что нужно заучить — их общепринятые названия, чтобы потом общаться можно было.
DDI>вот с названиями и проблемы если человек умеет объяснять общий язык быстро находим
Ну так вот эта проблема не стоит и выеденного яйца, и если человек терминологию освоить не в состоянии это уже о многом говорит.
AVK>>Заставлять смотреть дальше своей каморки, иначе синдром "первый парень на деревне" обеспечен.
DDI>не понял про деревню поясни DDI>у них десятки проектов за спиной которые были из убитого состояние приведены в рабочее DDI>проекты не разовые при том
Поясняю. Если человек не интересуется, что происходит вокруг (а иначе в современных условиях невозможно не владеть базовой терминологией), то единственное, на что этому человеку приходится ориентироваться, это его окружение. Рано или поздно, если это не клиника, человек свое окружение в профессиональной области перерастает. И начинает считать себя чуть ли не гением. На RSDN периодически такие вылазят.
P.S. А ты, случаем, не в геймдеве работаешь? Только там такой махровый заповедник может встречаться. Да еще, пожалуй, в какой нибудь государственной или полугосударственной конторе.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dan Dare III, Вы писали:
Dog>>Я бы добавил сюда ещё понимание элементарных и ссылочных типов, дженерики... и как не странно есть непонимание между делегатами и событиями...
DDI>столько всего нельзя спрашивать, а многое из этого будет вопрос что бы завалить кандидата
Кандидат, не знающих "всего этого", вообще не способен писать production-код.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dan Dare III, Вы писали:
DDI>да о многом но больше о тебе самом, AVK
Чего это ты на хамство перешел? Аргументы кончились? Ты это заканчивай.
DDI>в общих чертах я понял но ты объясни почему ты решил что они не интересуются
Попробуй объяснить тогда, почему он не владеет общепринятой терминологией настолько, что не представляется возможность выяснить уровень знаний? Напоминает сказку о голом короле.
DDI>я случаем работаю в коммерческой организации она негосударственная не геймдев
Ну слава богу.
DDI>заповедник это мелкое такое хамство, менторское, ярлык
Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dan Dare III, Вы писали:
DDI>это не хамство как раз, прочитай свое сообщение про продакшн код DDI>тебя посадить к нам на собеседование и ты зарежешь всех кандидатов что у меня за год были
Сочувствую.
AVK>>Попробуй объяснить тогда, почему он не владеет общепринятой терминологией настолько, что не представляется возможность выяснить уровень знаний? Напоминает сказку о голом короле.
DDI>потому что терминология не является общепринятой
No comments.
AVK>>Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.
DDI>ты хочешь сказать что именно ко мне попадают люди которые этого не знают ?
Видимо да.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Dog>>... имхо, сталкиваясь с такими людими, я так и не знаю как ... "привить интерес к работе" таким людям. гораздо проще взять человека интересующегося и научить\передать ему свои знания ... имхо DDI>потому и проще взять интересующегося DDI>как привить интерес — это должен уметь руководитель DDI>одни интерес отбивают другие прививают на себе заметил
Чесно говоря, мне проще нанять "интересущегося" человека.
Здравствуйте, Dog, Вы писали:
DDI>>зачем пинать есть более эффективные способы безо всякого давления на кандидата DDI>>вкус к работе и интерес можно прививать например похвалами доверием и ответсвенностью Dog>Гы, вы доставите больший интерес чем девушка после работы ?
удовлетворение от творческой работы человеку не сможет заменить ни одна девушка
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну и толку от таких товарищей на должности архитекта? Я еще понимаю кодера взять — максимум придется выкинуть написанный им код. А вот стоимость ошибок архитекта ... Впрочем, конечно, каждый сам кузнец своего счастья.
Здравствуйте, Ромашка, Вы писали:
Р>Ужасть-то какая. Тогда поясните, почему данный конкретный пример у Р>меня работает быстрее
Потому что подобные тесты надо запускать с включенной оптимизацией, в релизе, и не в студии.
Да и не важно все это, цель собеседования ведь не выяснить знания каких то тонкостей, а определить базовые умения. Если, как ты утверждаешь, основанием для подобного кода являлось не неумение написать "классический вариант", а стремление показать знание каких то тонкостей, то это быстро выяснится после одного-двух наводящих вопросов.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Ravlyk, Вы писали:
R>Умеет, но не всегда
В данном случае умеет.
R>, и надеятся на это безоговорочно не стОит.
И уж тем более не стоит плодить хаки, которые работают только в отладочном режиме.
R>И в случае с рекурсией (и передачей индексирующих переменных через стек) он точно не справится.
Если это будет критично, это быстро отловится при профилировании. А пока что я вижу хрестоматийный случай преждевременной оптимизации.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, The Lex, Вы писали:
TL>>Я внятно выразился?
TL>Но если не суетиться и спокойно подумать — над тем, стоит ли использовать такие задачи на собеседовании — то... почему бы и нет? Но Баба Яга все равно против! (к)
кроме этой задачи есть и без рекурсий
примитивный конечный автомат — её даю совсем слабым студентам для того что бы через год можно было оценить прогресс
Здравствуйте, gandjustas, Вы писали:
DDI>>я знаю это много лет G>Так от кандидата требовалось выдать такой ответ? Если нет, зачем вы его пишете здесь?
от кандидата годится любой код на C# если это проверка на симметричность если выполняются два условия — рекурсия + работоспособность
G>Если код — говно, зачем оптимизацию туда включать?
это сделал автоматически, не задумываясь
DDI>>варианты в три строчки многие не понимают G>Ну да, зато все рекурсию понимают...
рекурсию нужно уметь и понимать в нашей области
приведи пример хорошей не избитой задачи буду благодарен
решение — до 15 строчек со скобками
DDI>>если кандидат пишет код дебуггером это уровень ниже требуемого G>Вы в какой реальности живете? Заставьте своих программистов писать код в Notepad, а компилировать с помощью csc и не пользоваться отладчиком. Посмотрите во сколько (тысяч) раз упадет производительность.
уровень программиста обратно пропорционален количеству запусков дебуггера в том числе и на коде в 3 строки
показатель такой
если кандидату на 3 примитивных строки нужен дебуггер — он нам не подходит
Здравствуйте, Dog, Вы писали:
E>>>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты. R>>s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)
Я имел в виду (и выведу), что без набора кода в студии зевнуть "=" вместо == — раз плюнуть. А потом собеседователь будет делать долгоиграющие выводы, делая вид что не понимает очепятки.
Dog>Имхо, это всё реализация... ошибки на уровне дизайна стоя граздо больше...
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, egaron, Вы писали:
DDI>человек претендует на знание винформс при этом не знает что такое idisposable и event и много чего еще
Может он в институте изучал, на лабах. Там такие вещи не рассказывают.
DDI>зачем он это в резюме писал ? не знает — мог бы и сказать. а так — попытка обмануть
DDI>не знаешь — не пиши в резюме. на крайняк скажи честно — гуй писал мышом не вникая работает и ладно. а так получается что вписал для объёму
Я так понимаю, он вписал "винФормз", а не "эксперт по винформз". А это может значит что угодно — от "когда-то юзал" до уровня эксперта.
DDI>Кодером работает успешно — зп как у девелопера но я не хочу работать с таким.
хозяин — барин.
DDI>качественный код — это гарантия , что если кодер уйдет, его работа не пропадёт DDI>это гарантия что сотрудничать будет легко, что его код я буду читать как свой DDI>это гарантия что другие тоже легко читать DDI>это показатель отношения к работе — халяву, авось и подобное не приветсвую
Кстати, хочу сказать, что
1) качественный код != расширяемый.
2) то что понимают под "качественным кодом", таковым на самом деле не является.
Иногда в стремлении к якобы качественному коду нагромождаются десятки уровней абстракции, используются какие-то ненужные библиотеки и визарды (лишь бы было по идеологии МС), а надо ли оно ?
потом такой качественный код приходится приводить в действительно качественный (по рациональности), притом не нарушая принятой архитектуры. А добавленное при таком кодировании в таблицу поле при таком подходе порождает полдня работы над объектной моделью. и самого кода-то нет, есть только нагромождение абстракций, по большей части малонужных. ну, и зато хмл-комменты везде написаны )))
E>>И еще — при работе над проектами, особенно крупными, бизнес-процесс затмевает детали технологии и изощреное знание технологии говорит лишь о том, что человек отягощен академическими знаниями, а не опытом работы.
DDI>изощренного знания технологии не требуется от кандидата. хочется иметь гарантию что он освоит хотя бы необходимый минимум
при исходных данных он освоит. не забывайте, существенное влияние оказывает стиль кодирования, принятый на предыдущем проекте. поэтому кандидат искренне недоумевает, почему вы недовольны его стилем. А следующий его потенциальный начальник точно так же, возможно, посчитает нерациональным ваш стиль. Люди переучиваются и перенимают невольно стиль, так же как перенимаем мы непроизвольно акцент (посмотрите на нынешних чиновников, все голосом владимир владимирыча говорят).
DDI>освоит, только у студедента потенциал выше, интерес есть в наличи, есть азарт, качество кода и знания не хуже а ЗП вдвое ниже
вот в чем ключ-то. не хотим платить ЗП. хотим подешевле, да посердитее. студент освоит и уйдет. ах да, он же качественный код оставит за собой, для следующих студентов )))
DDI>плохого ничего нет с этим для разовых проектов он подходит у нас таких нет DDI>для длинных его брать себе дороже здесь все недочеты вылазят в каждой новой версии как говно по весне
вылазят в любых проектах, что длинных что коротких.
DDI>если человек говорит честно, что не сталкивался, это показатель профессионального подхода к делу — говорит значит о том, что знает.
есть еще боязнь излишнего количества "не сталкивался" (когда возникнет вопрос — а с чем сталкивался-то ?), есть надежда, что угадайкой наведете на мысль и он вспомнит забытое ....мало ли что. Не оправдываю угадайку, гнусная она вещь, но мотивы могу понять.
Во всяком случае, помню как сам на собеседовании не написал довольно sql-запрос, точно такой же, какой писал буквально каждый день, и даже таблицы были той же структуры. точнее написал, но криво и менее рационально. так что фактор страха тоже следует не забывать.
DDI>не люблю угадайщиков — код на авось он в следующей версии вылезет как говно весной
E>>возможно, после работы ему больше охота с девушками погулять, чем с загробным видом читать страусиного трупа. DDI>а рабочее время на что ?
в рабочее время можно заниматься теорией ? у вас простой в проектах ? может и можно — первые три дня, когда вновь прибывшего засадят за чтение документации и будут проводить "ноуледж трансфер". далее , когда включится в проект, заниматься теорией на рабочем месте довольно проблематично.
DDI>для информации — 6-6 + 0.5 бала за интерес, т.е. 6.5-6 это повод рекомендовать на прием
ну что ж, пожелаем ему удачи. и чтоб не икалось, а то все кости бедолаге перемыли.
Здравствуйте, Dog, Вы писали:
Dog>Вот чем математик отличается от нормального человека. Нормальный бы просто внимательно посмотрел на замок и нажал три самые потёртые клавиши (проверено на практике неоднократно)
вот обоснование почему комбинаторика невостребована
Провожу собеседование с кандидатами по технической части. Нужен специалист — C# .Net WinForms DevExpress XML.
Раньше больше спрашивал по C++/ATL/COM, чистых дотнетчиков не собеседовал. Сейчас занимаюсь собеседованием чисто дотнетчиков(всего собеседования провожу около 3-4 лет).
Если есть у кого большой опыт, поделитесь, пожалуйста, как вы спрашиваете в подобных случаях кандидатов ? Собеседование, напомню, провожу как технический специалист — кандидаты могут попасть на разные проекты.
Обычно начинаю с общих вопросов, рассказываю разное,задаю несколько вопросов по языку, несколько по устройству нета, несколько по фреймворку и довольно много вопросов по той части, которую человек осветил в резюме и обязательно даю задачу(решение до 15 строчек вместе со скобкам, до трех попыток). Также спрашиваю про раличные архитектурные решения, структуры данных, алгоритмы. Собеседование длится час, чуть больше. Вопросы в основном зависят от того, что в резюме, вопросником не пользуюсь, выдергиваю вопросы из того, что говорит кандидат(уточняю, переспрашиваю и тд). Спрашиваю не жостко, даю возможность поправиться, подумать и тд. Естественно, если спросил например про стурктуры данных, то чего то я уже не смогу спросить.
Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать.
Понятно, что знание не означает умение, а умение не означает работу, а работа не означает знание
Тем не менее, кто как спрашивает по технической части ?
Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Если есть у кого большой опыт, поделитесь, пожалуйста, как вы спрашиваете в подобных случаях кандидатов ? Собеседование, напомню, провожу как технический специалист — кандидаты могут попасть на разные проекты.
В Microsoft в телефонном интервью спрашивают: как работает GC, как построена работа с ошибками в C#. В личных интервью вопросов именно по языку не задают. То есть на знание конкретно C# — вопросов на самом деле не очень много. Хотя даже по заданным "простым" вопросам можно уже многое понять — насколько стройное изложение, как хорошо собеседуемый может объяснить сложное простыми словами, насколько сильно при этом отклоняется от истины.
Я бы от себя добавил вопрос про операции со строками — в .Net они проводятся с учетом текущей локали и большое количество даже senior программистов пишут код невалидный для экзотических локалей. Ответ на этот вопрос заодно показывает, насколько четкая картина мира в голове относительно "представление строки в памяти", "интерпретация строки в различных локалях". Хотя это уже во многом вопросы на засыпку. Я бы лучше что-нибудь по структурам данных поспрашивал и по несложным алгоритмам. Знания конкретной технологии — вещь приходящая
PE>>Если есть у кого большой опыт, поделитесь, пожалуйста, как вы спрашиваете в подобных случаях кандидатов ? Собеседование, напомню, провожу как технический специалист — кандидаты могут попасть на разные проекты. Кэр>В Microsoft в телефонном интервью спрашивают: как работает GC, как построена работа с ошибками в C#.
Помоему у каждого на интервью спрашивают как работает GC. Что однако не мешате людям, с завидным постоянством, вызывать GC.Collect
У меня на каждом интервью спрашивали как работает GC. Всё сводилось к цитированию Рихтера. Что именно хотели этим протестировать для меня до сих пор остаётся загадкой.
Здравствуйте, Dog, Вы писали:
PE>>Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать. Dog>Имхо, проблема не людей, а ваша
Я об том и говорю, что проблема у меня.
Dog>Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы.
Идейка весьма сильная ! Лучше психолога проф. рядом сажать.
Dog>По поводу задачки на 15 мин на листочке со скобками. Это просто ОПА.
Это то я понимаю. Много кандидатов могут легко рассказать алгоритм, но не могут ничего заимплементить. Проверял не раз, давая им доступ к компьютеру. Задача предполагает минимум времени на написание. Кандидат почти ничего не пишет, кроме задачи, пишу обычно я сам, что бы его не загружать.
Dog>С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго.
binding сдается очень сложный вопрос.
PE>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ? Dog>Надо не спрашивать, а общаться с человеком.
Я стараюсь так и делать, но проблема в том что я профессиональный девелопер а не профессиональный психолог.
Здравствуйте, SkyDance, Вы писали:
PE>>Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать.
SD>Напоминаете мне профессоров из ВУЗов. Которые эти самые "простые вопросы" объясняли фразой "отсюда очевидно, что ...", но потом требовали у студентов доказывать эти "очевидные" истины.
Меня иногда зовут "профессор" или "боцман"
SD>Возможны два варианта: SD>1. Вы не совсем корректно представляете себе, что просто, и что сложно.
Это, безусловно, есть в наличии. Я не знаю что просто а что сложно, потому что многое мне кажется простым. Как это выяснить — без понятия. Провести разве что собеседование всех сотрудников ?
SD> Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит.
Точно, надо попробовать поприсутствовать в качестве наблюдателя, как ты говоришь. Хотя мне кажется любой такой наблюдатель немного нагнетает атмосферу.
Здравствуйте, Dog, Вы писали:
Dog>У меня на каждом интервью спрашивали как работает GC. Всё сводилось к цитированию Рихтера. Что именно хотели этим протестировать для меня до сих пор остаётся загадкой.
Здравствуйте, Plutonia Experiment, Вы писали:
Dog>>С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго.
PE>binding сдается очень сложный вопрос.
Ахринеть, а что тогда легкий вопрос?
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Привет !
Привет!
PE>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?
Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию.
Lisp is not dead. It’s just the URL that has changed: http://clojure.org
Dog>>У меня на каждом интервью спрашивали как работает GC. Всё сводилось к цитированию Рихтера. Что именно хотели этим протестировать для меня до сих пор остаётся загадкой. PE>Как именно спрашивали, не вспомнишь ?
Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ...
SD> Для того, чтобы это обнаружить, надо просто... поприсутствовать на собеседовании в виде безмолвного человека, а собеседование пусть проведет ваш коллега. Просто посмотрите со стороны, как это происходит. Многое станет более ясным. Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит.
Лучше самому походить на собеседования. Гораздо больше опыта, как отрицательного, так и положительного
Dog>>>С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго. PE>>binding сдается очень сложный вопрос. Y>Ахринеть, а что тогда легкий вопрос?
Как работает GC
Dog>>Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы. PE>Идейка весьма сильная ! Лучше психолога проф. рядом сажать.
Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник. Было неплохое собеседование программист + начальник, так же интересно было с кадровиками у которых есть скил в психологии и которые не спрашивают тупо вопросы "какую пользу вы принесёте нашей компании". В независимости от результата, всегда остаются положительные эмоции, что мне кажется хорошо для собеседуемого и большой плюс компании.
Dog>>По поводу задачки на 15 мин на листочке со скобками. Это просто ОПА. PE>Это то я понимаю. Много кандидатов могут легко рассказать алгоритм, но не могут ничего заимплементить. Проверял не раз, давая им доступ к компьютеру. Задача предполагает минимум времени на написание.
Минимум времени на написание вами ? Попробуйте дать её тем сотрудникам что у вас работают.
PE>Кандидат почти ничего не пишет, кроме задачи, пишу обычно я сам, что бы его не загружать.
Не могут заимплементить алгорим, что вам рассказали ? Что ж там за трудности в 10-15 строк ?
Кстати, мне в брайнбенчевском тесте попадалось пару простых но интересных задачек.
PE>binding сдается очень сложный вопрос.
Сложный скорее всего из-за того, что не используют.
PE>>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ? Dog>>Надо не спрашивать, а общаться с человеком. PE>Я стараюсь так и делать, но проблема в том что я профессиональный девелопер а не профессиональный психолог.
Можете проводить не с психологом, у вас его вроде нет ,а ещё с одним программистом. Выберите кто у вас поразговорчивее. Обычно всегда есть пару весёлых раздолбаев
PE>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ? Y>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию.
Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)
Dog>>Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ... F>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
Если человек после собеседования, не ответив на вопрос, неудосуживается открыть Рихтера...
В тех случаях что я встерал люди рассказывали как работает GC, но на вопрос "Какого ... здесь вызывается сборщик мусора ?", с чистой совестью отвечали "Думал, так будет быстрее"
Здравствуйте, fmiracle, Вы писали:
F>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
Здравствуйте, Dog, Вы писали:
PE>>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ? Y>>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию. Dog>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)
согласен, однако можно сделать иначе — выкладывать тестовое задание и по нему проводить конкурс, к примеру первые 3 кандидата успешно справившиеся с заданием получают денежное вознаграждение и все выполнившие приглашаются на собеседование. Задание конечно после завершения конкурса лучше менять
Причем по заданию должно быть видно что это не реальная работа, за которую ктото потом заработает гораздо больше, т.к. в этом случае толковые люди просто не клюнут и все превратится в банальный лохотрон
F>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
AVK>Не смертельно.
Я бы не был так уверен
E>>воскрешение ? А Великий Пост в дотнете есть или пасха ? а рождества там не предусмотрено ? BZ>у нас есть всё, во что верят наши объекты! есть пророк Билли, есть иуда Джимми, и Страшный Суд, где погибнут все unmanaged объекты
Gосподний Cуд
ОНН>Код знакомый... ОНН>И логика автора уже тоже начинает набивать оскомину — если не знаешь про воскрешение, алгоритмы поиска, ОНН>то в РФ тебе помереть с голоду... на улице в позоре и в страшных мучениях, ОНН>чтобы страну не позорил
Вообщето это ваша логика и лучше бы вы не позорились на всю страну своей телепатией.
А моя логика проста. Одних голых знаний без понимания применения этих знаний недостаточно. А понимание это приходит с опытом. И вопросы на собеседовании вроде, "расскажите как работает GC" или "напишите код синглтона" и т.п. этого понимания не выявляют.
А знание всех этих вещей, это как знание русского языка. Хотя конечно язык можно и не знать, тебя же и так понимают.
Здравствуйте, AndrewVK, Вы писали:
F>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
AVK>Не смертельно.
Здравствуйте, Она На Нас Ий, Вы писали:
ОНН>Гы-гы. Только начал чесать голову... где тут воскрешение запрятали ОНН>Код знакомый... ОНН>И логика автора уже тоже начинает набивать оскомину — если не знаешь про воскрешение, алгоритмы поиска,
Если приложение критично к объему памяти, например ему надо все 2GB, при этом все объекты долгоиграющие, да еще и размером большие, то поимеешь геморроя.
Здравствуйте, _Morpheus_, Вы писали:
PE>>Это, безусловно, есть в наличии. Я не знаю что просто а что сложно, потому что многое мне кажется простым. Как это выяснить — без понятия. Провести разве что собеседование всех сотрудников ?
_M_>у меня почемуто складывается впечатление, что на собеседовании вы преследуете цель "показать какой я крутой спец". А не пообщаться на равных, понять интересы, знания и цели кандидата
Гораздо чаще так считают сами кандидаты. Примеров целый форум
Здравствуйте, Dog, Вы писали:
SD>> Для того, чтобы это обнаружить, надо просто... поприсутствовать на собеседовании в виде безмолвного человека, а собеседование пусть проведет ваш коллега. Просто посмотрите со стороны, как это происходит. Многое станет более ясным. Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит. Dog>Лучше самому походить на собеседования. Гораздо больше опыта, как отрицательного, так и положительного
Я спеца, которй пришел поговорить, сразу вычисляю. Не будет опыта вообще никакого.
Здравствуйте, _Morpheus_, Вы писали:
_M_>согласен, однако можно сделать иначе — выкладывать тестовое задание и по нему проводить конкурс, к примеру первые 3 кандидата успешно справившиеся с заданием получают денежное вознаграждение и все выполнившие приглашаются на собеседование. Задание конечно после завершения конкурса лучше менять
Здравствуйте, AndrewVK, Вы писали:
AVK>А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых?
Что спрашивать по дизайну ? Тут у каждого опыт уникальный и словарик определений у каждого свой.
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Обычно начинаю с общих вопросов, рассказываю разное,задаю несколько вопросов по языку, несколько по устройству нета, несколько по фреймворку и довольно много вопросов по той части, которую человек осветил в резюме и обязательно даю задачу(решение до 15 строчек вместе со скобкам, до трех попыток).
см выделенное, больше ничего не надо если ты не начальник
Здравствуйте, Dog, Вы писали:
AVK>>Это ты к чему? Dog>Это я про смертельность. Я понимаю, что в общих случая вызов GC не смертелен, но оказывается можно постараться тяжело ранить
Зачем ранить. Если чел не понимает ГЦ то вряд ли поймет код который писался для разрешения существовавших проблем с ГЦ. А то и вовсе залезет на броневик
Dog>>Лучше самому походить на собеседования. Гораздо больше опыта, как отрицательного, так и положительного DDI>Я спеца, которй пришел поговорить, сразу вычисляю. Не будет опыта вообще никакого.
А в чём проблема пообщаться с умным человеком ?
Dog>>Это я про смертельность. Я понимаю, что в общих случая вызов GC не смертелен, но оказывается можно постараться тяжело ранить AVK>Твой пример показывает не столько незнание принципов работы GC, сколько воинствующий ламеризм (товарищ не знает, но думает что знает, что он умнее разработчиков фреймворка).
Имхо тут ошибка.
AVK> Непреднамеренно сломать GC не так то просто, поэтому незнание его принципов в большинстве случаев некритично.
Что за дурацкая манера вешать ярлыки ?
Я привел вам пример из практики. Ни кто и не пытался намеренно или ненамеренно ломать GC.
Я так понимаю что в большинстве случаев и знания модели освобождения ресурсов некритично, а using это вообще для гуру ... так что ли ?
Ну да не будем флэймить на пустом месте Меня интересует вот такой вопрос, раз уж тема про собеседования. Какие знания платформы и языка по вашему критичны ?
ОНН>А Дог не понимает, что GC создан для того, чтобы его использовать, не вникая.
Для невникающих я привёл хороший пример из практики. Думаю что можно так же привести кучу примеров с использованием Dispose и финализаторов. Если вы до сих пор невникли невникайте дальше. Я не ставлю для себя цель вам что-то объяснять.
DB>В-общем, в .NET есть много потаёных мест, куда заглядываешь раз в 5 лет. И помнить всё это просто невозможно. Более того, это и не нужно.
Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.
... но похоже вы избираете более лёгкий путь DB> Хотя, почему-то многие люди считают, что лучше гордиться знаниями устройства GC, чем выполненными проектами. Это их право. Так же как и у меня есть право посылать таких на (...), когда они пытаются заяснить, что для того, чтобы считаться разработчиком нужно знать про "воскрешения".
Вы этим гордитесь ?
зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно.
зы. Вы кажется забываете что не только у вас есть право посылать на (...), но так же и у работодателя
Dog>>А в чём проблема пообщаться с умным человеком ? DDI> это время я могу потратить на собеседование другого кандидата, которому действительно нужна работа Ну мне была нужна работа, я занимался набором людей и в некоторых случаях на собеседовании, когда понимаешь что работа тебе не интересна, я оставался дальше и прокачивал скилы прохождения\проведения собеседования
На своих ошибках учатся только дураки (с)Бисмарк
Dog>Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник.
Никогда не видел, чтобы такое собеседование было бы эффективным. Да и в частности мне напряжно беседовать в таком режиме(как соискателю).
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Dog>>Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник. E__>Никогда не видел, чтобы такое собеседование было бы эффективным. Да и в частности мне напряжно беседовать в таком режиме(как соискателю).
Всё зависит от людей проводящих собеседование. Не спорю, может в других случаях будет напряжно.
Здравствуйте, _Morpheus_, Вы писали:
_M_>Здравствуйте, Dan Dare III, Вы писали:
DDI>>студент ?
_M_>нет, студентом был лет 6 назад, а почему у вас такой вопрос возник?
Здравствуйте, Dog, Вы писали:
Dog>зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно.
Здравствуйте, Dan Dare III, Вы писали:
DDI>Если приложение критично к объему памяти, например ему надо все 2GB, при этом все объекты долгоиграющие, да еще и размером большие, то поимеешь геморроя.
если приложению надо 2ГБ, "то поимеешь геморроя" в любом случае
Здравствуйте, egaron, Вы писали:
E>Хороший спец должен значть все о немногом, и немного обо всем.
E>Знать как работает ГЦ для разработки бизнес-апплиейшнов нужно не более, чем то, как собрать на транзисторах схему логического элемента "или -не". Но это не значит, что тот же программист не должен иметь даже общенго понятия о тех же транзисторах и логических элементах — каждый должен хотя бы интересоваться тем, КАК ЭТО ВСЕ РАБОТАЕТ. Естественно, спрашивать детали в таком случае — глупо.
гы
пример вчерашний
2.5 года опыт разработки ПО на C# .Net, asp.net + mssql + winforms + xml. По проектам в резюме(2 проекта) тараторил как угорелый, разъяснил структуру приложения, объяснил как работают основные блоки, паттерны не спрашивал.
Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки
s[0] реализовал как s.substr(0,1) (substr — это обычное дело на бумаге) а вот s[s.length-1] реализовал как s.substr(s.length,s.length).
спросил у него, как нумеруются символы в строке, стало s.substr(s.length-1,s.length-1)
Сказал, что осталась еще одна ошибка, тот исправил на s.substr(s.length,1)
Спросил чем не понравилось s[s.length-1] услышал "Да, так тоже можно".
спросил про метод Remove.
string s = "строка символов";
s.Remove(6,9);
Console.Write(s);
Услышал ответ "строка символов", поправлять не стал
Задача устно олимпиадная, про монетки(точного решения не требуется, просто посмотреть сколько будет сражаться)
Нашел решение со второй попытки !
SQL запрос составил легко
с winforms засыпался, IDisposable "сталкивался", с эвентами чтото невнятное пробурчал
теперь финал (перед этим были общие вопросы по нету, гц не спрашивал)
DDI: -В блоке "делается страшное" происходит исключение. Что должно быть напечатано в консоль ?
-Случилось страшное
DDI: -А "Уходим" ?
-Ой, тоже !
DDI: -А если catch(Exception e) ?
-Наверное, "Уходим, Случилось страшное" ?
DDI: -А почему не наоборот ?
-Ой, наоборот, "Случилось страшное,Уходим"!
DDI: -Почему ?
-Ну так правильно...
DDI: -А если исключения не было ?
-(долгая пауза)-"Уходим" ?(очень неуверенно, гадает !)
DDI: -Когда срабатывает "finally" ?
-...Всегда наверное ? (очень неуверенно, гадает !)
DDI: -А если код "делается страшное" unmanaged ?
-А что такое unmanaged код ? (некотороые не знают, что такое managed, но знаю что такое управляемый код)
DDI: -... [объясняю, коротко, такие опусы почти каждый раз, я уже привык]
-Ого, я и не знал что такое есть.
DDI: —
после этого я пожалел что начал не с исключений — собеседование длилось примерно час десять
мое мнение
— качество кода низкое
— думать умеет
— общительный, объяснять умеет
— не пугливый, выглядел уверенно
— с проектами знаком в общих словах (работает скорее всего кодером, хотя утверждал что имел отношение разработке движка)
— потенциально больше всего писал на vb, а не C#
— фантазёр(после собеседования пытался объяснить, что есть объективные причины не знать "такие мелочи" )
— любит сделать работу и забыть, не углубляясь
— пытался обхитрить с угадайкой
— интереса к изучению чегото нового не распознал в нем
Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.
Здравствуйте, Dog, Вы писали:
Dog>Имхо тут ошибка.
О том и речь. И проверять надо именно это, а не знание алгоритмов работы GC.
AVK>> Непреднамеренно сломать GC не так то просто, поэтому незнание его принципов в большинстве случаев некритично. Dog>Что за дурацкая манера вешать ярлыки ?
Перечитал несколько раз, ярлыков не увидел.
Dog>Я привел вам пример из практики.
Это я уже понял.
Dog> Ни кто и не пытался намеренно или ненамеренно ломать GC.
Нет, в твоем примере именно преднамеренная попытка поуправлять GC, случайно такое измыслить невозможно.
Dog>Я так понимаю что в большинстве случаев и знания модели освобождения ресурсов некритично
Нет, это критично.
Dog>Ну да не будем флэймить на пустом месте Меня интересует вот такой вопрос, раз уж тема про собеседования. Какие знания платформы и языка по вашему критичны ?
Зависит от проекта и команды. И вообще, ИМХО, это уже те знания, которые покупают за деньги. Т.е. я конечно тебе отвечу и бесплатно, но только на конкретные вопросы, а не на требование составить обзор.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dan Dare III, Вы писали:
DDI>я говорю о тех, с кем довелось проводить собеседование
В России что то последнее время какой то удурчающий средний уровень именно архитектов. И то, что два специалиста не могут даже об общих терминах договориться, честно говоря, приводит в уныние.
DDI>про твоих кандидатов я ничего не говорил.
А моих нет никаких сейчас кандидатов, я уже год точно этим не занимаюсь. Я не согласен с обобщением.
DDI>если люди читали ГоФ и подобное ему — все будет отлично а вот если не читали, а есть и такие, О УЖАС, на рсдн не ходят, как с ними быть ?
А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, AndrewVK, Вы писали:
AVK>В России что то последнее время какой то удурчающий средний уровень именно архитектов. И то, что два специалиста не могут даже об общих терминах договориться, честно говоря, приводит в уныние.
гы
паттерны они растут из всего, но не из нета
нетовских паттернов пока очень мало
куча жавовских и смаллтолковских паттернов которые появились благодаря убогим возможностям языков(в жаве, смаллтолке) породили массы воинствующих дилетантов в самом нете
DDI>>если люди читали ГоФ и подобное ему — все будет отлично а вот если не читали, а есть и такие, О УЖАС, на рсдн не ходят, как с ними быть ?
AVK>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит.
не понял идею
как быть если человек не знает паттернов но отличный каркасс строит, работать легко и удобно
рядом со мной таких двое
Dog>>Имхо тут ошибка. AVK>О том и речь. И проверять надо именно это, а не знание алгоритмов работы GC.
Хм... так я вроде именно об этом и пишу
Dog>>Я так понимаю что в большинстве случаев и знания модели освобождения ресурсов некритично AVK>Нет, это критично.
И как можно знать это и не представлять как работает GC ? Ну да ладно...
Dog>>Ну да не будем флэймить на пустом месте Меня интересует вот такой вопрос, раз уж тема про собеседования. Какие знания платформы и языка по вашему критичны ? AVK>Зависит от проекта и команды.
Ммм... давайте вэб трогать не будем, десктопные приложения и второй фрэймворк. Если вы уж начали делить на смертельно не смертельно. Какие знания языка и платформы по вашему более критичны. Не надо делать обзоры, можно просто перечислить. Нескольких будет вполне достаточно. Я не флэйма ради, интересно ваше мнение, раз уж вы ввязались в это
AVK>И вообще, ИМХО, это уже те знания, которые покупают за деньги. Т.е. я конечно тебе отвечу и бесплатно, но только на конкретные вопросы, а не на требование составить обзор.
Ойвэй, таки видимо уже пора писать в конце ответов.
Кто воспользовался моим опытом перечислите N рублей по этому XXX адресу
DDI>- любит сделать работу и забыть, не углубляясь DDI>- интереса к изучению чегото нового не распознал в нем
Имхо, основные минусы перевешивающие любые плюсы. Всё остальное со временем поправимо.
Здравствуйте, Dan Dare III, Вы писали:
DDI>мое мнение DDI>- качество кода низкое
думаю, что это просто культура программирования, принятая в его первой компании. никаких исключений, минимальный наьбор функций и т.д.
DDI>- думать умеет DDI>- общительный, объяснять умеет DDI>- не пугливый, выглядел уверенно DDI>- с проектами знаком в общих словах (работает скорее всего кодером, хотя утверждал что имел отношение разработке движка)
почему ты решил, что он работает кодером?
DDI>- потенциально больше всего писал на vb, а не C# DDI>- фантазёр(после собеседования пытался объяснить, что есть объективные причины не знать "такие мелочи" ) DDI>- любит сделать работу и забыть, не углубляясь DDI>- пытался обхитрить с угадайкой DDI>- интереса к изучению чегото нового не распознал в нем
ровно наоборот — монетки, знание архитектуры проекта, sql говорят об обратном. не зщабывай, что если человек любит изучать новое, он не обязан знать именно то, что знаешь ты
DDI>Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>думаю, что это просто культура программирования, принятая в его первой компании. никаких исключений, минимальный наьбор функций и т.д.
отношение к работе оно не важно у кого если у кодера то кодить плохо если у начальника то плохое отношения будет в руководстве проявляться
DDI>>- думать умеет DDI>>- общительный, объяснять умеет DDI>>- не пугливый, выглядел уверенно DDI>>- с проектами знаком в общих словах (работает скорее всего кодером, хотя утверждал что имел отношение разработке движка)
BZ>почему ты решил, что он работает кодером?
кроме того сеньор обычно представляет зачем нужна обработка ошибок и как ее оформить в проекте
сеньор представляет зачем нужны слова virtual и override
BZ>ровно наоборот — монетки, знание архитектуры проекта, sql говорят об обратном. не зщабывай, что если человек любит изучать новое, он не обязан знать именно то, что знаешь ты
у меня к тебе вопрос, ты знаком с этим кандидатом ?
SQL обычно пишт специальные люди а не сеньоры или лиддевелоперы
откуда сведения про знание архитектуры ?
этих знаний как раз и не обнаружилось
зъяснил структуру приложения, объяснил как работают основные блоки
структура и архитектура это разные вещи — я на этом настаиваю
но допустим ты прав, тогда архитектор подавший резюме на позицию кодера не интересен
DDI>>Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.
BZ>студент с реальным знанием sql?
ты знаком с этим кандидатом и теми студентами которые были до него ?
смонетками и SQL у них отлично их тоже в сеньоры и архитекторы записать ?
AVK>При чем тут нетовские? Для собеседования, если уж мы о микродизайне заговорили, хватит знания таких слов как синглтон, посетитель, стратегия, фасад, фабрика. Что, на изучения этих слов не хватит часа чтения википедии? Неужели можно стать приличным архитектом, не переварив значительное количество современной литературы по дизайну приложений? Неужели, являясь действительно приличным специалистом, можно ничего не слышать про слова "контракт", "связность", "модуль", "слой абстракции"? Если всего этого нет, о чем еще можно говорить?
чего ты на броневик лезешь ?
AVK>А знания всяких хитромудрых аббривеатур врое SOA, MDA, MSA ( ), SCSF, UIP, SCOAB и т.п. на собеседовании требовать смысла нет никакого.
я и не требую
AVK>Паттерны нет никакого смысла знать. Их нужно понимать. А для понимания, если мозги в нужную сторону повернуты, много времени не нужно. В GoF все паттерны просты как три копейки. Единственно, что нужно заучить — их общепринятые названия, чтобы потом общаться можно было.
вот с названиями и проблемы если человек умеет объяснять общий язык быстро находим
DDI>> но отличный каркасс строит, работать легко и удобно AVK>Заставлять смотреть дальше своей каморки, иначе синдром "первый парень на деревне" обеспечен.
не понял про деревню поясни
у них десятки проектов за спиной которые были из убитого состояние приведены в рабочее
проекты не разовые при том
Здравствуйте, Dog, Вы писали:
DDI>>- любит сделать работу и забыть, не углубляясь DDI>>- интереса к изучению чегото нового не распознал в нем Dog>Имхо, основные минусы перевешивающие любые плюсы. Всё остальное со временем поправимо.
даже это поправимо, но на это нет времени проще взять более отесаного
если все остальные будут еще менее пригодны придется взять этого благо SQL монетки и задача есть в наличии
но брать его сразу — слишком много минусов
Здравствуйте, Dog, Вы писали:
DDI>>рядом со мной таких двое Dog>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают
умных идей к сожалению мало по этому такое чудо вовсе и не чудо я с тобой согласен
Здравствуйте, Dog, Вы писали: Dog>Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.
А почему именно Рихтера из 5 Гига MSDN?
если не считать, что есть ещё другие источники
Y>>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию. Dog>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)
Естественно, это должна быть очень хорошая работа А разве соискатели когда-нибудь ищут другую?
Здравствуйте, egaron, Вы писали:
E>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты.
s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)
Здравствуйте, AndrewVK, Вы писали:
Dog>>И как можно знать это и не представлять как работает GC ?
AVK>А какое отношение к GC имеет IDisposable и using?
отношения никакого но все это управление ресурсами
если Idisposable не знаком я про гц и не пробую спрашивать
AVK>Ну как минимум надо знать базовые конструкции языка, вроде классов, структур и их различий, массивов, полиморфизма, интерфейсов, событий и делегатов. Надо знать концепцию потоков, понимать базовые моменты реализации string и для чего нужен StringBuilder, понимать что такое атрибуты и с чем их едят. Обязательно нужно представлять себе, что такое IEnumerable<T>, List<T> и Dictionary<K,V>, и знать временную сложность основных операций. Если предполагается использование многопоточности — понимать что такое поток, чем плох Thread.Abort, что такое lock и объекты синхронизации ядра, уметь работать с коллекциями, поддерживающими одного писателя и нескольких читателей одновременно, понимать как себя ведут энумераторы при параллельном доступе. Ну и т.д., в зависимости от области использования.
если ты все это спросишь то завалишь всех людей которые были у меня за весь период
с выделенного надо начинать кстати
DDI>>>- любит сделать работу и забыть, не углубляясь DDI>>>- интереса к изучению чегото нового не распознал в нем Dog>>Имхо, основные минусы перевешивающие любые плюсы. Всё остальное со временем поправимо. DDI>даже это поправимо, но на это нет времени проще взять более отесаного
Каким образом вы собираетесь отёсывать... если человек не хочет учиться ? Я понимаю ещё можно научить отсуствущим знаниям... если есть желание...
DDI>если все остальные будут еще менее пригодны придется взять этого благо SQL монетки и задача есть в наличии DDI>но брать его сразу — слишком много минусов
... имхо, сталкиваясь с такими людими, я так и не знаю как ... "привить интерес к работе" таким людям. гораздо проще взять человека интересующегося и научить\передать ему свои знания ... имхо
Dog>>Хм... так я вроде именно об этом и пишу AVK>Ты пишешь о том, что незнание алгоритмов GC смертельно.
Нет. Ещё раз повторюсь. Здесь не идёт речь об общих знаниях .net разработчика. Я так же считаю что не необходимо знаие именно алгоритмов работы GC. Меня поражает то что спрашивают именно знания без применения этих знаний. (из личного опыта)
Dog>>И как можно знать это и не представлять как работает GC ? AVK>А какое отношение к GC имеет IDisposable и using?
Хм... даже не знаю... недетерминированная очистка, отдельна очередь для деструкторов, если вы узнали всё это, не понимаю почему бы не прочитать всё стальное....
Dog>> Нескольких будет вполне достаточно. Я не флэйма ради, интересно ваше мнение, раз уж вы ввязались в это AVK>Ну как минимум надо знать базовые конструкции языка, вроде классов, структур и их различий, массивов, полиморфизма, интерфейсов, событий и делегатов. Надо знать концепцию потоков, понимать базовые моменты реализации string и для чего нужен StringBuilder, понимать что такое атрибуты и с чем их едят. Обязательно нужно представлять себе, что такое IEnumerable<T>, List<T> и Dictionary<K,V>, и знать временную сложность основных операций. Если предполагается использование многопоточности — понимать что такое поток, чем плох Thread.Abort, что такое lock и объекты синхронизации ядра, уметь работать с коллекциями, поддерживающими одного писателя и нескольких читателей одновременно, понимать как себя ведут энумераторы при параллельном доступе. Ну и т.д., в зависимости от области использования.
+1
Навеное многое из этих вещей воспринемаются мною как само-собой разумеющееся... Опять же рефакторинг Фаулера был мне скушен, я не понимал как можно делать рефакориннг, у меня такие случаи почти не возникали.
Я бы добавил сюда ещё понимание элементарных и ссылочных типов, дженерики... и как не странно есть непонимание между делегатами и событиями...
зы. Кстати, на каждом собеседовании спрашивают чем отличаются List от Dictionary ... и лишь в одном случае, имелли ввиду ListDictionary
DDI>>>рядом со мной таких двое Dog>>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают DDI>умных идей к сожалению мало по этому такое чудо вовсе и не чудо я с тобой согласен
Это и есть паттерны
DDI>>>>студенты это моя слабость у них еще вкус к изучению не угас, брать можно почти любого кто хотя бы пришел на собеседование Dog>>>Заменить студенты на студентки BZ>>откуда ты знаешь — может ему студенты нравятся? DDI>
Я надеюсь
AVK>Поясняю. Если человек не интересуется, что происходит вокруг (а иначе в современных условиях невозможно не владеть базовой терминологией), то единственное, на что этому человеку приходится ориентироваться, это его окружение. Рано или поздно, если это не клиника, человек свое окружение в профессиональной области перерастает. И начинает считать себя чуть ли не гением. На RSDN периодически такие вылазят.
Опять же выделенное главное... и как а заставить человека заинтрерсоваться....
DDI>кроме того сеньор обычно представляет зачем нужна обработка ошибок и как ее оформить в проекте DDI>сеньор представляет зачем нужны слова virtual и override
Это должен знать сеньор... пойду застрелюсь....
BZ>>ровно наоборот — монетки, знание архитектуры проекта, sql говорят об обратном. не зщабывай, что если человек любит изучать новое, он не обязан знать именно то, что знаешь ты DDI>у меня к тебе вопрос, ты знаком с этим кандидатом ? DDI>SQL обычно пишт специальные люди а не сеньоры или лиддевелоперы
+1
E>>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты. R>s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)
Имхо, это всё реализация... ошибки на уровне дизайна стоя граздо больше...
Здравствуйте, AndrewVK, Вы писали:
DDI>>вот с названиями и проблемы если человек умеет объяснять общий язык быстро находим
AVK>Ну так вот эта проблема не стоит и выеденного яйца, и если человек терминологию освоить не в состоянии это уже о многом говорит.
да о многом но больше о тебе самом, AVK
AVK>Поясняю. Если человек не интересуется, что происходит вокруг (а иначе в современных условиях невозможно не владеть базовой терминологией), то единственное, на что этому человеку приходится ориентироваться, это его окружение. Рано или поздно, если это не клиника, человек свое окружение в профессиональной области перерастает. И начинает считать себя чуть ли не гением. На RSDN периодически такие вылазят.
в общих чертах я понял но ты объясни почему ты решил что они не интересуются
AVK>P.S. А ты, случаем, не в геймдеве работаешь? Только там такой махровый заповедник может встречаться. Да еще, пожалуй, в какой нибудь государственной или полугосударственной конторе.
я случаем работаю в коммерческой организации она негосударственная не геймдев
заповедник это мелкое такое хамство, менторское, ярлык
не смертельно
Здравствуйте, Кэр, Вы писали:
DDI>> s[0] реализовал как s.substr(0,1) (substr — это обычное дело на бумаге) а вот s[s.length-1] реализовал как s.substr(s.length,s.length). DDI>>спросил у него, как нумеруются символы в строке, стало s.substr(s.length-1,s.length-1)
Кэр>Текстовые символы в строке не нумеруются через индексатор
каким боком текстовые символы имеют отношение к индексатору и сабстрингу ?
Здравствуйте, Igor Trofimov, Вы писали:
Dog>>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)
iT>Естественно, это должна быть очень хорошая работа А разве соискатели когда-нибудь ищут другую?
а что ты вкладываешь в "хорошая работа" ?
работа может быть "идеальной" "отличной" "очень хорошей" и "хорошей"
Здравствуйте, Ravlyk, Вы писали:
E>>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты.
R>s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)
а ты уверен что понял что он хотел сказать ? надо будет провести собеседование, зарежешь хорошего кандидата
Здравствуйте, Dog, Вы писали:
DDI>>даже это поправимо, но на это нет времени проще взять более отесаного Dog>Каким образом вы собираетесь отёсывать... если человек не хочет учиться ? Я понимаю ещё можно научить отсуствущим знаниям... если есть желание...
мы и не собираемся отёсывать но этовозможно если руководитель наделен педагогическим образованием
Dog>... имхо, сталкиваясь с такими людими, я так и не знаю как ... "привить интерес к работе" таким людям. гораздо проще взять человека интересующегося и научить\передать ему свои знания ... имхо
потому и проще взять интересующегося
как привить интерес — это должен уметь руководитель
одни интерес отбивают другие прививают на себе заметил
Здравствуйте, Dan Dare III, Вы писали:
E>>>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты.
R>>s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)
DDI>а ты уверен что понял что он хотел сказать ? надо будет провести собеседование, зарежешь хорошего кандидата
Я только щас заметил, что:
s.Length = 0 — тут присвоение
s == String.Empty — тут сравнение
Так вот для ни то, ни то не верно — если s == null, то в проверке длины будет эксепшен, а при сравнении с String.Empty будет false (хотя ожидается наверное true).
В дополнение, String.Format() работает медленее чем String.Concat()
Здравствуйте, Dog, Вы писали:
Dog>>>И как можно знать это и не представлять как работает GC ? AVK>>А какое отношение к GC имеет IDisposable и using? Dog>Хм... даже не знаю...
Вот и я не знаю.
Dog> недетерминированная очистка, отдельна очередь для деструкторов, если вы узнали всё это, не понимаю почему бы не прочитать всё стальное....
Я ж не запрещаю читать. Только незнание этого некритично, не должно быть основанием для непринятия человека на работу.
Dog>Я бы добавил сюда ещё понимание элементарных и ссылочных типов,
Это я упомянул.
Dog> дженерики...
А что с ними? Не, ну понимать, что это такое конечно нужно, но там вроде ничего неочевидного нет, это не плюсовые шаблоны.
Dog>и как не странно есть непонимание между делегатами и событиями...
Это тоже упомянул.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dog, Вы писали:
Dog>Опять же выделенное главное... и как а заставить человека заинтрерсоваться....
А зачем? Вы же не учебное заведение? Если он не способен повышать свою квалификацию без пинков, получить от него положительную выгоду в IT-разработке на технической позиции будет крайне непросто.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dog, Вы писали:
DDI>>кроме того сеньор обычно представляет зачем нужна обработка ошибок и как ее оформить в проекте DDI>>сеньор представляет зачем нужны слова virtual и override Dog>Это должен знать сеньор... пойду застрелюсь....
бгггг ты ведь сказал что с ГоФ и Фаулером знаком если человек не знаком с virtual и тд врядли сможет фаулера и гоф читать
Здравствуйте, AndrewVK, Вы писали:
DDI>>столько всего нельзя спрашивать, а многое из этого будет вопрос что бы завалить кандидата
AVK>Кандидат, не знающих "всего этого", вообще не способен писать production-код.
Здравствуйте, AndrewVK, Вы писали:
DDI>>да о многом но больше о тебе самом, AVK AVK>Чего это ты на хамство перешел? Аргументы кончились? Ты это заканчивай.
это не хамство как раз, прочитай свое сообщение про продакшн код
тебя посадить к нам на собеседование и ты зарежешь всех кандидатов что у меня за год были
DDI>>в общих чертах я понял но ты объясни почему ты решил что они не интересуются
AVK>Попробуй объяснить тогда, почему он не владеет общепринятой терминологией настолько, что не представляется возможность выяснить уровень знаний? Напоминает сказку о голом короле.
потому что терминология не является общепринятой
DDI>>заповедник это мелкое такое хамство, менторское, ярлык
AVK>Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.
ты хочешь сказать что именно ко мне попадают люди которые этого не знают ?
DDI>>>кроме того сеньор обычно представляет зачем нужна обработка ошибок и как ее оформить в проекте DDI>>>сеньор представляет зачем нужны слова virtual и override Dog>>Это должен знать сеньор... пойду застрелюсь.... DDI>бгггг ты ведь сказал что с ГоФ и Фаулером знаком если человек не знаком с virtual и тд врядли сможет фаулера и гоф читать
Именно о том...
Y>>>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию. Dog>>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо) iT>Естественно, это должна быть очень хорошая работа А разве соискатели когда-нибудь ищут другую?
Цель. В этом всё. Поставте перед собой цель получить работу... Результатами воспользуйтесь по своему усмотрениему.
AVK>>А зачем? Вы же не учебное заведение? Если он не способен повышать свою квалификацию без пинков, получить от него положительную выгоду в IT-разработке на технической позиции будет крайне непросто. DDI>зачем пинать есть более эффективные способы безо всякого давления на кандидата DDI>вкус к работе и интерес можно прививать например похвалами доверием и ответсвенностью
Гы, вы доставите больший интерес чем девушка после работы ?
Здравствуйте, AndrewVK, Вы писали:
AVK>Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.
сейчас половина кандидатов валятся на virtual и интерфейсах
знакомы многие но знание паттернов без ООП на знание не тянет а на понимание тем более
терминология без знания и понимания вообще балласт
с учетом всего этого терминология не тянет на общепринятую потому как не раз сталкивался что под фасадом тем же или фабрикой классов понимается совершенно разное.
Здравствуйте, Dan Dare III, Вы писали:
DDI>с учетом всего этого терминология не тянет на общепринятую потому как не раз сталкивался что под фасадом тем же или фабрикой классов понимается совершенно разное.
фигню написал))) совершенно разное это как про фабрику так и про фасад по отдельности
человек знакомый с паттернами выдал фабрика классов — сущность которая умеет генерировать код для подобных себе классов
поспрашивал его про генерацию кода — очень толково разъяснил а с паттернами все непонятно
Здравствуйте, Dan Dare III, Вы писали:
DDI>сейчас половина кандидатов валятся на virtual и интерфейсах DDI>знакомы многие но знание паттернов без ООП на знание не тянет а на понимание тем более DDI>терминология без знания и понимания вообще балласт
Ну и толку от таких товарищей на должности архитекта? Я еще понимаю кодера взять — максимум придется выкинуть написанный им код. А вот стоимость ошибок архитекта ... Впрочем, конечно, каждый сам кузнец своего счастья.
DDI>с учетом всего этого терминология не тянет на общепринятую потому как не раз сталкивался что под фасадом тем же или фабрикой классов понимается совершенно разное.
Очень интересно.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, Dan Dare III, Вы писали:
DDI>>> s[0] реализовал как s.substr(0,1) (substr — это обычное дело на бумаге) а вот s[s.length-1] реализовал как s.substr(s.length,s.length). DDI>>>спросил у него, как нумеруются символы в строке, стало s.substr(s.length-1,s.length-1)
Кэр>>Текстовые символы в строке не нумеруются через индексатор
DDI>каким боком текстовые символы имеют отношение к индексатору и сабстрингу ?
В том-то и дело, что только косвенным Или ваша задача про проверку симметричности строки формулируется не так: "проверить симметричны ли текстовые символы относительно середины строки". А вот так: "проверить являются ли байты во внутреннем представлении строки симметричными"?
Видимо это как раз пример странной задачки типичной только для собеседования — ну типа там задачи про гномов и шапки и т.п.
Здравствуйте, Кэр, Вы писали:
DDI>>каким боком текстовые символы имеют отношение к индексатору и сабстрингу ?
Кэр>В том-то и дело, что только косвенным Или ваша задача про проверку симметричности строки формулируется не так: "проверить симметричны ли текстовые символы относительно середины строки". А вот так: "проверить являются ли байты во внутреннем представлении строки симметричными"?
вот так "проверить симметричны ли символы в строке относительно её середины"
можешь проверить по топику я тебя не обманул
ты спрашивай стебаться все умеют
Кэр>Видимо это как раз пример странной задачки типичной только для собеседования — ну типа там задачи про гномов и шапки и т.п.
задача про симметрию только для собеседования
задача много чего о человеке рассказывает, очень много
Здравствуйте, Ромашка, Вы писали:
Р>Dan Dare III пишет: >> задача про симметрию только для собеседования >> задача много чего о человеке рассказывает, очень много
Р>ну-ну...
Р>а ну-ка расскажите обо мне?
условие ты не понял у тебя есть еще две попытки
Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки
даже то решение что ты привел далеко от идеала цикл for в строке не зря есть индексатор
Здравствуйте, AndrewVK, Вы писали:
AVK>Итого, расход памяти 2 х длинна строки, 3 прохода. При том что задача решается за один проход и без расхода памяти.
условие первоначальное было с оговоркой рекурсия толи непрочитали толи плохо прочитали
а вторая попытка на оценке не сказывается как и третья а здесь видно пошутить решили ну и ладно
Здравствуйте, Ромашка, Вы писали:
Р>Понимаешь в чем проблема? Ты пытаешься выяснить чего я не знаю, я Р>пытаюсь тебе показать, что я умею. Первое же нетривиальное решение и Р>каждый из нас уверен, что его собеседник идиот. ИМХО, очень плохая Р>тактика, пусть даже на собеседовании.
Но очень распространенная. Чаще всего описывается "популярным шоу": "вот вам вопрос, а теперь угадайте, какой правильный ответ я загадал." (к)
Здравствуйте, AndrewVK, Вы писали:
AVK>Потому что подобные тесты надо запускать с включенной оптимизацией, в релизе, и не в студии. AVK>Да и не важно все это, цель собеседования ведь не выяснить знания каких то тонкостей, а определить базовые умения. Если, как ты утверждаешь, основанием для подобного кода являлось не неумение написать "классический вариант", а стремление показать знание каких то тонкостей, то это быстро выяснится после одного-двух наводящих вопросов.
конечно это самое главное — по самой маленькой задаче можно задать массы вопросов
Здравствуйте, Dan Dare III, Вы писали:
Р>>Понимаешь в чем проблема? Ты пытаешься выяснить чего я не знаю, я Р>>пытаюсь тебе показать, что я умею.
DDI>человек которые не понимает условие и настаивает на своей правоте не интересен в принципе
результат решения задачи "собеседование" очевиден для обоих...
DDI>если рекурсию ты не умеешь извини нам нужны те кто её умеют
Р>>каждый из нас уверен, что его собеседник идиот. ИМХО, очень плохая
DDI>не каждый а только ты в этом уверен DDI>я не снижаю бал за твое решение если ты напишешь рекурсию хоть бы и с третьей попытки
DDI>показывать что ты умеешь нужно не только задачей а то вопрос про рекурсию а кандидат толкает про массивы DDI>как я могу что либо оценивать в этом случае ?
Основная проблема: Вы не можете внятно пояснить Ему чего Вы хотите — Он не может внятно понять Вас чего Вы хотите. Здесь "Он" и "Вы" — конкретные люди: конкретный кандидат и конкретный "потенциальный работодатель". Результат очевиден: какими бы навыками в действительности не обладали и первый и второй, понимания между ними нет. Кто в этом виновать — простите за выражение, пофиг — результат: вместе им не работать.
имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо...
Здравствуйте, The Lex, Вы писали:
DDI>>человек которые не понимает условие и настаивает на своей правоте не интересен в принципе
TL> результат решения задачи "собеседование" очевиден для обоих...
если за три попытки кандидат так и не дал рекурсии а бывает и так то дальше я говорю что больше разговаривать нет смысла
мои коллеги меня поддерживают в этом
TL>Основная проблема: Вы не можете внятно пояснить Ему чего Вы хотите — Он не может внятно понять Вас чего Вы хотите.
здесь проблемы никакой Ромашка сначала хотел пошутить а потом полез на броневик
я не сомневаюсь что он напишет рекурсию а он вот про идиотов речь завел — нехорошо это
TL>Здесь "Он" и "Вы" — конкретные люди: конкретный кандидат и конкретный "потенциальный работодатель". Результат очевиден: какими бы навыками в действительности не обладали и первый и второй, понимания между ними нет. Кто в этом виновать — простите за выражение, пофиг — результат: вместе им не работать.
я с тобой согласен но здесь форум а не собеседование
TL>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо...
Здравствуйте, AndrewVK, Вы писали:
DDI>>это не хамство как раз, прочитай свое сообщение про продакшн код DDI>>тебя посадить к нам на собеседование и ты зарежешь всех кандидатов что у меня за год были
AVK>Сочувствую.
сочувствовать не надо, в регионах не так как в столице а ты именно в столице работаешь если не ошибась, там уровень разработчиков конечно выше
AVK>>>Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты. DDI>>ты хочешь сказать что именно ко мне попадают люди которые этого не знают ? AVK>Видимо да.
Здравствуйте, Dan Dare III, Вы писали:
DDI>используй индексатор его не зря в string сунули
А вы в курсе что индексатор на каждый вызов делает проверку на вхождение индекса в границы. И операция эта занимает время? (В результате чего предложенные варианты без индексатора, но с болшей памятью работают быстрее).
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, The Lex, Вы писали:
DDI>>>человек которые не понимает условие и настаивает на своей правоте не интересен в принципе
TL>> результат решения задачи "собеседование" очевиден для обоих...
DDI>если за три попытки кандидат так и не дал рекурсии а бывает и так то дальше я говорю что больше разговаривать нет смысла DDI>мои коллеги меня поддерживают в этом
TL>>Основная проблема: Вы не можете внятно пояснить Ему чего Вы хотите — Он не может внятно понять Вас чего Вы хотите.
DDI>здесь проблемы никакой Ромашка сначала хотел пошутить а потом полез на броневик DDI>я не сомневаюсь что он напишет рекурсию а он вот про идиотов речь завел — нехорошо это
Если честно, то я тоже (хоть и читаю в пол-уха — у нас вечер воскресенья) не понял какую такую "рекурсию" ты (Вы?) имеешь в виду и почему ты после 1-й неправильной попытки сказал "пробуй еще", а не попытался объяснить задачу. В виду этого лично мне непонятно, зачем тратить твое и его время (мы о собеседовании — не про тебя и Ромашку здесь) на дальнейшие попытки. Я же говорю: в игру "я угадаю загаданный вами ответ с 3-х попыток!" играть неинтересно — по крайней мере, на собеседовании. К тому же это явно говорит о том, что есть непонимание между кандидатом и потенциальным менеджером или сложившейся системой — раз уж собеседующий в ней уже работает и, наверное, успешно. Раз так — какой смысл пытаться вникнуть в "черный ящик закрытой системы", если он "закрылся" еще до начала непосредственной работы? Деньги за это не платят, а вероятность "продолжить играть в загадки" и после собеседования крайне высока. И для первого, и для второго Ромашка выбрал, имхо, самый рациональный вариант: оба говорят другому "ты — идиот" — можно мысленно — и вежливо расходятся. Никому ни тепло, ни жарко — это просто собеседование. А вот когда таких "идиотов" становится много — "это Же неспроста!.." (к)
TL>>Здесь "Он" и "Вы" — конкретные люди: конкретный кандидат и конкретный "потенциальный работодатель". Результат очевиден: какими бы навыками в действительности не обладали и первый и второй, понимания между ними нет. Кто в этом виновать — простите за выражение, пофиг — результат: вместе им не работать.
DDI>я с тобой согласен но здесь форум а не собеседование
Я думал мы тута обсуждаем да?
TL>>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо...
DDI>так и есть
Здравствуйте, Ravlyk, Вы писали:
R>А вы в курсе что индексатор на каждый вызов делает проверку на вхождение индекса в границы. И операция эта занимает время? (В результате чего предложенные варианты без индексатора, но с болшей памятью работают быстрее).
вариант с циклом
минимальное время выполнения — сравнение двух крайних символов
вариант с копированием
минимальное время выполнения будет на порядки больше — это сабстринг + преобразование в массив + реверс + сабстринг + новая строка + сравнение
максимальное время выполнения когда строка симметрична
это время будет лишь иногда меньше у варианта с копированием и то в тестовых условиях, когда выделение памяти для огромной строки не заставит поработать гц
я всетаки немного сомневаюсь даже в этом что будет быстрее в тепличных условиях
теперь открой какой нибудь файлик и посмотри как много там симметричных строк
Здравствуйте, The Lex, Вы писали:
TL> Если честно, то я тоже (хоть и читаю в пол-уха — у нас вечер воскресенья) не понял какую такую "рекурсию" ты (Вы?) имеешь в виду и почему ты после 1-й неправильной попытки сказал "пробуй еще", а не попытался объяснить задачу.
я заметил тут многие на ты так что на ты
TL>В виду этого лично мне непонятно, зачем тратить твое и его время (мы о собеседовании — не про тебя и Ромашку здесь) на дальнейшие попытки.
собеседование это стрессовая обстановка и кандидат нервничает даже если серьезный профи это заметно
проколы бывают у всех
на собеседовании я стараюсь естественно показать ошибку и объяснить а не говорить пробуй еще
кроме того я оцениваю и свои усилия на получение информации и это тоже идет в рассчет
TL>>>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо... DDI>>так и есть TL> А как именно?
именно так как ты сказал в том сообщении
разборы полетов они всем помогают
Здравствуйте, AndrewVK, Вы писали:
R>>А вы в курсе что индексатор на каждый вызов делает проверку на вхождение индекса в границы. AVK>А ты в курсе, что оптимизатор JIT такие проверки умеет устранять?
Умеет, но не всегда, и надеятся на это безоговорочно не стОит. И в случае с рекурсией (и передачей индексирующих переменных через стек) он точно не справится.
Здравствуйте, Lao, Вы писали:
G>>Где тут применить РЕКУРСИЮ???
Lao>Надо написать метод static bool IsSymmetricInternal(string s, int beginIndex, int endIndex), который будет сравнивать символы с указанными индексами и рекурсивно вызывать себя, если символы равны. Тогда и будет рекурсия
Lao>static bool IsSymmetric(string s) Lao>{ Lao> return IsSymmetric(s, 0, s.Length-1); Lao>}
Супер! Жаль что такие работодатели ответ не скажут — "чтобы вы их не запоминали для следующего собеседования" — но работать к таким все равно...
ЗЫ
static bool IsSymmetricInternal(string s, int beginIndex, int endIndex)
{
return IsSymmetricInternal(s, beginIndex+1, endIndex-1);
}
А в первом варианте, боюсь, дальше начала строки не уйдем...
Я не буду отвечать по всему топику, просто тут напишу....
> здесь проблемы никакой Ромашка сначала хотел пошутить а потом полез на > броневик
На самом деле я ошибся. Два раза. В первый раз когда "по-диагонали"
прочитал про рекурсию, второй раз когда протестил "по быстрому" в дебаге.
> я не сомневаюсь что он напишет рекурсию а он вот про идиотов речь завел > — нехорошо это
Не напишу я рекурсию. У меня сердце кровью обливалось, когда я этот
пример писал, а когда я подумаю, что там в рекурсии будет творится с
ресурсами... Лучше не заставляй.
А про идиотов... Извини, не думал что ты это на свой счет примешь...
Не обращай внимания, это мои тараканы.
> TL>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с > аналогичной причиной отрицательного результата — имеет смысл задуматься > и первому, и второму. Но это так — имхо... > > так и есть
Думается мне, что все немного сложнее. Человек берется не только писать
строчки кода, но и взаимодействовать с коллективом. Нефиг в сложившуюся
команду соваться со своим уставом. Хотя иногда полезно встряхнуть.
Впрочем, твоя реакция, хоть и была ожидаема, но порадовала корректностью.
Posted via RSDN NNTP Server 2.1 beta
Всё, что нас не убивает, ещё горько об этом пожалеет.
Здравствуйте, The Lex, Вы писали:
TL>Здравствуйте, Lao, Вы писали:
G>>>Где тут применить РЕКУРСИЮ???
Lao>>Надо написать метод static bool IsSymmetricInternal(string s, int beginIndex, int endIndex), который будет сравнивать символы с указанными индексами и рекурсивно вызывать себя, если символы равны. Тогда и будет рекурсия
Lao>>static bool IsSymmetric(string s) Lao>>{ Lao>> return IsSymmetric(s, 0, s.Length-1); Lao>>}
TL>Супер! Жаль что такие работодатели ответ не скажут — "чтобы вы их не запоминали для следующего собеседования" — но работать к таким все равно...
TL>ЗЫ TL>
TL>static bool IsSymmetricInternal(string s, int beginIndex, int endIndex)
TL>{
TL> return IsSymmetricInternal(s, beginIndex+1, endIndex-1);
TL>}
TL>
TL>А в первом варианте, боюсь, дальше начала строки не уйдем...
На самом деле я имел ввиду это
static bool IsSymmetric(string s)
{
return IsSymmetricInternal(s, 0, s.Length-1);
}
В IsSymmetricInternal конечно же сужаем диапозон.
Просто спешил и опечатался.
Здравствуйте, Lao, Вы писали:
Lao>На самом деле я имел ввиду это
Lao>static bool IsSymmetric(string s) Lao>{ Lao> return IsSymmetricInternal(s, 0, s.Length-1); Lao>} Lao>В IsSymmetricInternal конечно же сужаем диапозон. Lao>Просто спешил и опечатался.
Здравствуйте, The Lex, Вы писали:
TL>Здравствуйте, Lao, Вы писали:
Lao>>На самом деле я имел ввиду это
Lao>>static bool IsSymmetric(string s) Lao>>{ Lao>> return IsSymmetricInternal(s, 0, s.Length-1); Lao>>} Lao>>В IsSymmetricInternal конечно же сужаем диапозон. Lao>>Просто спешил и опечатался.
TL>А зачем нам целых 2 одинаковые функции?
Они не одинаковые:
-IsSymmetricInternal — это рекурсивная функция
-IsSymmetric — обертка (не рекурсивная).
Ситуация: вам нужно проверять строку на симметричность (в реальной программе), возможно даже в нескольких местах кода. Вы написали рекурсивную (ну а вдруг )
bool IsSymmetricInternal(string s, int firstIndex, int lastIndex).
В своем коде вы будете вызывать ее так
string s="sdfsdf";
IsSymmetricInternal(s, 0, s.Length-1)
или напишите обертку bool IsSymmetric(string s)
и будете делать так
string s="sdfsdf";
IsSymmetric(s)
?
Здравствуйте, gandjustas, Вы писали:
G>Первое решение, пришедшее в голову (предыдущий пост — прикол, хотел рассказ о себе услышать):
хочешь услышать рассказ мое мыло semen>dot<kosobutski>a<gmail>dot<com
но только если придешь на собеседование а то
не хочу что бы ты как ромашка поступил
G>Где тут применить РЕКУРСИЮ???
13 строчек
static bool IsSymmetric(string s)
{
// null пусть будет симметричнымif (s == null)
return true;
int length = s.Length;
// если длинна 1 или 0 значит уже симметричноif (length <= 1)
return true;
// сюда придет строка длинной 2 и вышеif (s[0] != s[length - 1])
return false;
// оптимизация if (length <= 3)
return true;
// здесь длинна будет только 4 и вышеreturn IsSymmetric(s.Substring(1, length - 2));
}
Здравствуйте, Dan Dare III, Вы писали:
DDI>13 строчек
я не требую буквально такого же
ничего страшного что кандидат пропустит нулл или еще что
это нормально бумага всетаки не компьютер но главное что бы рекурсию не пропустил
DDI>
DDI> static bool IsSymmetric(string s)
DDI> {
DDI> // 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 и выше
DDI> return IsSymmetric(s.Substring(1, length - 2));
DDI> }
DDI>
Dan Dare III пишет: > я не требую буквально такого же
Семен, но ведь это же ужасть.
> ничего страшного что кандидат пропустит нулл или еще что > это нормально бумага всетаки не компьютер но главное что бы рекурсию не > пропустил
Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была
действительно нужна? Ну или хотя-бы не тормозила жутко?
Posted via RSDN NNTP Server 2.1 beta
Всё, что нас не убивает, ещё горько об этом пожалеет.
Здравствуйте, Lao, Вы писали:
TL>>А зачем нам целых 2 одинаковые функции?
Lao>Они не одинаковые: Lao>-IsSymmetricInternal — это рекурсивная функция Lao>-IsSymmetric — обертка (не рекурсивная).
Lao>Ситуация: вам нужно проверять строку на симметричность (в реальной программе), возможно даже в нескольких местах кода. Вы написали рекурсивную (ну а вдруг ) Lao>bool IsSymmetricInternal(string s, int firstIndex, int lastIndex).
Lao>В своем коде вы будете вызывать ее так Lao>string s="sdfsdf"; Lao>IsSymmetricInternal(s, 0, s.Length-1)
Lao>или напишите обертку bool IsSymmetric(string s) Lao>и будете делать так Lao>string s="sdfsdf"; Lao>IsSymmetric(s) Lao>?
Здравствуйте, Ромашка, Вы писали:
Р>Семен, но ведь это же ужасть.
люди пишут, не справляются только единичные кандидаты
Р>Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была Р>действительно нужна? Ну или хотя-бы не тормозила жутко?
есть рекурсия очень полезная 9 строк но решают её единицы и после этого кандидаты всегда недовольны
Здравствуйте, The Lex, Вы писали:
TL>Ясно. Это именно то, о чем я сразу и сказал: "угадайте ответ, который я загадал" (к)
нет смотри ответ aerobus у него отличное решение хотя и отличное от моего
главное 2 вопроса
1 рекурсия
2 работает
+ я сам сказал "я не требую буквально такого же"
TL>Такое себе "книжное употребление рекурсии в виде простого решения вырожденного варианта задачи и последовательного сведения рекурсией всех остальных вариантов к вырожденному". Имеет академическую ценность — практической ценности, как и подавляющие 100% таких вопросов, не имеет.
TL>ЗЫ. А теперь вопрос на засыпку: у чем Ваш код неверен? А впрочем... таки да — наверное будет работать и это таки "оптимизация". Но этот код действительно ужасен! Надеюсь, Вы с этим согласны? Из этой конторы просто необходимо бежать, бежать, бежать! Потому что если такой код предлагают писать на собеседовании — что же они предложать писать в реальной работе!?
Lex пойми что я не господь бог и возможности ограничены и это не мешает брать на работу тех кто сильнее меня
если девелопер напишет лучше меня будь уверен его код я пойму
условий то всего 2 — рекурсия и работоспособность
мы стобой не знакомы с какой стати ты говоришь что то про организацию ?
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, aerobus, Вы писали:
DDI>>>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки
A>>10 мин
DDI>вот, отличный результат только код трудночитаемый DDI>задачу даю так чтобы смог её проверить без компьютера DDI>"&& true" зачем
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, aerobus, Вы писали:
A>>Да, насчет "&& true" чего-то я прогнал
DDI>скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"
Не понял что ты имел ввиду — как-то ты рекурсивно сюжет закрутил
Кинь пжлст ссылку на твое решение этой задачи (просто интересно какой он другой подход к ее решению)
Здравствуйте, aerobus, Вы писали:
DDI>>скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"
A>Не понял что ты имел ввиду — как-то ты рекурсивно сюжет закрутил
A>Кинь пжлст ссылку на твое решение этой задачи (просто интересно какой он другой подход к ее решению)
Здравствуйте, Dan Dare III, Вы писали:
DDI>мы стобой не знакомы с какой стати ты говоришь что то про организацию ?
А я и не говорю о тебе лично или о твоей организации Я делаю вывод, основываясь на собственном опыте, собственных предпочтениях, собственном понимании эффективности и применимости тех или иных решений — здесь "собственный опыт" — примененный в некотором количестве реальных практических проектов — т.е. решающих конкретные задачи за деньги. (ну, иногда без — но это неважно)
DDI>какие аргументы на счет ужасного кода ?
Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)
Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе. Скажу проще: есть очень большая вероятность что завтра ты придешь ко мне и скажешь: "а я хочу чтобы у тебя при проверке симметричности строк рекурсия применялась — будь добр..." (к) Еще раз: это не о тебе и не обо мне мы же пока опыта общения не имели — это мое видение того, как характеризует рабочий процесс появление _таких_ задач уже на собеседовании. Если ты не согласен что подобное решение — это "не очень хорошо, а точнее, вредно" — вот тут-то опять-таки и есть самый главный сабж: я (условно) — кандидат, ты (условно) — потенциальный работодатель — если ты реально используешь и отстаиваешь такие решения — хозяин-барин! — но я трижды подумаю чтобы идти к тебе работать и лично я пойду только в случае крайней нужды, поскольку опыт такой печальный повторять без нужды не хочу.
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, Lao, Вы писали:
Lao>>В С# не получиться сделать параметры по-умолчанию.
DDI>почему же не получится можно сэмулировать
Здравствуйте, AndrewVK, Вы писали:
DDI>>объясни пожалуйста что это такое
AVK>Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.
Здравствуйте, The Lex, Вы писали:
TL>Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)
приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
TL>Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе.
TL>Я внятно выразился?
внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие
Но если не суетиться и спокойно подумать — над тем, стоит ли использовать такие задачи на собеседовании — то... почему бы и нет? Но Баба Яга все равно против! (к)
Здравствуйте, Dan Dare III, Вы писали:
TL>>Аргументы простые: в данном случае мы имеем "код ради кода" — решаем задачу несвойственным, пусть будет "необычным" методом, исключительно с целью применить этот метод. Я с таким сталкивался в реальной работе: "ой, вы знаете, а я тут классную вещь нашел! а давайте и мы где-нибудь ее у себя приспособим..." (к)
DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
Давай пойдем от обратного: зачем тебе вообще "проверять кандидата на знание рекурсии"?
TL>>Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе.
TL>>Я внятно выразился?
DDI>внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие
Если дополнить картину твоим этим постом, то картина рисуется четче, но от это еще пессимистичнее...
Здравствуйте, aerobus, Вы писали:
BZ>>а логическими операторами почему не пользуешься?
A>Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.
я ваш код прочесть не смог. по моему мнению, людей с императивным мышлением ("ди эрсте колонне марширт...") брать как раз не надо. мыслить нужно логически — либо строка короткая, либо первый и последний символы одинаковы, а середина опять же симметрична
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, Lao, Вы писали:
Lao>>В С# не получиться сделать параметры по-умолчанию.
DDI>почему же не получится можно сэмулировать
Хотя бы намекните, что вы имели ввиду под эмуляцией.
DDI>>почему же не получится можно сэмулировать
Lao>Расскажите, пожалуйста, как это "сэмулировать"?
сэмулировать через params но вобще это штука была я видел такой код в портированой проге с с++ там авторы злоупотребили перегрузкой и параметрами по умолчанию
BZ>>я тебе предлагаю более простой способ отбора — показываешь свои 13 строчек девелоперу и если его кондрашка не хватит, сразу прощаешься
DDI>решение дожно быть понятно всем если они не решили разумеется
Это, как раз, не обязательно. Тут, как раз, уже другая задача со стороны компании: не доказать что решение вообще существует, а показать кандидату, как именно задачу решили бы они и каких именно решений они ждут от работника.
Из здесь возникает вопрос: поскольку предложенная задача "на рекурсия" в реальной жизни нежизнеспособна — зачем ее вообще предлагать решать, кроме как из принципа "проверить знание рекурсии"? Если вы какие-то задачи решаете рекурсией — имхо, логично предложить подобную задачу и посмотреть, как ее решит кандидат — тогда мы получим практические цели процесса "собеседование". В чем суть ставить задачу собеседования "выяснить что _вообще_ знает и чего не знает кандидат" — этого я за свою скромную жизнь понять не смог.
DDI>кроме этого есть специалисты которые переходят на с# из других областей — им тяжеловато читать код
Ну ты даешь! А если у тебя весь код так написан? И ты возмешь себе "специалиста", которому "трудно будет читать" твой код? А смысл? Как с ним потом работать?
DDI>всем им я показываю решение что бы у кандидата не было сомнений что задача действительно разрешаема в 15 строчек
вот-вот... а зачем? какова цель инициированного тобой процесса "собеседование"?
DDI>потому решени должно читаться очень, очень легко
А зачем? Какова цель демонстрации такого решения?
DDI>если твой код кандидат не поймет — это исключительно твой прокол кандидата этого ты уже не увидишь
А нужно? См.выше: если он твой код не поймет уже на собеседовании — что с ним дальше делать, начни он работать?
DDI>ко мне приходят и по второму разу и были случаи что брали если замечали прогресс
Здравствуйте, BulatZiganshin, Вы писали:
BZ>>>а логическими операторами почему не пользуешься?
A>>Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.
BZ>я ваш код прочесть не смог. по моему мнению, людей с императивным мышлением ("ди эрсте колонне марширт...") брать как раз не надо. мыслить нужно логически — либо строка короткая, либо первый и последний символы одинаковы, а середина опять же симметрична
я смог прочесть и твой код и его запросто, при чем в коде aerobus нашел к чему придраться
а вот код avk я не понял
Здравствуйте, Кэр, Вы писали:
Кэр>Грандиозно. И вы ищите людей, которые будут выдавать такой код в ответ на вашу задачу?.. Удачи вашей компании... Она ей пригодится.
Кэр>Начнем с того, что данный код не работает на следующей симметричной строке "a\u0304ba\u0304".
я нигде не говорил что надо проверять текстовые символы перечитай я это повторяю тебе второй раз
если ты напишешь код с текстовыми символами не волнуйся я пойму его и собеседование закончится скорее с положительным результатом в твою пользу при чем бонус будет очень серьезным
я говорю всерьез без подколок
Кэр>Зачем вам там рекурсия крайне непонятно.
в проекте такой код не должен быть это очевидно от сюда и пляши
Здравствуйте, The Lex, Вы писали:
DDI>>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
TL>Давай пойдем от обратного: зачем тебе вообще "проверять кандидата на знание рекурсии"?
считаю хорошо проверяет умение строить алгоритмы
сложно загружать кандидата смысла нет
DDI>>внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие
TL> Если дополнить картину твоим этим постом, то картина рисуется четче, но от это еще пессимистичнее...
Здравствуйте, The Lex, Вы писали:
TL>Это, как раз, не обязательно. Тут, как раз, уже другая задача со стороны компании: не доказать что решение вообще существует, а показать кандидату, как именно задачу решили бы они и каких именно решений они ждут от работника.
код должен быть понят кандидатом
многие ихз нерешивших буквально не верят что решение существует
TL>Из здесь возникает вопрос: поскольку предложенная задача "на рекурсия" в реальной жизни нежизнеспособна
приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
DDI>>кроме этого есть специалисты которые переходят на с# из других областей — им тяжеловато читать код
TL>Ну ты даешь! А если у тебя весь код так написан? И ты возмешь себе "специалиста", которому "трудно будет читать" твой код? А смысл? Как с ним потом работать?
если специалист решил задачу то уровень у него выше чем у того кому я показываю решение при чем гарантия 100%
DDI>>всем им я показываю решение что бы у кандидата не было сомнений что задача действительно разрешаема в 15 строчек
TL> вот-вот... а зачем? какова цель инициированного тобой процесса "собеседование"?
процесс не я инициировал
задача — очень удобно рассматривать кандидата со всех сторон
DDI>>потому решени должно читаться очень, очень легко TL>А зачем? Какова цель демонстрации такого решения?
я уже объяснил — что бы у кандидата не было никаких сомнений что я спрашивал простой вопрос
это для того что бы он спокойно прислал резюме через год
DDI>>если твой код кандидат не поймет — это исключительно твой прокол кандидата этого ты уже не увидишь TL>А нужно? См.выше: если он твой код не поймет уже на собеседовании — что с ним дальше делать, начни он работать?
нужно через год если будет прогресс все отлично — его берут
Здравствуйте, Dan Dare III, Вы писали:
DDI>>>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
TL>>Давай пойдем от обратного: зачем тебе вообще "проверять кандидата на знание рекурсии"?
DDI>считаю хорошо проверяет умение строить алгоритмы DDI>сложно загружать кандидата смысла нет
Тут скорее "задача-головоломка на непрактичное применение известных алгоритмов/механизмов". Ну пусть будет "нетрадиционное применение". В целом, может иметь смысл в качестве проверки "незашоренности" мышления. С таким применением я согласен, но с целью — нет: я сам "зашоренный" на практические задачи и я не знаю хорошо мне будет или плохо, если в моей команде попадется такой вот "незашоренный оригинал".
DDI>>>внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие
TL>> Если дополнить картину твоим этим постом, то картина рисуется четче, но от это еще пессимистичнее...
DDI>я не понял что ты хотел сказать
Я хотел сказать, что очевидно стало, что ты даешь задачи, которых в практической работе у тебя на самом деле нет. Хорошо это или плохо? Т.е. вот я — кандидат. Я пришел, увидел, и понял (ну или для себя решил): "он дает задачи не из тех которые предстоит решать в работе" — точнее "совсем не из тех". Как ты считаешь я, как кандидат, должен оценить для себя перспективу работы с таким работодателем?
Lao>>Расскажите, пожалуйста, как это "сэмулировать"?
DDI>сэмулировать через params но вобще это шУтка была я видел такой код в портированой проге с с++ там авторы злоупотребили перегрузкой и параметрами по умолчанию
Здравствуйте, Dan Dare III, Вы писали:
TL>>>Я внятно выразился?
TL>>Но если не суетиться и спокойно подумать — над тем, стоит ли использовать такие задачи на собеседовании — то... почему бы и нет? Но Баба Яга все равно против! (к)
DDI>кроме этой задачи есть и без рекурсий DDI>примитивный конечный автомат — её даю совсем слабым студентам для того что бы через год можно было оценить прогресс
Здравствуйте, The Lex, Вы писали:
TL>Тут скорее "задача-головоломка на непрактичное применение известных алгоритмов/механизмов". Ну пусть будет "нетрадиционное применение". В целом, может иметь смысл в качестве проверки "незашоренности" мышления. С таким применением я согласен, но с целью — нет: я сам "зашоренный" на практические задачи и я не знаю хорошо мне будет или плохо, если в моей команде попадется такой вот "незашоренный оригинал".
да, задача головоломка хотя и не головоломка на деле то
DDI>>я не понял что ты хотел сказать
TL>Я хотел сказать, что очевидно стало, что ты даешь задачи, которых в практической работе у тебя на самом деле нет. Хорошо это или плохо? Т.е. вот я — кандидат. Я пришел, увидел, и понял (ну или для себя решил): "он дает задачи не из тех которые предстоит решать в работе" — точнее "совсем не из тех".
твое право отказаться силой тебя никто не заставляет работать
Здравствуйте, The Lex, Вы писали:
DDI>>кроме этой задачи есть и без рекурсий DDI>>примитивный конечный автомат — её даю совсем слабым студентам для того что бы через год можно было оценить прогресс
TL>Каким таким "студентам"?
задачу я не сразу и на этот момент у меня есть определенное мнение или сам студент говорит что не может
я не настаиваю даю попроще
конечный автомат — это только название страшное а решения один цикл и один if внутри цикла
есть и еще задачи — там требование решить в один проход без выделения памяти там решение только рекурсивное
само решение простое вовсе 8-9 строчек а условие довольно сложное студенты вот его не понимают
Здравствуйте, Dan Dare III, Вы писали:
TL>>Это, как раз, не обязательно. Тут, как раз, уже другая задача со стороны компании: не доказать что решение вообще существует, а показать кандидату, как именно задачу решили бы они и каких именно решений они ждут от работника.
DDI>код должен быть понят кандидатом DDI>многие ихз нерешивших буквально не верят что решение существует
Вот я и говорю: у тебя нет задачи "научить кандидата" (или ты таки имеешь в виду студентов!?) — у тебя есть задача "заполнить вакансию" — задачу "посмотреть людей и поискать которые может пригодятся" я не рассматриваю в виду непрактичности конечной цели.
TL>>Из здесь возникает вопрос: поскольку предложенная задача "на рекурсия" в реальной жизни нежизнеспособна
DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
Слушай... так ты препод! Только без обид! Ну ты бы сразу так и сказал!
DDI>>>кроме этого есть специалисты которые переходят на с# из других областей — им тяжеловато читать код
TL>>Ну ты даешь! А если у тебя весь код так написан? И ты возмешь себе "специалиста", которому "трудно будет читать" твой код? А смысл? Как с ним потом работать?
DDI>если специалист решил задачу то уровень у него выше чем у того кому я показываю решение при чем гарантия 100%
DDI>>>всем им я показываю решение что бы у кандидата не было сомнений что задача действительно разрешаема в 15 строчек
TL>> вот-вот... а зачем? какова цель инициированного тобой процесса "собеседование"?
DDI>процесс не я инициировал DDI>задача — очень удобно рассматривать кандидата со всех сторон
Зачем!? Жил бы ты в Штатах — еще и получил бы "втык" за "херассмент" (или как там его?)
DDI>>>потому решени должно читаться очень, очень легко TL>>А зачем? Какова цель демонстрации такого решения?
DDI>я уже объяснил — что бы у кандидата не было никаких сомнений что я спрашивал простой вопрос DDI>это для того что бы он спокойно прислал резюме через год
Ты точно в Штатах живешь: ну кто станет каждый год резюме слать? Кроме студентов и студентов на пересдаче...
DDI>>>если твой код кандидат не поймет — это исключительно твой прокол кандидата этого ты уже не увидишь TL>>А нужно? См.выше: если он твой код не поймет уже на собеседовании — что с ним дальше делать, начни он работать?
DDI>нужно через год если будет прогресс все отлично — его берут
Здравствуйте, Dan Dare III, Вы писали:
TL>>Я хотел сказать, что очевидно стало, что ты даешь задачи, которых в практической работе у тебя на самом деле нет. Хорошо это или плохо? Т.е. вот я — кандидат. Я пришел, увидел, и понял (ну или для себя решил): "он дает задачи не из тех которые предстоит решать в работе" — точнее "совсем не из тех".
DDI>твое право отказаться силой тебя никто не заставляет работать
Ты на меня рельсы не переводи — ты лично мне (и другим читающим это кандидатам) что посоветуешь в такой ситуации?
Здравствуйте, The Lex, Вы писали:
DDI>>код должен быть понят кандидатом DDI>>многие ихз нерешивших буквально не верят что решение существует
TL> Вот я и говорю: у тебя нет задачи "научить кандидата" (или ты таки имеешь в виду студентов!?) — у тебя есть задача "заполнить вакансию" — задачу "посмотреть людей и поискать которые может пригодятся" я не рассматриваю в виду непрактичности конечной цели.
задачи много не только заполнить вакансию
DDI>>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
TL> Слушай... так ты препод! Только без обид! Ну ты бы сразу так и сказал!
я не преподаватель просто заметил что избитые примеры ничего не показывают
DDI>>процесс не я инициировал DDI>>задача — очень удобно рассматривать кандидата со всех сторон
TL> Зачем!? Жил бы ты в Штатах — еще и получил бы "втык" за "херассмент" (или как там его?)
потому что я несу ответсвенность за свою работу
просто "заполнить вакансию" собеседований не надо — бери любого у кого есть хоть какой то опыт
DDI>>я уже объяснил — что бы у кандидата не было никаких сомнений что я спрашивал простой вопрос DDI>>это для того что бы он спокойно прислал резюме через год
TL> Ты точно в Штатах живешь: ну кто станет каждый год резюме слать? Кроме студентов и студентов на пересдаче...
каждый год шлют резюме студенты и молодые специалисты
DDI>>нужно через год если будет прогресс все отлично — его берут
TL> или "таки получает свой зачОт" (к)
я не ставлю себя выше кандидата
у многих на собеседовании можно многому научиться
Здравствуйте, Dan Dare III, Вы писали:
DDI>я смог прочесть и твой код и его запросто, при чем в коде aerobus нашел к чему придраться DDI>а вот код avk я не понял
if (ты имеешь виду придирку к "&& true")
{
то я спокоен (это просто прогнал я в спешке)
}
else
{
укажи где
}
Здравствуйте, The Lex, Вы писали:
DDI>>твое право отказаться силой тебя никто не заставляет работать
TL> Ты на меня рельсы не переводи — ты лично мне (и другим читающим это кандидатам) что посоветуешь в такой ситуации?
я только про себя могу сказать
дал задачу неудобную — она должна быть простая — я не хочу тебя завалить , просто отнесись к этому как к микрозаданию, неприятному но вынужденному
люди проявляют себя четко именно в пограничных ситуациях ничего не могу с этим поделать не я это придумал
Здравствуйте, AndrewVK, Вы писали:
AVK>>>Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.
DDI>>а какая версия C# ?
AVK>3.0. Но на 2.0 можно то же самое сделать, только писанины больше.
Здравствуйте, Dan Dare III, Вы писали:
DDI>>>твое право отказаться силой тебя никто не заставляет работать
TL>> Ты на меня рельсы не переводи — ты лично мне (и другим читающим это кандидатам) что посоветуешь в такой ситуации?
DDI>я только про себя могу сказать
DDI>дал задачу неудобную — она должна быть простая — я не хочу тебя завалить , просто отнесись к этому как к микрозаданию, неприятному но вынужденному
DDI>люди проявляют себя четко именно в пограничных ситуациях ничего не могу с этим поделать не я это придумал
1. Плохо, что ты (как потенциальный работодатель и начальник) не можешь ответить прямо, а "философствуешь": в реальной работе это сильно непрактично и сильно демотивирует работника и подчиненного. имхо.
2. Плохо, что упор делается сразу же на "именно в пограничных ситуациях": возникает подозрение что "именно в пограничных ситуациях" происходит ваша обычная работа, а работать в таких условиях далеко не каждый захочет. имхо.
3. В качестве "хорошего" добавлю классическое: что русскому хорошо, то немцу — смерть. (к) Так что — "каждому свое"... Но я бы работать у такого работодателя поостерегся. имхо.
Здравствуйте, Dan Dare III, Вы писали:
DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
В Lines когда нибудь играл? Вот алгоритм, который находит путь для перемещаемого шарика или детектирует его отсутствие (называется алгоритм Ли) — прекрасная задачка.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, The Lex, Вы писали:
DDI>>люди проявляют себя четко именно в пограничных ситуациях ничего не могу с этим поделать не я это придумал
TL>1. Плохо, что ты (как потенциальный работодатель и начальник) не можешь ответить прямо, а "философствуешь": в реальной работе это сильно непрактично и сильно демотивирует работника и подчиненного. имхо.
это не философия а психология
подход к интервью — не стрессовое, но нагрузкой
на стрессовых примерно так
- ты написал плохой код, ты это хотя бы осознаешь это ?
— ???
— ну вот это, это и это четко говорит о твоем уровне ! ты даже ООП не знаешь а утверждаешь что с паттернами знаком
я был на таких и видел со стороны с одной стороны если человек прошел , можно не сомневаться, что он крут
правда побочный эффект — много толковых спецов собеседование такое не пройдет
боюсь от такого подхода через год-два кандидатов у фирмы убавится люди ведь не дураки
Здравствуйте, aerobus, Вы писали:
BZ>>я ваш код прочесть не смог. по моему мнению, людей с императивным мышлением ("ди эрсте колонне марширт...") брать как раз не надо. мыслить нужно логически — либо строка короткая, либо первый и последний символы одинаковы, а середина опять же симметрична
A>Мне жаль что вы знаете только логический подход к решению задач. A>Вы сейчас обвинили меня и наверное многих других в том, что программируя на императивном языке они мыслят императивно Смешно.
не лезь в бутылку, просто осознай как ты идёшь к решению такой задачи. сначала формулируешь в уме логичсекие условия (которые a выше сформулировал), а затем начинаешь утаптывать их в неочевидное императивное решение. зачем? ты ведь уже не на ассемблере пишешь, и язык предоставляет тебе средства для формулировки логических условий
и не покупайся на слова. пролог — это унификация и бектрекинг, а не логические операции
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Dan Dare III, Вы писали:
DDI>>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
AVK>В Lines когда нибудь играл? Вот алгоритм, который находит путь для перемещаемого шарика или детектирует его отсутствие (называется алгоритм Ли) — прекрасная задачка.
алгоритм ли нерекуррентный по другому это волновой алгоритм
решается многими путями в том числе и итерационными
можно решать и рекурсией но тогда это будет не волновой — это другой, похожий алгоритм для трассировки
идею я вобщем понял — это олимпиадная задача для 10го класса раньше была, сейчас она хрестоматийная но на собеседовании можно попробовать
Здравствуйте, BulatZiganshin, Вы писали:
BZ>не лезь в бутылку, просто осознай как ты идёшь к решению такой задачи. сначала формулируешь в уме логичсекие условия (которые a выше сформулировал), а затем начинаешь утаптывать их в неочевидное императивное решение. зачем? ты ведь уже не на ассемблере пишешь, и язык предоставляет тебе средства для формулировки логических условий
чего вы ссоритесь у вас код примерно одинаково читается
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Ромашка, Вы писали:
Р>>Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была Р>>действительно нужна? Ну или хотя-бы не тормозила жутко?
AVK>Точно, надо так AVK>
Черт побери, выглядит мощно
Но вот только мне одному так кажется или программа на C# все больше начинает напоминать чириканье наподобие регулярных выражений? Я код прочитал совсем не с первого взгляда.
Здравствуйте, Кэр, Вы писали:
Кэр>Черт побери, выглядит мощно Кэр>Но вот только мне одному так кажется или программа на C# все больше начинает напоминать чириканье наподобие регулярных выражений? Я код прочитал совсем не с первого взгляда.
а почему ты не спросил на счет текстовых символов ?
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, aerobus, Вы писали:
BZ>>>я ваш код прочесть не смог. по моему мнению, людей с императивным мышлением ("ди эрсте колонне марширт...") брать как раз не надо. мыслить нужно логически — либо строка короткая, либо первый и последний символы одинаковы, а середина опять же симметрична
A>>Мне жаль что вы знаете только логический подход к решению задач. A>>Вы сейчас обвинили меня и наверное многих других в том, что программируя на императивном языке они мыслят императивно Смешно.
BZ>не лезь в бутылку, просто осознай как ты идёшь к решению такой задачи. сначала формулируешь в уме логичсекие условия (которые a выше сформулировал), а затем начинаешь утаптывать их в неочевидное императивное решение. зачем? ты ведь уже не на ассемблере пишешь, и язык предоставляет тебе средства для формулировки логических условий
Не будь так категоричен — истина всегда где-то посередине.
Я не против использования логических подходов и сам их часто использую, но не в ущерб пониманию кода другим челом или мною через месяц. Все примеры рекурсий, которые я видел в императивном стиле были. Почему?
Не пойму почему для тебя простое императивное решение является неочевидным.
BZ>и не покупайся на слова. пролог — это унификация и бектрекинг, а не логические операции
это унификация, бектрекинг И логические операции. Но не надо о прологе — не в нем дело
Здравствуйте, aerobus, Вы писали:
BZ>>и не покупайся на слова. пролог — это унификация и бектрекинг, а не логические операции
A>это унификация, бектрекинг И логические операции. Но не надо о прологе — не в нем дело
а ооп — это классы, функции и логические операции?
Здравствуйте, Dan Dare III, Вы писали:
Кэр>>Черт побери, выглядит мощно Кэр>>Но вот только мне одному так кажется или программа на C# все больше начинает напоминать чириканье наподобие регулярных выражений? Я код прочитал совсем не с первого взгляда.
DDI>а почему ты не спросил на счет текстовых символов ?
Потому что это могли прочитать уже и в других ветках. А в отличие от других неверных решений — данное хотя бы выглядит очень необычно
Здравствуйте, De-Bill, Вы писали: DB>Нет, не более лёгкий путь. Просто сейчас моя оперативная память до отказа забита финасами, математикой, статистикой, формулами. Для GC там места нет, да и не нужен он мне в данный момент.
В подтверждение, рекомендую всем почитать
David Allen. Getting Things Done
Основная мысль — не держать в голове (в оперативной памяти) и вокруг себя того,
что Вам не надо в данный момент
DDI>>>люди проявляют себя четко именно в пограничных ситуациях ничего не могу с этим поделать не я это придумал TL>>1. Плохо, что ты (как потенциальный работодатель и начальник) не можешь ответить прямо, а "философствуешь": в реальной работе это сильно непрактично и сильно демотивирует работника и подчиненного. имхо. DDI>это не философия а психология
И где вы такой психологии набрались только ?
DDI>подход к интервью — не стрессовое, но нагрузкой
DDI>на стрессовых примерно так
Это не стрессовое, это хамское.
DB>На самом деле, я читал Рихтера, и даже разбирался во всём этом, только вот сейчас вспомнить сходу ничего не смогу. Но если, вдруг, мне это понадобится, то всмопню за 20 минут. Кстати, кроме Рихтера я ещё много чего читал. Даже основы операционных систем Таненбаума и даже изучал исходники ядра MINIX. Но так как это мне в работе не нужно, то я ничего уже не помню.
Ну так вы там сначала решите у себя в голове с чем вы можете разобраться и что можете вспомнить, а после пишите.
То что глупо держать в голове всё это и так понятно. А то что вы использовали базовые вещи и потом "забыли", так это лично ваши проблемы. Я вот использовал и не забыл.
Dog>>... но похоже вы избираете более лёгкий путь DB>Нет, не более лёгкий путь. Просто сейчас моя оперативная память до отказа забита финасами, математикой, статистикой, формулами. Для GC там места нет, да и не нужен он мне в данный момент.
Вы в данный момент ищите работу ?
Dog>>зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно. DB>Допустим, в городе N есть 100 программистов на .NET, которые готовы сменить работу. Из них 95 не работали с unmanaged ресурсами и не помнят подробности работы GC. У нас есть два варианта: DB>а. Попытаться нанять оставшихся 5. DB>b. Нанять лучших из 100 и заставить в первый же рабочий день изучить работу с unmanaged ресурсами и GC.
Вы себя к каким отностите ?
Здравствуйте, AndrewVK, Вы писали:
DDI>>решается многими путями в том числе и итерационными
AVK>Но рекурсией намного проще.
волновой он не решается рекурсией
рекурсия — это самй простой алгоритм нахождения пути, при этом путь может быть сколь угодно неэффективным
с волновым будет самый эффективный
Здравствуйте, gandjustas, Вы писали:
G>[Не думал что буду писать по-удаффски, но сдержаться не могу] G>АФФТАР, убей себя аб стену! G>Этот код в случае симметричной строки работает в 100 раз медленее варианта с Array.Reverse!!!!!!!
я знаю это много лет
DDI>>можно, я не люблю трудночитаемый неэффективный код G>Этот код гораздо читаемее вариантов в 3 строчки?
варианты в три строчки многие не понимают
сначала я показывал компактный код как у Булата
потом я развернул его
потом дописал комментарии
сейчас проблем нет
G>Нет уж, не надо. У меня есть работа, и на собеседовании никто не заставлял меня на бумаге писать рекурсию (кстати очень тяжелое занятие, потому что на бумаге пошаговая отладка не работает)
код пишется в голове а в студии или бумаге он фиксируется,
да бумага неудобна но думать можно и без бумаги вовсе и даже без студии
если кандидат пишет код дебуггером это уровень ниже требуемого
DDI>>задача много чего о человеке рассказывает, очень много G>Мне о вас очень много эти 13 строчек рассказли. G>Кстати у вас еще две попытки есть
твое сообщение больше о тебе говорит
обо мне ты ничего не сказал
Здравствуйте, Konstantin.Nizhegorodov, Вы писали:
DDI>>
DDI>>string s = "строка символов";
DDI>>s.Remove(6,9);
DDI>>Console.Write(s);
DDI>>
DDI>>Услышал ответ "строка символов", поправлять не стал
KN>А парень был абсолютно прав, а Вы заблуждались.
это мой прокол копипаст
я во время собеседования все фиксирую на бумаге — он ответил "строка"
еще был наводящий вопрос про s[0] = '0'; и результат "0трока"
Здравствуйте, De-Bill, Вы писали:
DB>На самом деле, я читал Рихтера, и даже разбирался во всём этом, только вот сейчас вспомнить сходу ничего не смогу. Но если, вдруг, мне это понадобится, то всмопню за 20 минут. Кстати, кроме Рихтера я ещё много чего читал. Даже основы операционных систем Таненбаума и даже изучал исходники ядра MINIX. Но так как это мне в работе не нужно, то я ничего уже не помню.
если ты читал хоть пять лет назад то вспомнишь легко наводящие вопросы они для того и задаются что бы дать время вспомнить если есть чего вспоминать
DB>Нет, не горжусь. Глупо гордиться незнанием. Но и комплексовать по этому поводу не собираюсь.
+1
DB>Допустим, в городе N есть 100 программистов на .NET, которые готовы сменить работу. Из них 95 не работали с unmanaged ресурсами и не помнят подробности работы GC. У нас есть два варианта: DB>а. Попытаться нанять оставшихся 5. DB>b. Нанять лучших из 100 и заставить в первый же рабочий день изучить работу с unmanaged ресурсами и GC.
unmanaged это только один из вопросов
4 плюса из 12 возможных это совсем мало
Здравствуйте, Dog, Вы писали:
Dog>То что глупо держать в голове всё это и так понятно. А то что вы использовали базовые вещи и потом "забыли", так это лично ваши проблемы. Я вот использовал и не забыл.
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, gandjustas, Вы писали:
G>>[Не думал что буду писать по-удаффски, но сдержаться не могу] G>>АФФТАР, убей себя аб стену! G>>Этот код в случае симметричной строки работает в 100 раз медленее варианта с Array.Reverse!!!!!!!
DDI>я знаю это много лет
Так от кандидата требовалось выдать такой ответ? Если нет, зачем вы его пишете здесь?
Если код — говно, зачем оптимизацию туда включать?
DDI>>>можно, я не люблю трудночитаемый неэффективный код G>>Этот код гораздо читаемее вариантов в 3 строчки?
DDI>варианты в три строчки многие не понимают
Ну да, зато все рекурсию понимают...
DDI>код пишется в голове а в студии или бумаге он фиксируется, DDI>да бумага неудобна но думать можно и без бумаги вовсе и даже без студии DDI>если кандидат пишет код дебуггером это уровень ниже требуемого
Вы в какой реальности живете? Заставьте своих программистов писать код в Notepad, а компилировать с помощью csc и не пользоваться отладчиком. Посмотрите во сколько (тысяч) раз упадет производительность.
Вы лет 10-15 назад информатику в вузе не преподавали?
Здравствуйте, Dan Dare III, Вы писали:
DDI>рекурсию нужно уметь и понимать в нашей области DDI>приведи пример хорошей не избитой задачи буду благодарен DDI>решение — до 15 строчек со скобками
Обход дерева. Например посчитать количество листовых узлов. Можно использовать XML DOM.
DDI>от кандидата годится любой код на C# если это проверка на симметричность если выполняются два условия — рекурсия + работоспособность
То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает.
Если рекурсия так важна в вашей работе, то возьмите какую-либо задачу, решаемую только рекурсией, упростите так чтобы влезала в 15-20 строк.
Здравствуйте, Dan Dare III, Вы писали:
DDI>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким кодом.
DDI>>>на стрессовых примерно так Dog>>Это не стрессовое, это хамское. DDI>много компаний использует именно такой подход DDI>узнавай про собеседования там куда хочешь идти
Вроде как сейчас работников не хватает, а не работы. Зачем себя сознательно ограничивать вресурсах ?
Dog>>То что глупо держать в голове всё это и так понятно. А то что вы использовали базовые вещи и потом "забыли", так это лично ваши проблемы. Я вот использовал и не забыл. DDI>значит ты забыл чтото другое
Я уже писал. За пару собеседований основные вещи языка и платформы быстро вспоминаются, если конечно у вас есть желание получить работу
Не могу удержаться снова.
G>>Нет уж, не надо. У меня есть работа, и на собеседовании никто не заставлял меня на бумаге писать рекурсию (кстати очень тяжелое занятие, потому что на бумаге пошаговая отладка не работает) DDI>код пишется в голове а в студии или бумаге он фиксируется,
Неверно
DDI>да бумага неудобна но думать можно и без бумаги вовсе и даже без студии
Неверно
DDI>если кандидат пишет код дебуггером это уровень ниже требуемого
Неверно
Это лишь ваше представлениие о написании кода.
Всё что, для меня, будет написано через (_._) будет проверятся дебагером, а ещё лучше тестами. Пусть даже там 3 строчки. А проявление "преждевременной оптимизации" и есть — через (_._)
зы. Я ничего не имею против этой задачи на собеседовании. Вполне нормальная для проверки понимания рекурсии.
Здравствуйте, Dog, Вы писали:
DDI>>код пишется в голове а в студии или бумаге он фиксируется, Dog>Неверно Dog>Неверно Dog>Неверно Dog>Это лишь ваше представлениие о написании кода.
конечно мое твое представление применить не могу потому что ничего об этом не знаю
скажи пожалуйста ты с подобными задачами сталкивался на собеседовании ?
Dog>Всё что, для меня, будет написано через (_._) будет проверятся дебагером, а ещё лучше тестами. Пусть даже там 3 строчки. А проявление "преждевременной оптимизации" и есть — через (_._)
если не ты писал код — это нормально
если написано без ошибок и без лишних трат времени то это алгоритм
если с ошибками или/и лишними тратами времени это преждевременная оптимизация
все вместе это уровень разработчика
Dog>зы. Я ничего не имею против этой задачи на собеседовании. Вполне нормальная для проверки понимания рекурсии.
Здравствуйте, Konstantin.Nizhegorodov, Вы писали:
DDI>>приведи задание что бы была рекурсия и при этом не было избитых примеров типа чисел фибоначчи которые студенты могут писать по памяти и условие было в две-три строки и само решение укладывалось в 15 строк вместе со скобками в виде один оператор на строку
KN>Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким кодом.
поделись пожалуйста результами, сколько как решает, подсказываешь ты им, где спотыкаются, какие ошибки делают, кто чаще сваливается ?
задача все таки олимпиадная у школьников
Здравствуйте, 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 это будет: ()(), (())
Если подумаете — уверен, что придумаете еще. Если не придумаете — уверен, что сможете найти в интернете. Если еще подумаете — поймете, что программирование не упирается в рекурсию
DDI>таких полно среди студентов и выпускников а они самые ценные кандидаты
G>>То есть вы требуете от кандидата написать то, что он никогда не писал и не напишет. Потому что вариант с рекурсией длинее и хуже работает. DDI>да именно так и есть мнение что это показывает наличие DDI>умения алгоритмы придумывать DDI>умения алгоритмы реализовывать
Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели.
Dog>>Это лишь ваше представлениие о написании кода. DDI>конечно мое твое представление применить не могу потому что ничего об этом не знаю
Так вот откуда ростут ноги у вашей "психологии" (а надо бы знать )
DDI>скажи пожалуйста ты с подобными задачами сталкивался на собеседовании ?
Да сталкивался неоднократно. Что-то решал, что-то нет. Я так и не понял какие знания от меня хотели на этих задачках. (...может кроме понимания рекурсии). Большинство алгоритмов, с которыми за последние годы я сталкивался, реализовывались конечными автоматами. Сам когда-то давал такие задачки кандидатам, но, судя по ответной реакции да и последующим результатам, быстро разачаровался. Можно давать такие задачки кандидатам без или с малым опытом, но если человек проработал пару лет, то смысла не вижу.
Гораздо эффективнее создать кандидату номальную, спокойную, дружественную обстановку, что бы он мог расслабится и отвечать своими словами. Написание программ на бумажке с "тремя жизнями" на нормальные условия ни как не тянет.
Проведение "стрессового" собеседования может практиковаться начальником или кадровиком. Ведь это именно их работа оценивать психологическое состояние кандидата, а не ваша.
Dog>>Всё что, для меня, будет написано через (_._) будет проверятся дебагером, а ещё лучше тестами. Пусть даже там 3 строчки. А проявление "преждевременной оптимизации" и есть — через (_._) DDI>если не ты писал код — это нормально
Нормально — это если не я писал, не я буду править и вообще я этого не видел. Тогда это нормально
DDI>если написано без ошибок и без лишних трат времени то это алгоритм DDI>если с ошибками или/и лишними тратами времени это преждевременная оптимизация
Уууу... Преждевременная оптимизация это и есть написание как раз вот таких алгоритмических "велосипедов", что и ведёт к усложнению кода, потерям времени, возникновению ошибок и т.д. про отладку и поддержку вообще молчу.
Здравствуйте, Dog, Вы писали:
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 минут
в интернете я искать умею отлично — многое пробую но не много подходит под требования выше
Здравствуйте, Dog, Вы писали:
Dog>Гораздо эффективнее создать кандидату номальную, спокойную, дружественную обстановку, что бы он мог расслабится и отвечать своими словами. Написание программ на бумажке с "тремя жизнями" на нормальные условия ни как не тянет.
так можно только самыми сильными девелоперами их вообще незачем спрашивать разве для галочки
далеко не все кандидаты такие
Dog>Проведение "стрессового" собеседования может практиковаться начальником или кадровиком. Ведь это именно их работа оценивать психологическое состояние кандидата, а не ваша.
это общие слова для чего ты их привел ?
DDI>>если написано без ошибок и без лишних трат времени то это алгоритм DDI>>если с ошибками или/и лишними тратами времени это преждевременная оптимизация Dog>Уууу... Преждевременная оптимизация это и есть написание как раз вот таких алгоритмических "велосипедов", что и ведёт к усложнению кода, потерям времени, возникновению ошибок и т.д. про отладку и поддержку вообще молчу.
ты говоришь общие фразы известные даже студентам
результат есть потраченое время и количество рабочего кода он и определяет твой уровень
Здравствуйте, Dan Dare III, Вы писали:
DDI>а как быть с теми кто комбинаторики не знает это ведь невостребованая часть математики
Да ну. Вы кнута не читали? Перестановки — одна из важнейших частей математики.
Что-то ваши понятия о необходимых знаниях расходятся с реальной жизнью.
Тем более про перестановку можно очень быстро объяснить.
DDI>если ты перечитаешь этот топик то поймешь что я даю задачи не только на рекурсию
Я перечитал — не заметил других ЗАДАЧ (а не вопросов на зание языка или платформы)
DDI>условие задачи должно быть очень простым, не должно требовать специальных знаний, специальной практики , задача должна быть решена в 15 минут
99% таких задач можно будет решить без рекурсии. Требовать решение с рекурсией ради рекурсии — глупость.
ЗЫ. Повоторяю вопрос, чем же вы таким занимаетесь что рекурсия настолько необходима, но нет примеров реальных задач?
DDI>а как быть с теми кто комбинаторики не знает это ведь невостребованая часть математики
Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120. Всего лишь 120 против 1000, которые были бы если бы три клавиши нажимались последовательно. Затем, когда изучали теорию вероятности, проверил через факториалы — действительно 120.
Сие сакральное знание приходилсь однажды даже применять на практике (зная, что комбинаций всего 120 и поэтому не отчаиваясь заранее их перебрать, удалось попасть в подъезд с кодом. Мобил в то время еще не было, так что не удивляйтесь, что просто не позвонил хозяину).
Здравствуйте, egaron, Вы писали:
E>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.
Здравствуйте, BulatZiganshin, Вы писали:
BZ>Здравствуйте, egaron, Вы писали:
E>>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.
BZ>а не 10*9*8?
Это как же?
В таких замках ведь 123==321==231==132==312==213. Цыфирки-то одновременно жмутся. Кстати, это было сказано в исходном посте(про ПОСЛЕДОВАТЕЛЬНОЕ нажатие кнпочек и кардинально увеличенное от этого количество вариантов).
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, Vzhyk, Вы писали:
>> KN>Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким >> кодом. >> >> поделись пожалуйста результами, сколько как решает, подсказываешь ты им, >> где спотыкаются, какие ошибки делают, кто чаще сваливается ? >> задача все таки олимпиадная у школьников V>Я, в частности, когда мне оное подсунули, развернулся и ушел. V>И абсолютно доволен этим решением.
Поддерживаю.
Мне на одном собеседовании дали задачу написать мини-рефлектор (правда на дом) — вот это действительно интересная задача. В этой конторе я потом некоторое время работал, и задача та была из реальной практики проектов.
Также давали задачу на написание числа словами — решается на месте за полтора часа с дебагом и отладкой.
Есть еще куча интересных задач (больших и маленьких), которые можно использовать на собеседованиях.
А вот то что тут обсуждают, можно спросить усно на понимание способа решения и потратить пол минуты вместо 10.
P.S. Задача на рекурсию: подобрать минимальное количество монеток для получения заданной суммы. (Правда рекурсивное/итеративное решение не всегда является оптимальным, но об этом можно спросить для продвижения кандидата на следующий уровень ).
Здравствуйте, gandjustas, Вы писали:
DDI>>а как быть с теми кто комбинаторики не знает это ведь невостребованая часть математики G>Да ну. Вы кнута не читали? Перестановки — одна из важнейших частей математики. G>Что-то ваши понятия о необходимых знаниях расходятся с реальной жизнью.
сколько раз за год ты применял комбинаторику на работе у себя
DDI>>если ты перечитаешь этот топик то поймешь что я даю задачи не только на рекурсию G>Я перечитал — не заметил других ЗАДАЧ (а не вопросов на зание языка или платформы)
ты плохо читал
DDI>>условие задачи должно быть очень простым, не должно требовать специальных знаний, специальной практики , задача должна быть решена в 15 минут G>99% таких задач можно будет решить без рекурсии. Требовать решение с рекурсией ради рекурсии — глупость.
можно, я знаю это
есть задачи и без рекурсии, приводил примеры
G>ЗЫ. Повоторяю вопрос, чем же вы таким занимаетесь что рекурсия настолько необходима, но нет примеров реальных задач?
реальный пример на 15 строчек кода максимум что бы условие было понятно всем это очень сложно
Здравствуйте, gandjustas, Вы писали:
DDI>>таких полно среди студентов и выпускников а они самые ценные кандидаты G>Деревьев мало в этой жизни чтоли? Хотябы простое бинарное дерево. Думаю уж с алгоритмами обхода все вупускники знакомы
ты говоришь о том что лично тебе удобно
деревья давал, не получил ни одного правильного решения и перестал давать
DDI>>а технологии это вторично у нас G>И чем же вы таким занимаетесь?
мне лень это объяснять топик давно перестал быть актуальным
G>Очень пагубный путь. Можете взять человека, который будет заниматься придумыванием новых алгоритмов, вместо реализации существующих.
теоретически да а на практике собеседование это не только задача
я не преследую цель "определить брать или не брать"
брать или не брать меня вообще не интересует по большому счету
G>Вам всетаки кодер нужен или кто?
этот вопрос ты задал уже в самом конце и меня это веселит
в данный момент мы готовы брать даже студентов на кодерские должности
собеседование зависит от того на какую должность — когда приходится говорить с сеньором все по другому хотя это не значит что сеньорам я задач не даю просто они все разные у меня
Здравствуйте, Vzhyk, Вы писали:
V>А зачем. Есть много фирм, на которых я работать буду, только если V>заплатят раз в 10 больше, чем имею сейчас. Еси им нравиться тратить V>время на подобное, это их проблемы. В такой фирме я все одно не смогу V>работать.
я не понял зачем ты тогда на собеседования ходишь
или ты по задаче на собеседовании можешь оценить как будет работаться какое будет начальство и какой коллектив ?
этого я не понял
>> если тебя куда то не пригласили на собеседование >> — если ты проходил и по направлению и по ЗП и по должности это оно и есть V>Не было такого.
Здравствуйте, Dog, Вы писали:
DDI>>умения алгоритмы придумывать DDI>>умения алгоритмы реализовывать Dog>Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели.
Здравствуйте, Eugeny__, Вы писали:
DDI>>задача про симметрию только для собеседования DDI>>задача много чего о человеке рассказывает, очень много
E__>Можно узнать, что в этой задаче такого, что будет рассказывать о человеке?
эта задача ничем не лучше и не хуже тех что я даю на собеседовании
Здравствуйте, Eugeny__, Вы писали:
E__>А по-моему, если уж проверять, то лучше кинуть NPE E__>C чего это NULL симметричен? К NULL данная операция неприменима.
можно и так
E__>[c#] E__>Оптимизация? Круто.
вместо 2 написать 3 это и была оптимизация юмор такой задача то больше головоломка
E__>Здесь можно бы было бы куда больше прооптимизировать. E__>Каждый сабстринг создает новую копию строки. E__>Так что было бы выгоднее создать метод IsSymmetric(string s, int start, int end) и сравнивать чары
выгоднее вообще рекурсию не использовать а цикл
E__>Вобщем, смысла данного задания я не вижу.
смысл простой — экономия времени на тестирование кандидата
дать чтото реальное очень и очень сложно и пока ты это реальное найдешь то зарежешь минимум половину проходных кандидатов
а я люблю что бы проходило как можно больше и резались только откровенно слабые
E__>1. Если нужна просто понятная реализация — Ромашка привел гораздо более простой вариант(обычно так и нужно, врядли где такое сравнение будет узким местом). Кстати, таки вариант Ромашки куда быстрее. E__>2. Если нужна таки скорость — рекурсия и сабстринг сожрут всю оптимизацию. То есть, само задание не предполагает, что нужна скорость.
я знаю это много лет ничего нового ты не сказал
E__>Вобщем, я бы в страшном сне не написал ТАК проверку на симметричность.
Здравствуйте, Dog, Вы писали:
E__>>2. Если нужна таки скорость — рекурсия и сабстринг сожрут всю оптимизацию. То есть, само задание не предполагает, что нужна скорость. Dog>Нужно ни то и ни другое. Нужно посмотреть понимает ли человек рекурсию и посмотреть как он думает. Всё.
+ может ли он хоть немного абстрагироваться от обычных шаблонов
+ задача это микрозадание — как он относится к заданиям вообще
по работе нужно делать не только что умеешь а также и то что должно быть сделано хотя бы это было неприятно
DDI>>а как быть с теми кто комбинаторики не знает это ведь невостребованая часть математики
E>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120. Всего лишь 120 против 1000, которые были бы если бы три клавиши нажимались последовательно. Затем, когда изучали теорию вероятности, проверил через факториалы — действительно 120.
итого комбинаторика понадобилась тебе раза три за всю жизнь и ни разу по работе
Здравствуйте, BulatZiganshin, Вы писали:
E>>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.
BZ>а не 10*9*8?
вот так с этой комбинаторикой — сколько кандидатов столько и мнений
Здравствуйте, Ravlyk, Вы писали:
R>Поддерживаю. R>Мне на одном собеседовании дали задачу написать мини-рефлектор (правда на дом) — вот это действительно интересная задача. В этой конторе я потом некоторое время работал, и задача та была из реальной практики проектов. R>Также давали задачу на написание числа словами — решается на месте за полтора часа с дебагом и отладкой. R>Есть еще куча интересных задач (больших и маленьких), которые можно использовать на собеседованиях.
можно но надо уложиться в час полтора и при этом выяснить много чего кроме задачи
R>P.S. Задача на рекурсию: подобрать минимальное количество монеток для получения заданной суммы. (Правда рекурсивное/итеративное решение не всегда является оптимальным, но об этом можно спросить для продвижения кандидата на следующий уровень ).
DDI>>>умения алгоритмы придумывать DDI>>>умения алгоритмы реализовывать Dog>>Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели. DDI>я не понял чего ты хотел этим сказать
Неужели вы не контролируете код своих студентов ?
DDI>по работе нужно делать не только что умеешь а также и то что должно быть сделано хотя бы это было неприятно
Ой, я деже боюсь представить чем вы там, сжимая зубы и остальные части тела, занимаетесь
Здравствуйте, Dan Dare III, Вы писали:
DDI>вот так с этой комбинаторикой — сколько кандидатов столько и мнений
Столько мнений у тех, кто комбинаторику не знают.
Вы похоже не знаете.
DDI>а с рекурсией 80% мнений совпадают
И все эти мнения — рекурсия во многих случаях не нужна.
Вообще стоит почитать хотябы первый том Кнута, чтобы рассуждать об алгортимических задачах и их решениях (там комбинаторика есть)
Здравствуйте, Dog, Вы писали:
E>>Сие сакральное знание приходилсь однажды даже применять на практике (зная, что комбинаций всего 120 и поэтому не отчаиваясь заранее их перебрать, удалось попасть в подъезд с кодом. Мобил в то время еще не было, так что не удивляйтесь, что просто не позвонил хозяину). Dog>Вот чем математик отличается от нормального человека. Нормальный бы просто внимательно посмотрел на замок и нажал три самые потёртые клавиши (проверено на практике неоднократно)
Знаем мы такую тему . Но интересно же, а сколько их всего, комбинаций...
Что же до того случая.
В описываемом подъезде (о чудо!) потертость кнопок не была очевидна, ибо квратир там было всего несколько.
Но ... кнопки, подозреваемые в потертости, естественно, являлись первыми кандидатами на перебор. И , как выяснилось при открытии, только одна из имевших признаки потертости оказалась правильной, остальные две — ложными.
Еще была такая фишка, что кнопки (или код) в таких замках иногда меняли, чтобы сбить с толку любителей вычислять потертые. Но это уже к теме комбинаторики лишь косвенно относится.
Здравствуйте, Dan Dare III, Вы писали:
DDI>Здравствуйте, BulatZiganshin, Вы писали:
E>>>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.
BZ>>а не 10*9*8?
DDI>итого комбинаторика понадобилась тебе раза три за всю жизнь и ни разу по работе
Нет, она мне "надобилась" чаще , чем ГЦ в дотнете (тот не надобился ни разу). Пусть надобилась и не по работе.
Например — сосчитать, сколько рукопожатий необходимо, когда здороваются N человек , = N*(N-1)/2. После этого неволей бросишь дурную привычку здороваться со всеми подряд за руку.
Ну, еще в личной жизни, если так можно выразиться, пригождалась сия наука и оставила определенные воспоминания. Был я когда-то влбюлен в молоденькую училку по матстатистике, и поэтому отчаянно учил сей предмет, (проходили тогда как раз комбинаторику), дабы блеснуть и произвести на нее впечатление. Это щас понимаю, как все было наивно, и что выглядел я не более чем заученный ботан, а тогда ... наивная юность и восприятие другое. Затем училка как-то раз пришла на урок с маленькой дочкой — видать, не с кем было оставить, после этого я ходить на ее уроки перестал и получил на зачете только 4 балла.
Здравствуйте, gandjustas, Вы писали:
DDI>>вот так с этой комбинаторикой — сколько кандидатов столько и мнений G>Столько мнений у тех, кто комбинаторику не знают. G>Вы похоже не знаете.
сколько раз за год ты её применял ?
DDI>>а с рекурсией 80% мнений совпадают G>И все эти мнения — рекурсия во многих случаях не нужна.
80% решают простую рекурсию а комбинаторику только студенты математических специальностей
G>Вообще стоит почитать хотябы первый том Кнута, чтобы рассуждать об алгортимических задачах и их решениях (там комбинаторика есть)
предпочитаю "Алгоритмы. Построение и анализ" + еще кучку таких же толстых но по конкретной области
Здравствуйте, Dog, Вы писали:
Dog>>>Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели. DDI>>я не понял чего ты хотел этим сказать Dog>Неужели вы не контролируете код своих студентов ?
Здравствуйте, Dog, Вы писали:
DDI>>по работе нужно делать не только что умеешь а также и то что должно быть сделано хотя бы это было неприятно Dog>Ой, я деже боюсь представить чем вы там, сжимая зубы и остальные части тела, занимаетесь
Здравствуйте, egaron, Вы писали:
E>Например — сосчитать, сколько рукопожатий необходимо, когда здороваются N человек , = N*(N-1)/2. После этого неволей бросишь дурную привычку здороваться со всеми подряд за руку.
E>Ну, еще в личной жизни, если так можно выразиться, пригождалась сия наука и оставила определенные воспоминания.
я могу просто спросить на собеседовании, пригодилась ли комбинаторика хоть раз и поверю на слово
для этого незачем задачу давать
если человек знает азы и чего спецального не знает в том числе комбинаторики то сможет освоить