C# - как проводить собеседование ?
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.10.07 21:42
Оценка:
Привет !

Провожу собеседование с кандидатами по технической части. Нужен специалист — C# .Net WinForms DevExpress XML.

Раньше больше спрашивал по C++/ATL/COM, чистых дотнетчиков не собеседовал. Сейчас занимаюсь собеседованием чисто дотнетчиков(всего собеседования провожу около 3-4 лет).

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

Обычно начинаю с общих вопросов, рассказываю разное,задаю несколько вопросов по языку, несколько по устройству нета, несколько по фреймворку и довольно много вопросов по той части, которую человек осветил в резюме и обязательно даю задачу(решение до 15 строчек вместе со скобкам, до трех попыток). Также спрашиваю про раличные архитектурные решения, структуры данных, алгоритмы. Собеседование длится час, чуть больше. Вопросы в основном зависят от того, что в резюме, вопросником не пользуюсь, выдергиваю вопросы из того, что говорит кандидат(уточняю, переспрашиваю и тд). Спрашиваю не жостко, даю возможность поправиться, подумать и тд. Естественно, если спросил например про стурктуры данных, то чего то я уже не смогу спросить.

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

Понятно, что знание не означает умение, а умение не означает работу, а работа не означает знание
Тем не менее, кто как спрашивает по технической части ?

Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?
Re: C# - как проводить собеседование ?
От: Кэр  
Дата: 30.10.07 22:50
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

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


В Microsoft в телефонном интервью спрашивают: как работает GC, как построена работа с ошибками в C#. В личных интервью вопросов именно по языку не задают. То есть на знание конкретно C# — вопросов на самом деле не очень много. Хотя даже по заданным "простым" вопросам можно уже многое понять — насколько стройное изложение, как хорошо собеседуемый может объяснить сложное простыми словами, насколько сильно при этом отклоняется от истины.

Я бы от себя добавил вопрос про операции со строками — в .Net они проводятся с учетом текущей локали и большое количество даже senior программистов пишут код невалидный для экзотических локалей. Ответ на этот вопрос заодно показывает, насколько четкая картина мира в голове относительно "представление строки в памяти", "интерпретация строки в различных локалях". Хотя это уже во многом вопросы на засыпку. Я бы лучше что-нибудь по структурам данных поспрашивал и по несложным алгоритмам. Знания конкретной технологии — вещь приходящая
Re: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 00:03
Оценка: 4 (2) +1
PE>Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать.
Имхо, проблема не людей, а ваша

PE>Понятно, что знание не означает умение, а умение не означает работу, а работа не означает знание

PE>Тем не менее, кто как спрашивает по технической части ?
Из ощущуния последних пройденых собеседований. Не знаю как там отвечают, давно не собеседовал, а спрашивать не умеют точно. Большинство технических собеседований похожи на "назад в университет". Упор делается на знания, а не на понимание. В результате после прохождения 2-3 собеседований можешь спокойно, к примеру, нарисовать любую uml диаграмку из GoF`а, хотя из самих патттернов использовал дай бог половину, а сам uml и того реже.
Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы. Эт опозволит создать более комфортную обстановку. Не заставляйте человека долго обдумывать вопрос, задавайте наводящие вопросы, включайте его в обсуждение, общайтесь.
По поводу задачки на 15 мин на листочке со скобками. Это просто ОПА. Вы сами часто пишите код на листочке. Заметьте не наброски кода, а именно законченый код со скобочками да ещё с тремя жизнями Думаю большинство из нас довольно быстро забывают что такое ручка, рабочий инструмент у нас клавиатура Меня дико ломала необходимость писать на бумаге, даже программку из 4-5 строчек. При наличии компьера тоже не всё так гладко. Я без решарпера уже не могу и порою ловлю себя на том, что на голой студии задумываюсь над простыми вещами вроде синаксиса foreach Так что достаточно спросить именно решение. Программку из 10-15 строчек и её идею довольно просто описать словами. Зачем вводить человека в стрессовое состояние. Что вы хотите протестировать таким способом на техническом собеседовании ?
С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго.

PE>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?

Надо не спрашивать, а общаться с человеком.

зы. Хотя, зачем я вам всё это пишу. С опытом проведения собеседований 3-4 года, вы должы это и так знать
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[2]: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 00:11
Оценка:
PE>>Если есть у кого большой опыт, поделитесь, пожалуйста, как вы спрашиваете в подобных случаях кандидатов ? Собеседование, напомню, провожу как технический специалист — кандидаты могут попасть на разные проекты.
Кэр>В Microsoft в телефонном интервью спрашивают: как работает GC, как построена работа с ошибками в C#.
Помоему у каждого на интервью спрашивают как работает GC. Что однако не мешате людям, с завидным постоянством, вызывать GC.Collect
У меня на каждом интервью спрашивали как работает GC. Всё сводилось к цитированию Рихтера. Что именно хотели этим протестировать для меня до сих пор остаётся загадкой.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re: C# - как проводить собеседование ?
От: SkyDance Земля  
Дата: 31.10.07 06:21
Оценка: 12 (2) -1
PE>Основная проблема — люди не знают простых вопросов, зато знают сложные Посему постоянно ищу, что спрашивать, а что не спрашивать.

Напоминаете мне профессоров из ВУЗов. Которые эти самые "простые вопросы" объясняли фразой "отсюда очевидно, что ...", но потом требовали у студентов доказывать эти "очевидные" истины.
Возможны два варианта:
1. Вы не совсем корректно представляете себе, что просто, и что сложно. Например, вы так долго работали с одной конкретной сложной технологией, так в нее погрузились, что для вас она стала простой. И, напротив, совсем не работаете с другой, простенькой, потому вам она кажется странной и сложной.
2. Вы ждете ответа на "простой" вопрос именно в той форме, в которой этот ответ содержится у вас в голове. Грубый pattern matching механизм Ну как у плохих преподавателей, которые дают лекции, и на экзамене требуют ответа в точности теми же словами, что они говорили на лекции. Для того, чтобы это обнаружить, надо просто... поприсутствовать на собеседовании в виде безмолвного человека, а собеседование пусть проведет ваш коллега. Просто посмотрите со стороны, как это происходит. Многое станет более ясным. Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит.
Re[2]: C# - как проводить собеседование ?
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 31.10.07 12:45
Оценка:
Здравствуйте, Dog, Вы писали:

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

Dog>Имхо, проблема не людей, а ваша

Я об том и говорю, что проблема у меня.

Dog>Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы.


Идейка весьма сильная ! Лучше психолога проф. рядом сажать.

Dog>По поводу задачки на 15 мин на листочке со скобками. Это просто ОПА.


Это то я понимаю. Много кандидатов могут легко рассказать алгоритм, но не могут ничего заимплементить. Проверял не раз, давая им доступ к компьютеру. Задача предполагает минимум времени на написание. Кандидат почти ничего не пишет, кроме задачи, пишу обычно я сам, что бы его не загружать.

Dog>С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго.


binding сдается очень сложный вопрос.

PE>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?

Dog>Надо не спрашивать, а общаться с человеком.

Я стараюсь так и делать, но проблема в том что я профессиональный девелопер а не профессиональный психолог.
Re[2]: C# - как проводить собеседование ?
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 31.10.07 12:55
Оценка:
Здравствуйте, SkyDance, Вы писали:

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


SD>Напоминаете мне профессоров из ВУЗов. Которые эти самые "простые вопросы" объясняли фразой "отсюда очевидно, что ...", но потом требовали у студентов доказывать эти "очевидные" истины.


Меня иногда зовут "профессор" или "боцман"

SD>Возможны два варианта:

SD>1. Вы не совсем корректно представляете себе, что просто, и что сложно.

Это, безусловно, есть в наличии. Я не знаю что просто а что сложно, потому что многое мне кажется простым. Как это выяснить — без понятия. Провести разве что собеседование всех сотрудников ?

SD> Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит.


Точно, надо попробовать поприсутствовать в качестве наблюдателя, как ты говоришь. Хотя мне кажется любой такой наблюдатель немного нагнетает атмосферу.
Re[3]: C# - как проводить собеседование ?
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 31.10.07 13:01
Оценка:
Здравствуйте, Dog, Вы писали:

Dog>У меня на каждом интервью спрашивали как работает GC. Всё сводилось к цитированию Рихтера. Что именно хотели этим протестировать для меня до сих пор остаётся загадкой.


Как именно спрашивали, не вспомнишь ?
Re[3]: C# - как проводить собеседование ?
От: yumi  
Дата: 31.10.07 13:26
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

Dog>>С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго.


PE>binding сдается очень сложный вопрос.


Ахринеть, а что тогда легкий вопрос?
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re: C# - как проводить собеседование ?
От: Vzhyk  
Дата: 31.10.07 14:22
Оценка: 1 (1)
Plutonia Experiment пишет:
>
Мне показалось, что ты нес той стороны "копаешь". Ты пытаешься выяснить
какие вопросы задавать, какие простые из них, а какие сложные.
Фактически твое собеседование в таком ключе сведется просто к экзамену.
А это, ИМХО, худший вариант собеседования.

Вопрос: Какова основная цель твоего собеседования?

Для меня ответ прост, как умеет человек решать задачи?
Поэтому я всегда выяснял какие проекты человек делал, причем выяснял что
именно он делал сам и почему так, а не иначе. Смотрел на логичность его
построений, как он искал ту или иную информацию.
А язык программирования, если человек уже делал проект какой на С#, то с
большего он его знает уже. А детали, их слишком много и разных, чтобы
все знать.
Posted via RSDN NNTP Server 2.0
Re: C# - как проводить собеседование ?
От: yumi  
Дата: 31.10.07 14:53
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Привет !

Привет!

PE>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?

Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию.
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re[4]: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 15:03
Оценка:
Dog>>У меня на каждом интервью спрашивали как работает GC. Всё сводилось к цитированию Рихтера. Что именно хотели этим протестировать для меня до сих пор остаётся загадкой.
PE>Как именно спрашивали, не вспомнишь ?
Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ...
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[2]: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 15:03
Оценка:
SD> Для того, чтобы это обнаружить, надо просто... поприсутствовать на собеседовании в виде безмолвного человека, а собеседование пусть проведет ваш коллега. Просто посмотрите со стороны, как это происходит. Многое станет более ясным. Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит.
Лучше самому походить на собеседования. Гораздо больше опыта, как отрицательного, так и положительного
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[4]: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 15:03
Оценка:
Dog>>>С технической точки зрения в винформах нет ничего сложного. Основные проблемы при использовании многопоточности и GDI. У более продвинутых можно спросить про binding И если человек идёт на эту позицию, то общаться можно довольно долго.
PE>>binding сдается очень сложный вопрос.
Y>Ахринеть, а что тогда легкий вопрос?
Как работает GC
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[3]: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 15:03
Оценка:
Dog>>Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы.
PE>Идейка весьма сильная ! Лучше психолога проф. рядом сажать.
Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник. Было неплохое собеседование программист + начальник, так же интересно было с кадровиками у которых есть скил в психологии и которые не спрашивают тупо вопросы "какую пользу вы принесёте нашей компании". В независимости от результата, всегда остаются положительные эмоции, что мне кажется хорошо для собеседуемого и большой плюс компании.

Dog>>По поводу задачки на 15 мин на листочке со скобками. Это просто ОПА.

PE>Это то я понимаю. Много кандидатов могут легко рассказать алгоритм, но не могут ничего заимплементить. Проверял не раз, давая им доступ к компьютеру. Задача предполагает минимум времени на написание.
Минимум времени на написание вами ? Попробуйте дать её тем сотрудникам что у вас работают.

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

Не могут заимплементить алгорим, что вам рассказали ? Что ж там за трудности в 10-15 строк ?
Кстати, мне в брайнбенчевском тесте попадалось пару простых но интересных задачек.

PE>binding сдается очень сложный вопрос.

Сложный скорее всего из-за того, что не используют.

PE>>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?

Dog>>Надо не спрашивать, а общаться с человеком.
PE>Я стараюсь так и делать, но проблема в том что я профессиональный девелопер а не профессиональный психолог.
Можете проводить не с психологом, у вас его вроде нет ,а ещё с одним программистом. Выберите кто у вас поразговорчивее. Обычно всегда есть пару весёлых раздолбаев
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[2]: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 15:09
Оценка:
PE>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?
Y>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию.
Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[5]: C# - как проводить собеседование ?
От: fmiracle  
Дата: 31.10.07 15:23
Оценка: 4 (2)
Здравствуйте, Dog, Вы писали:

Dog>Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ...


Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
Re[6]: C# - как проводить собеседование ?
От: Dog  
Дата: 31.10.07 15:53
Оценка:
Dog>>Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ...
F>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...
Если человек после собеседования, не ответив на вопрос, неудосуживается открыть Рихтера...
В тех случаях что я встерал люди рассказывали как работает GC, но на вопрос "Какого ... здесь вызывается сборщик мусора ?", с чистой совестью отвечали "Думал, так будет быстрее"
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[4]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 01.11.07 08:21
Оценка: 1 (1) :)
Здравствуйте, Dog, Вы писали:

Dog>>>Попробуйте проводить собеседование не один. Лучше с кадровиком и лучше если это не просто девочка с улицы.

PE>>Идейка весьма сильная ! Лучше психолога проф. рядом сажать.
Dog>Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник. Было неплохое собеседование программист + начальник, так же интересно было с кадровиками у которых есть скил в психологии и которые не спрашивают тупо вопросы "какую пользу вы принесёте нашей компании". В независимости от результата, всегда остаются положительные эмоции, что мне кажется хорошо для собеседуемого и большой плюс компании.

Это прессинг, а не собеседование. Вам нужен сотрудник или подсудимый ?


Dog>>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...


воскрешение ? А Великий Пост в дотнете есть или пасха ? а рождества там не предусмотрено ?

после этих "воскрешений" невольно задумываюсь — и почему это в нашем проекте только один класс имплементит IDisposable и ниче, все работает и заказчик доволен....
Re[5]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 01.11.07 09:17
Оценка:
Здравствуйте, egaron, Вы писали:

E>воскрешение ? А Великий Пост в дотнете есть или пасха ? а рождества там не предусмотрено ?


у нас есть всё, во что верят наши объекты! есть пророк Билли, есть иуда Джимми, и Страшный Суд, где погибнут все unmanaged объекты
Люди, я люблю вас! Будьте бдительны!!!
Re[6]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.07 10:04
Оценка:
Здравствуйте, fmiracle, Вы писали:

F>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...


Не смертельно.
... << RSDN@Home 1.2.0 alpha rev. 716>>
AVK Blog
Re: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.07 10:04
Оценка: 3 (3) +1
Здравствуйте, Plutonia Experiment, Вы писали:

А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых?
... << RSDN@Home 1.2.0 alpha rev. 716>>
AVK Blog
Re[3]: C# - как проводить собеседование ?
От: _Morpheus_  
Дата: 01.11.07 10:36
Оценка: 3 (1)
Здравствуйте, Plutonia Experiment, Вы писали:

SD>>Возможны два варианта:

SD>>1. Вы не совсем корректно представляете себе, что просто, и что сложно.

PE>Это, безусловно, есть в наличии. Я не знаю что просто а что сложно, потому что многое мне кажется простым. Как это выяснить — без понятия. Провести разве что собеседование всех сотрудников ?


у меня почемуто складывается впечатление, что на собеседовании вы преследуете цель "показать какой я крутой спец". А не пообщаться на равных, понять интересы, знания и цели кандидата
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[3]: C# - как проводить собеседование ?
От: _Morpheus_  
Дата: 01.11.07 11:23
Оценка:
Здравствуйте, Dog, Вы писали:

PE>>>Ощущение, что чего то не хватает в собеседовании. Кто подскажет, чего именно ?

Y>>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию.
Dog>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)

согласен, однако можно сделать иначе — выкладывать тестовое задание и по нему проводить конкурс, к примеру первые 3 кандидата успешно справившиеся с заданием получают денежное вознаграждение и все выполнившие приглашаются на собеседование. Задание конечно после завершения конкурса лучше менять
Причем по заданию должно быть видно что это не реальная работа, за которую ктото потом заработает гораздо больше, т.к. в этом случае толковые люди просто не клюнут и все превратится в банальный лохотрон
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[7]: C# - как проводить собеседование ?
От: Dog  
Дата: 01.11.07 14:43
Оценка:
F>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...

AVK>Не смертельно.

Я бы не был так уверен
Application.Idle += new EventHandler(OnIdle);

private void OnIdle(object sender, EventArgs e)
{
    ...
    GC.Collect();
    GC.WaitForPendingFinalizers();
    GC.Collect(); 
}
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[6]: C# - как проводить собеседование ?
От: Dog  
Дата: 01.11.07 14:43
Оценка:
E>>воскрешение ? А Великий Пост в дотнете есть или пасха ? а рождества там не предусмотрено ?
BZ>у нас есть всё, во что верят наши объекты! есть пророк Билли, есть иуда Джимми, и Страшный Суд, где погибнут все unmanaged объекты
Gосподний Cуд
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[2]: C# - как проводить собеседование ?
От: Dog  
Дата: 01.11.07 14:43
Оценка: -1
AVK>А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых?
Конечно всё сразу
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[8]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 01.11.07 15:02
Оценка: 1 (1)
Здравствуйте, Dog, Вы писали:

F>>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...


AVK>>Не смертельно.

Dog>Я бы не был так уверен

Зарадибога.

Dog>
Dog>Application.Idle += new EventHandler(OnIdle);

Dog>private void OnIdle(object sender, EventArgs e)
Dog>{
Dog>    ...
Dog>    GC.Collect();
Dog>    GC.WaitForPendingFinalizers();
Dog>    GC.Collect(); 
Dog>}
Dog>


Это ты к чему?
... << RSDN@Home 1.2.0 alpha rev. 716>>
AVK Blog
Re[9]: C# - как проводить собеседование ?
От: Она На Нас Ий Россия  
Дата: 01.11.07 16:48
Оценка: -1
Здравствуйте, AndrewVK, Вы писали:

Dog>>private void OnIdle(object sender, EventArgs e)

Dog>>{
Dog>> ...
Dog>> GC.Collect();
Dog>> GC.WaitForPendingFinalizers();
Dog>> GC.Collect();
Dog>>}
Dog>>[/c#]

AVK>Это ты к чему?


Гы-гы. Только начал чесать голову... где тут воскрешение запрятали

Код знакомый...
И логика автора уже тоже начинает набивать оскомину — если не знаешь про воскрешение, алгоритмы поиска,
то в РФ тебе помереть с голоду... на улице в позоре и в страшных мучениях,
чтобы страну не позорил
Re[9]: C# - как проводить собеседование ?
От: Dog  
Дата: 01.11.07 17:53
Оценка:
AVK>Это ты к чему?
Это я про смертельность. Я понимаю, что в общих случая вызов GC не смертелен, но оказывается можно постараться тяжело ранить
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[10]: C# - как проводить собеседование ?
От: Dog  
Дата: 01.11.07 17:53
Оценка:
ОНН>Код знакомый...
ОНН>И логика автора уже тоже начинает набивать оскомину — если не знаешь про воскрешение, алгоритмы поиска,
ОНН>то в РФ тебе помереть с голоду... на улице в позоре и в страшных мучениях,
ОНН>чтобы страну не позорил
Вообщето это ваша логика и лучше бы вы не позорились на всю страну своей телепатией.
А моя логика проста. Одних голых знаний без понимания применения этих знаний недостаточно. А понимание это приходит с опытом. И вопросы на собеседовании вроде, "расскажите как работает GC" или "напишите код синглтона" и т.п. этого понимания не выявляют.
А знание всех этих вещей, это как знание русского языка. Хотя конечно язык можно и не знать, тебя же и так понимают.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[5]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 21:50
Оценка: +1
Здравствуйте, Dog, Вы писали:

Dog>Как на экзамене Расскажите как работает GC. Рассказываешь поколения и т.д., в конце добавляешь про воскрешение, можно ещё про мягкие ссылки. Всё, следующий вопрос. Ни слова о применени, слабых и сильных сторонах ...


Если рассказал — это уже немалый плюс. Большинство вообще даже читать не собирается.
Re[7]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 21:59
Оценка:
Здравствуйте, AndrewVK, Вы писали:

F>>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...


AVK>Не смертельно.


Не смертельно, но показательно.
Re[10]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 22:04
Оценка:
Здравствуйте, Она На Нас Ий, Вы писали:

ОНН>Гы-гы. Только начал чесать голову... где тут воскрешение запрятали

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

Если приложение критично к объему памяти, например ему надо все 2GB, при этом все объекты долгоиграющие, да еще и размером большие, то поимеешь геморроя.
Re[5]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 22:05
Оценка:
Здравствуйте, Dog, Вы писали:

Y>>Ахринеть, а что тогда легкий вопрос?

Dog>Как работает GC

GC — это специфика области. Гдето не надо про него спрашивать, где то — обязательно. Читал — уже бонус.
Re[4]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 22:14
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

PE>>Это, безусловно, есть в наличии. Я не знаю что просто а что сложно, потому что многое мне кажется простым. Как это выяснить — без понятия. Провести разве что собеседование всех сотрудников ?


_M_>у меня почемуто складывается впечатление, что на собеседовании вы преследуете цель "показать какой я крутой спец". А не пообщаться на равных, понять интересы, знания и цели кандидата


Гораздо чаще так считают сами кандидаты. Примеров целый форум
Re[3]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 22:16
Оценка:
Здравствуйте, Dog, Вы писали:

SD>> Для того, чтобы это обнаружить, надо просто... поприсутствовать на собеседовании в виде безмолвного человека, а собеседование пусть проведет ваш коллега. Просто посмотрите со стороны, как это происходит. Многое станет более ясным. Просто за 4 года уже глаз-ухо замылились, на однотипных собеседованиях это быстро происходит.

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

Я спеца, которй пришел поговорить, сразу вычисляю. Не будет опыта вообще никакого.
Re[4]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 22:17
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

_M_>согласен, однако можно сделать иначе — выкладывать тестовое задание и по нему проводить конкурс, к примеру первые 3 кандидата успешно справившиеся с заданием получают денежное вознаграждение и все выполнившие приглашаются на собеседование. Задание конечно после завершения конкурса лучше менять


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

AVK>А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых?


Что спрашивать по дизайну ? Тут у каждого опыт уникальный и словарик определений у каждого свой.
Re: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 22:25
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Обычно начинаю с общих вопросов, рассказываю разное,задаю несколько вопросов по языку, несколько по устройству нета, несколько по фреймворку и довольно много вопросов по той части, которую человек осветил в резюме и обязательно даю задачу(решение до 15 строчек вместе со скобкам, до трех попыток).


см выделенное, больше ничего не надо если ты не начальник
Re[10]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 01.11.07 22:33
Оценка:
Здравствуйте, Dog, Вы писали:

AVK>>Это ты к чему?

Dog>Это я про смертельность. Я понимаю, что в общих случая вызов GC не смертелен, но оказывается можно постараться тяжело ранить

Зачем ранить. Если чел не понимает ГЦ то вряд ли поймет код который писался для разрешения существовавших проблем с ГЦ. А то и вовсе залезет на броневик
Re[4]: C# - как проводить собеседование ?
От: Dog  
Дата: 01.11.07 23:17
Оценка:
Dog>>Лучше самому походить на собеседования. Гораздо больше опыта, как отрицательного, так и положительного
DDI>Я спеца, которй пришел поговорить, сразу вычисляю. Не будет опыта вообще никакого.
А в чём проблема пообщаться с умным человеком ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[3]: C# - как проводить собеседование ?
От: Dog  
Дата: 01.11.07 23:17
Оценка: -1
AVK>>А что, собственно, в итоге ожидается от кандидата? Он должен самостоятельно принимать решения по дизайну, или требуется качественный код по дизайну готовому? От него требуется больше качество кода, или знакомство с широким спектром технологий и быстрый результат? От него требуется умение находить и применять новые технологии, или добиваться максимального эффекта с использованием уже применяемых?
DDI>Что спрашивать по дизайну ? Тут у каждого опыт уникальный и словарик определений у каждого свой.
Вот как раз по опыту и спрашивать. А словарик, GoF и Фулера ни кто не отменял. Будет более чем достаточно для понимания.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 02.11.07 05:00
Оценка: :)
Здравствуйте, Plutonia Experiment, Вы писали:

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


А два три простых и сложных вопроса можно?
Подозреваю что простые типа — "что такое полиморфизм?"
Re[6]: C# - как проводить собеседование ?
От: De-Bill  
Дата: 02.11.07 05:45
Оценка: 9 (1) +3
F>Ты удивишься, узнав, как много приходит на собеседование людей, реально работавших с .НЕТ, и при этом не знающих о поколениях, порядке сборки мусора, не слышавших о мягких ссылках и даже не представляющих такой возможности, как воскрешение...

Интересно, я вроде бы работаю с .NET уже года 4, если не 5, но если мне сейчас начать задавать вопросы про вышеперечисленные материи, то боюсь, что не смогу пройти собеседование. Хотя:
1. С GC когда-то разбирался... Более того, даже лазил в исходниках, когда нужно было выяснить, почему GC + Generics + ComVisible + AppDomains в некоторых случаях даёт довольно страшный результат.
2. Когда-то отлично понимал MS IL (даже знал чем отличается call от callvirt и почему компилятор C# всегда генерирует callvirt). Потом, правда появился Reflector, а про IL я забыл.
3. Мягкие ссылки когда-то использовал и когда-то разбирался с ними. Сейчас модуль, где они есть живёт и не вызывает никаких проблем. А про мягкие ссылки я вообще забыл (ничего про них не могу сказать).
4. Воскрешение не использовал никогда и не знаю что это такое.

В-общем, в .NET есть много потаёных мест, куда заглядываешь раз в 5 лет. И помнить всё это просто невозможно. Более того, это и не нужно. Хотя, почему-то многие люди считают, что лучше гордиться знаниями устройства GC, чем выполненными проектами. Это их право. Так же как и у меня есть право посылать таких на (...), когда они пытаются заяснить, что для того, чтобы считаться разработчиком нужно знать про "воскрешения".
Re[7]: C# - как проводить собеседование ?
От: Она На Нас Ий Россия  
Дата: 02.11.07 06:46
Оценка: -1
Здравствуйте, De-Bill, Вы писали:
DB>В-общем, в .NET есть много потаёных мест, куда заглядываешь раз в 5 лет. И помнить всё это просто невозможно. Более того, это и не нужно. Хотя, почему-то многие люди считают, что лучше гордиться знаниями устройства GC, чем выполненными проектами. Это их право. Так же как и у меня есть право посылать таких на (...), когда они пытаются заяснить, что для того, чтобы считаться разработчиком нужно знать про "воскрешения".

Как хорошо, что есть De-Bill.
Пусть теперь ему говорят, что он всех вокруг уродами считает

А Дог не понимает, что GC создан для того, чтобы его использовать, не вникая.

И, тем более, не для того, чтобы прочитав за 5 мин одну статейку про воскрешения,
проводить собеседования
Re[5]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 07:54
Оценка: 1 (1)
Здравствуйте, Dog, Вы писали:

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

DDI>>Я спеца, которй пришел поговорить, сразу вычисляю. Не будет опыта вообще никакого.
Dog>А в чём проблема пообщаться с умным человеком ?

это время я могу потратить на собеседование другого кандидата, которому действительно нужна работа
Re[10]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.11.07 09:23
Оценка: 6 (1)
Здравствуйте, Dog, Вы писали:

Dog>Это я про смертельность. Я понимаю, что в общих случая вызов GC не смертелен, но оказывается можно постараться тяжело ранить


Твой пример показывает не столько незнание принципов работы GC, сколько воинствующий ламеризм (товарищ не знает, но думает что знает, что он умнее разработчиков фреймворка). Непреднамеренно сломать GC не так то просто, поэтому незнание его принципов в большинстве случаев некритично.
... << RSDN@Home 1.2.0 alpha rev. 716>>
AVK Blog
Re[3]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.11.07 09:35
Оценка: +1
Здравствуйте, Dan Dare III, Вы писали:

DDI>Что спрашивать по дизайну?


Смотря какой дизайн имеется ввиду. Во-первых дизайн мелких блоков и больших приложений, серверного и настольного софта сильно отличается, во-вторых дизайн высоконагруженных приложений это отдельный разговор, в-третьих идея о том что дизайн не зависит от языка и платформы не совсем соответствует действительности.
Единственное, что можно сказать — не стоит задавать вопросов типа: нарисуй диаграмму классов для такого то приложения, не уточняя при этом сроки, бюджет, требования к производительности и расширяемости.

DDI> Тут у каждого опыт уникальный


Опыт в любом случае штука уникальная.

DDI> и словарик определений у каждого свой.


Не соглашусь.
... << RSDN@Home 1.2.0 alpha rev. 716>>
AVK Blog
Re[2]: C# - как проводить собеседование ?
От: LaptevVV Россия  
Дата: 02.11.07 10:08
Оценка: :)
Здравствуйте, SkyDance, Вы писали:

SD>2. Вы ждете ответа на "простой" вопрос именно в той форме, в которой этот ответ содержится у вас в голове. Грубый pattern matching механизм Ну как у плохих преподавателей, которые дают лекции, и на экзамене требуют ответа в точности теми же словами, что они говорили на лекции.

Напомнили анекдот...
Препод: Из какого материала изготовлен ствол автомата Калашникова?
Студент: из стали.
Препод: Ответ неверный! Ствол изготовлен из легированной стали трам-пам-пам такой-то!... Вот вам дополнительный вопрос.. Из чего изготовлен затвор в автомате Калашикова?
Студент: Ствол изготовлен из легированной стали трам-пам-пам такой-то!
Препод: Ответ неверный!
Студент:
Препод: ИЗ ТОГО ЖЕ МАТЕРИАЛА!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[11]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 02.11.07 10:10
Оценка: 7 (2)
Здравствуйте, Dog, Вы писали:

ОНН>>Код знакомый...

ОНН>>И логика автора уже тоже начинает набивать оскомину — если не знаешь про воскрешение, алгоритмы поиска,
ОНН>>то в РФ тебе помереть с голоду... на улице в позоре и в страшных мучениях,
ОНН>>чтобы страну не позорил
Dog>Вообщето это ваша логика и лучше бы вы не позорились на всю страну своей телепатией.
Dog>А моя логика проста. Одних голых знаний без понимания применения этих знаний недостаточно. А понимание это приходит с опытом. И вопросы на собеседовании вроде, "расскажите как работает GC" или "напишите код синглтона" и т.п. этого понимания не выявляют.
Dog>А знание всех этих вещей, это как знание русского языка. Хотя конечно язык можно и не знать, тебя же и так понимают.

Хороший спец должен значть все о немногом, и немного обо всем.

Знать как работает ГЦ для разработки бизнес-апплиейшнов нужно не более, чем то, как собрать на транзисторах схему логического элемента "или -не". Но это не значит, что тот же программист не должен иметь даже общенго понятия о тех же транзисторах и логических элементах — каждый должен хотя бы интересоваться тем, КАК ЭТО ВСЕ РАБОТАЕТ. Естественно, спрашивать детали в таком случае — глупо.
Re[5]: C# - как проводить собеседование ?
От: _Morpheus_  
Дата: 02.11.07 10:26
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>студент ?


нет, студентом был лет 6 назад, а почему у вас такой вопрос возник?
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[12]: C# - как проводить собеседование ?
От: Dog  
Дата: 02.11.07 14:00
Оценка:
E>Хороший спец должен значть все о немногом, и немного обо всем.
Ни кто этого и не отрицает.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[11]: C# - как проводить собеседование ?
От: Dog  
Дата: 02.11.07 15:01
Оценка:
Dog>>Это я про смертельность. Я понимаю, что в общих случая вызов GC не смертелен, но оказывается можно постараться тяжело ранить
AVK>Твой пример показывает не столько незнание принципов работы GC, сколько воинствующий ламеризм (товарищ не знает, но думает что знает, что он умнее разработчиков фреймворка).
Имхо тут ошибка.

AVK> Непреднамеренно сломать GC не так то просто, поэтому незнание его принципов в большинстве случаев некритично.

Что за дурацкая манера вешать ярлыки ?
Я привел вам пример из практики. Ни кто и не пытался намеренно или ненамеренно ломать GC.
Я так понимаю что в большинстве случаев и знания модели освобождения ресурсов некритично, а using это вообще для гуру ... так что ли ?
Ну да не будем флэймить на пустом месте Меня интересует вот такой вопрос, раз уж тема про собеседования. Какие знания платформы и языка по вашему критичны ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[8]: C# - как проводить собеседование ?
От: Dog  
Дата: 02.11.07 15:01
Оценка:
ОНН>А Дог не понимает, что GC создан для того, чтобы его использовать, не вникая.
Для невникающих я привёл хороший пример из практики. Думаю что можно так же привести кучу примеров с использованием Dispose и финализаторов. Если вы до сих пор невникли невникайте дальше. Я не ставлю для себя цель вам что-то объяснять.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[7]: C# - как проводить собеседование ?
От: Dog  
Дата: 02.11.07 15:01
Оценка:
DB>В-общем, в .NET есть много потаёных мест, куда заглядываешь раз в 5 лет. И помнить всё это просто невозможно. Более того, это и не нужно.
Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.

... но похоже вы избираете более лёгкий путь
DB> Хотя, почему-то многие люди считают, что лучше гордиться знаниями устройства GC, чем выполненными проектами. Это их право. Так же как и у меня есть право посылать таких на (...), когда они пытаются заяснить, что для того, чтобы считаться разработчиком нужно знать про "воскрешения".
Вы этим гордитесь ?

зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно.

зы. Вы кажется забываете что не только у вас есть право посылать на (...), но так же и у работодателя
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[6]: C# - как проводить собеседование ?
От: Dog  
Дата: 02.11.07 15:01
Оценка:
Dog>>А в чём проблема пообщаться с умным человеком ?
DDI> это время я могу потратить на собеседование другого кандидата, которому действительно нужна работа
Ну мне была нужна работа, я занимался набором людей и в некоторых случаях на собеседовании, когда понимаешь что работа тебе не интересна, я оставался дальше и прокачивал скилы прохождения\проведения собеседования
На своих ошибках учатся только дураки (с)Бисмарк
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[4]: C# - как проводить собеседование ?
От: Eugeny__ Украина  
Дата: 02.11.07 15:06
Оценка:
Здравствуйте, Dog, Вы писали:


Dog>Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник.


Никогда не видел, чтобы такое собеседование было бы эффективным. Да и в частности мне напряжно беседовать в таком режиме(как соискателю).
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[5]: C# - как проводить собеседование ?
От: Dog  
Дата: 02.11.07 15:15
Оценка:
Dog>>Лучшее собеседование на котором был проводили сразу три человека кадровик, старший программист и начальник.
E__>Никогда не видел, чтобы такое собеседование было бы эффективным. Да и в частности мне напряжно беседовать в таком режиме(как соискателю).
Всё зависит от людей проводящих собеседование. Не спорю, может в других случаях будет напряжно.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[4]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 16:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

DDI>> и словарик определений у каждого свой.


AVK>Не соглашусь.


я говорю о тех, с кем довелось проводить собеседование
про твоих кандидатов я ничего не говорил.

если люди читали ГоФ и подобное ему — все будет отлично а вот если не читали, а есть и такие, О УЖАС, на рсдн не ходят, как с ними быть ?
Re[6]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 16:56
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

_M_>Здравствуйте, Dan Dare III, Вы писали:


DDI>>студент ?


_M_>нет, студентом был лет 6 назад, а почему у вас такой вопрос возник?


ассоциации
Re[8]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 16:59
Оценка:
Здравствуйте, Dog, Вы писали:

Dog>зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно.


+1
Re[7]: C# - как проводить собеседование ?
От: _Morpheus_  
Дата: 02.11.07 17:08
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>>>студент ?


_M_>>нет, студентом был лет 6 назад, а почему у вас такой вопрос возник?


DDI>ассоциации


вы наверно зациклились на поиске студентов
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[5]: C# - как проводить собеседование ?
От: _Morpheus_  
Дата: 02.11.07 17:12
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>О УЖАС, на рсдн не ходят, как с ними быть ?


ну дык каждому своё нужно, комуто шашечки, а комуто ехать
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[11]: C# - как проводить собеседование ?
От: _Morpheus_  
Дата: 02.11.07 17:22
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>Если приложение критично к объему памяти, например ему надо все 2GB, при этом все объекты долгоиграющие, да еще и размером большие, то поимеешь геморроя.


если приложению надо 2ГБ, "то поимеешь геморроя" в любом случае
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[12]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 17:37
Оценка:
Здравствуйте, 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 "сталкивался", с эвентами чтото невнятное пробурчал

теперь финал (перед этим были общие вопросы по нету, гц не спрашивал)

вопрос про исключения по коду на листе бумаги

try
{
// делается страшное
}
catch
{
Console.WriteLine("Случилось страшное");
}
finally
{
Console.WriteLine("Уходим");
}


DDI: -В блоке "делается страшное" происходит исключение. Что должно быть напечатано в консоль ?
-Случилось страшное
DDI: -А "Уходим" ?
-Ой, тоже !
DDI: -А если catch(Exception e) ?
-Наверное, "Уходим, Случилось страшное" ?
DDI: -А почему не наоборот ?
-Ой, наоборот, "Случилось страшное,Уходим"!
DDI: -Почему ?
-Ну так правильно...
DDI: -А если исключения не было ?
-(долгая пауза)-"Уходим" ?(очень неуверенно, гадает !)
DDI: -Когда срабатывает "finally" ?
-...Всегда наверное ? (очень неуверенно, гадает !)
DDI: -А если код "делается страшное" unmanaged ?
-А что такое unmanaged код ? (некотороые не знают, что такое managed, но знаю что такое управляемый код)
DDI: -... [объясняю, коротко, такие опусы почти каждый раз, я уже привык]
-Ого, я и не знал что такое есть.
DDI: —


после этого я пожалел что начал не с исключений — собеседование длилось примерно час десять

мое мнение
— качество кода низкое
— думать умеет
— общительный, объяснять умеет
— не пугливый, выглядел уверенно
— с проектами знаком в общих словах (работает скорее всего кодером, хотя утверждал что имел отношение разработке движка)
— потенциально больше всего писал на vb, а не C#
— фантазёр(после собеседования пытался объяснить, что есть объективные причины не знать "такие мелочи" )
— любит сделать работу и забыть, не углубляясь
— пытался обхитрить с угадайкой
— интереса к изучению чегото нового не распознал в нем

Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.
Re[8]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 17:39
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

DDI>>ассоциации


_M_>вы наверно зациклились на поиске студентов


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

DDI>>Если приложение критично к объему памяти, например ему надо все 2GB, при этом все объекты долгоиграющие, да еще и размером большие, то поимеешь геморроя.


_M_>если приложению надо 2ГБ, "то поимеешь геморроя" в любом случае


гц то знать в этом случае необходимо
Re[13]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 17:52
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.


имеется ввиду толковый студ. без опыта работы
если с опытом работы 2.5 года в резюме приврал, тем хуже для него показуха не интересна
Re[13]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 02.11.07 18:20
Оценка: 6 (1)
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>try
DDI>{
DDI>// делается страшное
DDI>}
DDI>catch
DDI>{
DDI>Console.WriteLine("Случилось страшное");
DDI>}
DDI>finally
DDI>{
DDI>Console.WriteLine("Уходим");
DDI>}
DDI>


DDI>DDI: -А если код "делается страшное" unmanaged ?


открою секрет — в большинстве проектов нет такого зверя, как анмэнеджед код.


DDI>мое мнение

DDI>- качество кода низкое
DDI>- думать умеет
DDI>- общительный, объяснять умеет
DDI>- не пугливый, выглядел уверенно

Мое мнение — работает кодером (притом успешно), но видел в гробу это кодирование, рвется в ПМы или манагеры. И уверенно ответит на вопрос "кем вы видите себя в компании через 5 лет". разве это так уж лучше зашуганного кодера ?

Не всех прет корпеть над книгами о паттернах. а пресловутое "качество кода" вовсе не значит рациональность — в качественном коде рациональности обычно как раз ноль целых икс десятых. Качественный код — лишь услада глазам архитектора...

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


DDI>- с проектами знаком в общих словах (работает скорее всего кодером, хотя утверждал что имел отношение разработке движка)


в любом проекте все обычно все имеют то или иное отношение к разработке движка, кроме УИ-дизайнера разве что.


DDI>- потенциально больше всего писал на vb, а не C#


возможно. это не значит что он не освоит си.

DDI>- любит сделать работу и забыть, не углубляясь


А чт ов этом плохого ? вам нужен срыв сроков из-за сомнительно-гениальной объектной модели и собственног движка?

DDI>- пытался обхитрить с угадайкой


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

DDI>- интереса к изучению чегото нового не распознал в нем


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

DDI>Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.


потенциал как сидящего на попе ровно кодера низок, просто потому что последним он не хочет быть.
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 19:49
Оценка: +3
Здравствуйте, 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 это повод рекомендовать на прием
Re[12]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.11.07 20:47
Оценка:
Здравствуйте, 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>>
AVK Blog
Re[5]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.11.07 20:47
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


В России что то последнее время какой то удурчающий средний уровень именно архитектов. И то, что два специалиста не могут даже об общих терминах договориться, честно говоря, приводит в уныние.

DDI>про твоих кандидатов я ничего не говорил.


А моих нет никаких сейчас кандидатов, я уже год точно этим не занимаюсь. Я не согласен с обобщением.

DDI>если люди читали ГоФ и подобное ему — все будет отлично а вот если не читали, а есть и такие, О УЖАС, на рсдн не ходят, как с ними быть ?


А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[13]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 21:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Dog>>Что за дурацкая манера вешать ярлыки ?

AVK>Перечитал несколько раз, ярлыков не увидел.

Re[6]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 02.11.07 21:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>В России что то последнее время какой то удурчающий средний уровень именно архитектов. И то, что два специалиста не могут даже об общих терминах договориться, честно говоря, приводит в уныние.


гы
паттерны они растут из всего, но не из нета
нетовских паттернов пока очень мало
куча жавовских и смаллтолковских паттернов которые появились благодаря убогим возможностям языков(в жаве, смаллтолке) породили массы воинствующих дилетантов в самом нете

DDI>>если люди читали ГоФ и подобное ему — все будет отлично а вот если не читали, а есть и такие, О УЖАС, на рсдн не ходят, как с ними быть ?


AVK>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит.


не понял идею
как быть если человек не знает паттернов но отличный каркасс строит, работать легко и удобно
рядом со мной таких двое
Re[14]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.11.07 22:01
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

Dog>>>Что за дурацкая манера вешать ярлыки ?

AVK>>Перечитал несколько раз, ярлыков не увидел.

DDI>


Я имел ввиду в собственноми тексте
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[7]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 02.11.07 22:01
Оценка: +2
Здравствуйте, 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>>
AVK Blog
Re[13]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 01:14
Оценка:
Dog>>Имхо тут ошибка.
AVK>О том и речь. И проверять надо именно это, а не знание алгоритмов работы GC.
Хм... так я вроде именно об этом и пишу

Dog>>Я так понимаю что в большинстве случаев и знания модели освобождения ресурсов некритично

AVK>Нет, это критично.
И как можно знать это и не представлять как работает GC ? Ну да ладно...

Dog>>Ну да не будем флэймить на пустом месте Меня интересует вот такой вопрос, раз уж тема про собеседования. Какие знания платформы и языка по вашему критичны ?

AVK>Зависит от проекта и команды.
Ммм... давайте вэб трогать не будем, десктопные приложения и второй фрэймворк. Если вы уж начали делить на смертельно не смертельно. Какие знания языка и платформы по вашему более критичны. Не надо делать обзоры, можно просто перечислить. Нескольких будет вполне достаточно. Я не флэйма ради, интересно ваше мнение, раз уж вы ввязались в это

AVK>И вообще, ИМХО, это уже те знания, которые покупают за деньги. Т.е. я конечно тебе отвечу и бесплатно, но только на конкретные вопросы, а не на требование составить обзор.

Ойвэй, таки видимо уже пора писать в конце ответов.

Кто воспользовался моим опытом перечислите N рублей по этому XXX адресу

... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[13]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 01:14
Оценка:
DDI>- любит сделать работу и забыть, не углубляясь
DDI>- интереса к изучению чегото нового не распознал в нем
Имхо, основные минусы перевешивающие любые плюсы. Всё остальное со временем поправимо.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[9]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 01:14
Оценка: :)
_M_>>вы наверно зациклились на поиске студентов
DDI>студенты это моя слабость у них еще вкус к изучению не угас, брать можно почти любого кто хотя бы пришел на собеседование
Заменить студенты на студентки
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[7]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 01:14
Оценка: +1
AVK>>А толку с таких? GoF, кстати, читать не обязательно, часа изучения википедии для разговора хватит.
DDI>не понял идею
DDI>как быть если человек не знает паттернов но отличный каркасс строит, работать легко и удобно
DDI>рядом со мной таких двое
Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[13]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 03.11.07 10:22
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>мое мнение

DDI>- качество кода низкое

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

DDI>- думать умеет

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

почему ты решил, что он работает кодером?

DDI>- потенциально больше всего писал на vb, а не C#

DDI>- фантазёр(после собеседования пытался объяснить, что есть объективные причины не знать "такие мелочи" )
DDI>- любит сделать работу и забыть, не углубляясь
DDI>- пытался обхитрить с угадайкой
DDI>- интереса к изучению чегото нового не распознал в нем

ровно наоборот — монетки, знание архитектуры проекта, sql говорят об обратном. не зщабывай, что если человек любит изучать новое, он не обязан знать именно то, что знаешь ты

DDI>Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.


студент с реальным знанием sql?
Люди, я люблю вас! Будьте бдительны!!!
Re[10]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 03.11.07 10:27
Оценка: :)
Здравствуйте, Dog, Вы писали:

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

Dog>Заменить студенты на студентки

откуда ты знаешь — может ему студенты нравятся?
Люди, я люблю вас! Будьте бдительны!!!
Re[11]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 11:20
Оценка: +1
Здравствуйте, BulatZiganshin, Вы писали:

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

Dog>>Заменить студенты на студентки

BZ>откуда ты знаешь — может ему студенты нравятся?


Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 12:08
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>думаю, что это просто культура программирования, принятая в его первой компании. никаких исключений, минимальный наьбор функций и т.д.


отношение к работе оно не важно у кого если у кодера то кодить плохо если у начальника то плохое отношения будет в руководстве проявляться

DDI>>- думать умеет

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

BZ>почему ты решил, что он работает кодером?


кроме того сеньор обычно представляет зачем нужна обработка ошибок и как ее оформить в проекте
сеньор представляет зачем нужны слова virtual и override

BZ>ровно наоборот — монетки, знание архитектуры проекта, sql говорят об обратном. не зщабывай, что если человек любит изучать новое, он не обязан знать именно то, что знаешь ты


у меня к тебе вопрос, ты знаком с этим кандидатом ?
SQL обычно пишт специальные люди а не сеньоры или лиддевелоперы

откуда сведения про знание архитектуры ?
этих знаний как раз и не обнаружилось

зъяснил структуру приложения, объяснил как работают основные блоки


структура и архитектура это разные вещи — я на этом настаиваю

но допустим ты прав, тогда архитектор подавший резюме на позицию кодера не интересен

DDI>>Итог — несмотря на опыт 2.5 года, уровень студента 5го курса. Потенциал на будущее низкий.


BZ>студент с реальным знанием sql?


ты знаком с этим кандидатом и теми студентами которые были до него ?
смонетками и SQL у них отлично их тоже в сеньоры и архитекторы записать ?
Re[8]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 12:13
Оценка:
Здравствуйте, AndrewVK, Вы писали:


AVK>При чем тут нетовские? Для собеседования, если уж мы о микродизайне заговорили, хватит знания таких слов как синглтон, посетитель, стратегия, фасад, фабрика. Что, на изучения этих слов не хватит часа чтения википедии? Неужели можно стать приличным архитектом, не переварив значительное количество современной литературы по дизайну приложений? Неужели, являясь действительно приличным специалистом, можно ничего не слышать про слова "контракт", "связность", "модуль", "слой абстракции"? Если всего этого нет, о чем еще можно говорить?


чего ты на броневик лезешь ?

AVK>А знания всяких хитромудрых аббривеатур врое SOA, MDA, MSA ( ), SCSF, UIP, SCOAB и т.п. на собеседовании требовать смысла нет никакого.


я и не требую

AVK>Паттерны нет никакого смысла знать. Их нужно понимать. А для понимания, если мозги в нужную сторону повернуты, много времени не нужно. В GoF все паттерны просты как три копейки. Единственно, что нужно заучить — их общепринятые названия, чтобы потом общаться можно было.


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

DDI>> но отличный каркасс строит, работать легко и удобно

AVK>Заставлять смотреть дальше своей каморки, иначе синдром "первый парень на деревне" обеспечен.

не понял про деревню поясни
у них десятки проектов за спиной которые были из убитого состояние приведены в рабочее
проекты не разовые при том
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 12:16
Оценка:
Здравствуйте, Dog, Вы писали:

DDI>>- любит сделать работу и забыть, не углубляясь

DDI>>- интереса к изучению чегото нового не распознал в нем
Dog>Имхо, основные минусы перевешивающие любые плюсы. Всё остальное со временем поправимо.

даже это поправимо, но на это нет времени проще взять более отесаного

если все остальные будут еще менее пригодны придется взять этого благо SQL монетки и задача есть в наличии
но брать его сразу — слишком много минусов
Re[8]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 12:18
Оценка:
Здравствуйте, Dog, Вы писали:

DDI>>рядом со мной таких двое

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

умных идей к сожалению мало по этому такое чудо вовсе и не чудо я с тобой согласен
Re[8]: C# - как проводить собеседование ?
От: Она На Нас Ий Россия  
Дата: 03.11.07 12:44
Оценка:
Здравствуйте, Dog, Вы писали:
Dog>Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.

А почему именно Рихтера из 5 Гига MSDN?
если не считать, что есть ещё другие источники
Re[13]: C# - как проводить собеседование ?
От: Кэр  
Дата: 03.11.07 13:10
Оценка: 1 (1)
Здравствуйте, 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 совсем не обязан представлять текстовый символ в строке.
Re[9]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 13:11
Оценка: 12 (1) +1
Здравствуйте, Она На Нас Ий, Вы писали:

ОНН>Здравствуйте, Dog, Вы писали:

Dog>>Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.

ОНН>А почему именно Рихтера из 5 Гига MSDN?


потому что Рихтер продается книгой это одна из сильнейших книг по нету
Re[3]: C# - как проводить собеседование ?
От: Igor Trofimov  
Дата: 03.11.07 13:24
Оценка:
Y>>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию.
Dog>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)

Естественно, это должна быть очень хорошая работа А разве соискатели когда-нибудь ищут другую?
Re[14]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 14:00
Оценка: 1 (1) +1
Здравствуйте, 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>>
AVK Blog
Re[9]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 14:00
Оценка: +1
Здравствуйте, 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>>
AVK Blog
Re[15]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 14:06
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>структура и архитектура это разные вещи — я на этом настаиваю


Можно пояснить в чем разница?
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[14]: C# - как проводить собеседование ?
От: Ravlyk Австралия http://stitcharteasy.com
Дата: 03.11.07 16:09
Оценка:
Здравствуйте, egaron, Вы писали:

E>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты.


s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)
Re[15]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 16:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

Dog>>И как можно знать это и не представлять как работает GC ?


AVK>А какое отношение к GC имеет IDisposable и using?


отношения никакого но все это управление ресурсами
если Idisposable не знаком я про гц и не пробую спрашивать

AVK>Ну как минимум надо знать базовые конструкции языка, вроде классов, структур и их различий, массивов, полиморфизма, интерфейсов, событий и делегатов. Надо знать концепцию потоков, понимать базовые моменты реализации string и для чего нужен StringBuilder, понимать что такое атрибуты и с чем их едят. Обязательно нужно представлять себе, что такое IEnumerable<T>, List<T> и Dictionary<K,V>, и знать временную сложность основных операций. Если предполагается использование многопоточности — понимать что такое поток, чем плох Thread.Abort, что такое lock и объекты синхронизации ядра, уметь работать с коллекциями, поддерживающими одного писателя и нескольких читателей одновременно, понимать как себя ведут энумераторы при параллельном доступе. Ну и т.д., в зависимости от области использования.


если ты все это спросишь то завалишь всех людей которые были у меня за весь период
с выделенного надо начинать кстати
Re[15]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 16:31
Оценка:
DDI>>>- любит сделать работу и забыть, не углубляясь
DDI>>>- интереса к изучению чегото нового не распознал в нем
Dog>>Имхо, основные минусы перевешивающие любые плюсы. Всё остальное со временем поправимо.
DDI>даже это поправимо, но на это нет времени проще взять более отесаного
Каким образом вы собираетесь отёсывать... если человек не хочет учиться ? Я понимаю ещё можно научить отсуствущим знаниям... если есть желание...

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

DDI>но брать его сразу — слишком много минусов
... имхо, сталкиваясь с такими людими, я так и не знаю как ... "привить интерес к работе" таким людям. гораздо проще взять человека интересующегося и научить\передать ему свои знания ... имхо
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[15]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 16:31
Оценка:
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
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[9]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 16:35
Оценка:
DDI>>>рядом со мной таких двое
Dog>>Дать им в руки Фаулера или Мартинса или нечто подобное и о чудо, окажется что они по паттернам каркас строят, только сами этого не знают
DDI>умных идей к сожалению мало по этому такое чудо вовсе и не чудо я с тобой согласен
Это и есть паттерны
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[12]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 16:46
Оценка:
DDI>>>>студенты это моя слабость у них еще вкус к изучению не угас, брать можно почти любого кто хотя бы пришел на собеседование
Dog>>>Заменить студенты на студентки
BZ>>откуда ты знаешь — может ему студенты нравятся?
DDI>
Я надеюсь
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[10]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 16:46
Оценка:
AVK>Поясняю. Если человек не интересуется, что происходит вокруг (а иначе в современных условиях невозможно не владеть базовой терминологией), то единственное, на что этому человеку приходится ориентироваться, это его окружение. Рано или поздно, если это не клиника, человек свое окружение в профессиональной области перерастает. И начинает считать себя чуть ли не гением. На RSDN периодически такие вылазят.
Опять же выделенное главное... и как а заставить человека заинтрерсоваться....
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[15]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 16:52
Оценка:
DDI>кроме того сеньор обычно представляет зачем нужна обработка ошибок и как ее оформить в проекте
DDI>сеньор представляет зачем нужны слова virtual и override
Это должен знать сеньор... пойду застрелюсь....

BZ>>ровно наоборот — монетки, знание архитектуры проекта, sql говорят об обратном. не зщабывай, что если человек любит изучать новое, он не обязан знать именно то, что знаешь ты

DDI>у меня к тебе вопрос, ты знаком с этим кандидатом ?
DDI>SQL обычно пишт специальные люди а не сеньоры или лиддевелоперы
+1
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[15]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 16:54
Оценка:
E>>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты.
R>s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)
Имхо, это всё реализация... ошибки на уровне дизайна стоя граздо больше...
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[10]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 17:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>Ну так вот эта проблема не стоит и выеденного яйца, и если человек терминологию освоить не в состоянии это уже о многом говорит.


да о многом но больше о тебе самом, AVK

AVK>Поясняю. Если человек не интересуется, что происходит вокруг (а иначе в современных условиях невозможно не владеть базовой терминологией), то единственное, на что этому человеку приходится ориентироваться, это его окружение. Рано или поздно, если это не клиника, человек свое окружение в профессиональной области перерастает. И начинает считать себя чуть ли не гением. На RSDN периодически такие вылазят.


в общих чертах я понял но ты объясни почему ты решил что они не интересуются

AVK>P.S. А ты, случаем, не в геймдеве работаешь? Только там такой махровый заповедник может встречаться. Да еще, пожалуй, в какой нибудь государственной или полугосударственной конторе.


я случаем работаю в коммерческой организации она негосударственная не геймдев
заповедник это мелкое такое хамство, менторское, ярлык
не смертельно
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 17:18
Оценка:
Здравствуйте, Кэр, Вы писали:

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)

Кэр>Текстовые символы в строке не нумеруются через индексатор


каким боком текстовые символы имеют отношение к индексатору и сабстрингу ?
Re[4]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 17:24
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

Dog>>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)


iT>Естественно, это должна быть очень хорошая работа А разве соискатели когда-нибудь ищут другую?


а что ты вкладываешь в "хорошая работа" ?

работа может быть "идеальной" "отличной" "очень хорошей" и "хорошей"

все дело в количестве минусов
Re[15]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 17:26
Оценка:
Здравствуйте, Ravlyk, Вы писали:

E>>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты.


R>s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)


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

DDI>>даже это поправимо, но на это нет времени проще взять более отесаного

Dog>Каким образом вы собираетесь отёсывать... если человек не хочет учиться ? Я понимаю ещё можно научить отсуствущим знаниям... если есть желание...

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

Dog>... имхо, сталкиваясь с такими людими, я так и не знаю как ... "привить интерес к работе" таким людям. гораздо проще взять человека интересующегося и научить\передать ему свои знания ... имхо


потому и проще взять интересующегося
как привить интерес — это должен уметь руководитель
одни интерес отбивают другие прививают на себе заметил
Re[16]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 17:36
Оценка: 3 (1)
Здравствуйте, Dog, Вы писали:

Dog>Я бы добавил сюда ещё понимание элементарных и ссылочных типов, дженерики... и как не странно есть непонимание между делегатами и событиями...


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

Dog>зы. Кстати, на каждом собеседовании спрашивают чем отличаются List от Dictionary ... и лишь в одном случае, имелли ввиду ListDictionary


процентов 80 режется вопросами вроде данного, про основы ооп и некоторыми другими, мимо чего просто нельзя пройти
Re[16]: C# - как проводить собеседование ?
От: Ravlyk Австралия http://stitcharteasy.com
Дата: 03.11.07 17:38
Оценка:
Здравствуйте, 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()
Re[16]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 18:37
Оценка:
Здравствуйте, 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>>
AVK Blog
Re[17]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 18:37
Оценка: +1
Здравствуйте, Dan Dare III, Вы писали:

Dog>>Я бы добавил сюда ещё понимание элементарных и ссылочных типов, дженерики... и как не странно есть непонимание между делегатами и событиями...


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


Кандидат, не знающих "всего этого", вообще не способен писать production-код.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[11]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 18:37
Оценка:
Здравствуйте, Dog, Вы писали:

Dog>Опять же выделенное главное... и как а заставить человека заинтрерсоваться....


А зачем? Вы же не учебное заведение? Если он не способен повышать свою квалификацию без пинков, получить от него положительную выгоду в IT-разработке на технической позиции будет крайне непросто.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[11]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 18:37
Оценка: +1
Здравствуйте, Dan Dare III, Вы писали:

DDI>да о многом но больше о тебе самом, AVK


Чего это ты на хамство перешел? Аргументы кончились? Ты это заканчивай.

DDI>в общих чертах я понял но ты объясни почему ты решил что они не интересуются


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

DDI>я случаем работаю в коммерческой организации она негосударственная не геймдев


Ну слава богу.

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


Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[16]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 19:08
Оценка:
Здравствуйте, Dog, Вы писали:

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

DDI>>сеньор представляет зачем нужны слова virtual и override
Dog>Это должен знать сеньор... пойду застрелюсь....

бгггг ты ведь сказал что с ГоФ и Фаулером знаком если человек не знаком с virtual и тд врядли сможет фаулера и гоф читать
Re[18]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 19:12
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>Кандидат, не знающих "всего этого", вообще не способен писать production-код.


Re[12]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 19:13
Оценка: 9 (1)
Здравствуйте, AndrewVK, Вы писали:

AVK>А зачем? Вы же не учебное заведение? Если он не способен повышать свою квалификацию без пинков, получить от него положительную выгоду в IT-разработке на технической позиции будет крайне непросто.


зачем пинать есть более эффективные способы безо всякого давления на кандидата
вкус к работе и интерес можно прививать например похвалами доверием и ответсвенностью
Re[12]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 19:15
Оценка:
Здравствуйте, AndrewVK, Вы писали:

DDI>>да о многом но больше о тебе самом, AVK

AVK>Чего это ты на хамство перешел? Аргументы кончились? Ты это заканчивай.

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

DDI>>в общих чертах я понял но ты объясни почему ты решил что они не интересуются


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


потому что терминология не является общепринятой

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


AVK>Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.


ты хочешь сказать что именно ко мне попадают люди которые этого не знают ?
Re[13]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.11.07 20:13
Оценка: :)
Здравствуйте, 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>>
AVK Blog
Re[17]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 20:52
Оценка: +1
Dog>>... имхо, сталкиваясь с такими людими, я так и не знаю как ... "привить интерес к работе" таким людям. гораздо проще взять человека интересующегося и научить\передать ему свои знания ... имхо
DDI>потому и проще взять интересующегося
DDI>как привить интерес — это должен уметь руководитель
DDI>одни интерес отбивают другие прививают на себе заметил
Чесно говоря, мне проще нанять "интересущегося" человека.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[17]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 20:52
Оценка:
DDI>>>кроме того сеньор обычно представляет зачем нужна обработка ошибок и как ее оформить в проекте
DDI>>>сеньор представляет зачем нужны слова virtual и override
Dog>>Это должен знать сеньор... пойду застрелюсь....
DDI>бгггг ты ведь сказал что с ГоФ и Фаулером знаком если человек не знаком с virtual и тд врядли сможет фаулера и гоф читать
Именно о том...
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[4]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 20:52
Оценка:
Y>>>Я могу посоветовать поступить так: выложить на сайте компании тестовое задание, а на собеседовании беседовать по выполненному заданию.
Dog>>Это должна быть очень хорошая работа, что бы я согласился тратить время на тестовое задание (имхо)
iT>Естественно, это должна быть очень хорошая работа А разве соискатели когда-нибудь ищут другую?
Цель. В этом всё. Поставте перед собой цель получить работу... Результатами воспользуйтесь по своему усмотрениему.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[13]: C# - как проводить собеседование ?
От: Dog  
Дата: 03.11.07 20:52
Оценка:
AVK>>А зачем? Вы же не учебное заведение? Если он не способен повышать свою квалификацию без пинков, получить от него положительную выгоду в IT-разработке на технической позиции будет крайне непросто.
DDI>зачем пинать есть более эффективные способы безо всякого давления на кандидата
DDI>вкус к работе и интерес можно прививать например похвалами доверием и ответсвенностью
Гы, вы доставите больший интерес чем девушка после работы ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[12]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 21:23
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.


сейчас половина кандидатов валятся на virtual и интерфейсах

знакомы многие но знание паттернов без ООП на знание не тянет а на понимание тем более

терминология без знания и понимания вообще балласт

с учетом всего этого терминология не тянет на общепринятую потому как не раз сталкивался что под фасадом тем же или фабрикой классов понимается совершенно разное.
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 03.11.07 22:00
Оценка: :)
Здравствуйте, Dog, Вы писали:

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

DDI>>вкус к работе и интерес можно прививать например похвалами доверием и ответсвенностью
Dog>Гы, вы доставите больший интерес чем девушка после работы ?

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

DDI>с учетом всего этого терминология не тянет на общепринятую потому как не раз сталкивался что под фасадом тем же или фабрикой классов понимается совершенно разное.


фигню написал))) совершенно разное это как про фабрику так и про фасад по отдельности

человек знакомый с паттернами выдал фабрика классов — сущность которая умеет генерировать код для подобных себе классов
поспрашивал его про генерацию кода — очень толково разъяснил а с паттернами все непонятно
Re[13]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.11.07 00:04
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>сейчас половина кандидатов валятся на virtual и интерфейсах

DDI>знакомы многие но знание паттернов без ООП на знание не тянет а на понимание тем более
DDI>терминология без знания и понимания вообще балласт

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

DDI>с учетом всего этого терминология не тянет на общепринятую потому как не раз сталкивался что под фасадом тем же или фабрикой классов понимается совершенно разное.


Очень интересно.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[15]: C# - как проводить собеседование ?
От: Кэр  
Дата: 04.11.07 04:28
Оценка:
Здравствуйте, 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>каким боком текстовые символы имеют отношение к индексатору и сабстрингу ?


В том-то и дело, что только косвенным Или ваша задача про проверку симметричности строки формулируется не так: "проверить симметричны ли текстовые символы относительно середины строки". А вот так: "проверить являются ли байты во внутреннем представлении строки симметричными"?
Видимо это как раз пример странной задачки типичной только для собеседования — ну типа там задачи про гномов и шапки и т.п.
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 07:14
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>Ну и толку от таких товарищей на должности архитекта? Я еще понимаю кодера взять — максимум придется выкинуть написанный им код. А вот стоимость ошибок архитекта ... Впрочем, конечно, каждый сам кузнец своего счастья.


я не говорю про архитекторов
Re[16]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 07:24
Оценка:
Здравствуйте, Кэр, Вы писали:

DDI>>каким боком текстовые символы имеют отношение к индексатору и сабстрингу ?


Кэр>В том-то и дело, что только косвенным Или ваша задача про проверку симметричности строки формулируется не так: "проверить симметричны ли текстовые символы относительно середины строки". А вот так: "проверить являются ли байты во внутреннем представлении строки симметричными"?


вот так "проверить симметричны ли символы в строке относительно её середины"

можешь проверить по топику я тебя не обманул

ты спрашивай стебаться все умеют

Кэр>Видимо это как раз пример странной задачки типичной только для собеседования — ну типа там задачи про гномов и шапки и т.п.


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

задача много чего о человеке рассказывает, очень много
Re[17]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 04.11.07 11:34
Оценка: :)
Dan Dare III пишет:
> задача про симметрию только для собеседования
> задача много чего о человеке рассказывает, очень много

ну-ну...

а ну-ка расскажите обо мне?

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);
}
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[18]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.11.07 14:33
Оценка: 9 (1)
Здравствуйте, Ромашка, Вы писали:

Р>
Р>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>>
AVK Blog
Re[17]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.11.07 14:35
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


А обо мне?

static bool IsSymmetric(string s)
{
    char[] charArray = s.ToCharArray();
    Array.Reverse(charArray);
    return new string(charArray) == s;
}
Re[19]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 04.11.07 14:46
Оценка:
AndrewVK пишет:
> Итого, расход памяти 2 х длинна строки, 3 прохода. При том что задача
> решается за один проход и без расхода памяти.

Я подожду ответа Dan Dare III, а потом задам Вам следующий вопрос, ок?
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[18]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 04.11.07 14:48
Оценка:
gandjustas пишет:
> А обо мне?

А Вы просто подмазались.
Причем, неудачно.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[19]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.11.07 15:06
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>gandjustas пишет:

>> А обо мне?

Р>А Вы просто подмазались.

Р>Причем, неудачно.

Почему неудачно?
В решении гораздо меньше букв, а работает быстрее
Re[20]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 04.11.07 15:10
Оценка:
gandjustas пишет:
> Почему неудачно?
> В решении гораздо меньше букв, а работает быстрее

Я дождусь все-таки ответа Dan Dare III.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[18]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 16:15
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Dan Dare III пишет:

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

Р>ну-ну...


Р>а ну-ка расскажите обо мне?


условие ты не понял у тебя есть еще две попытки

Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки


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

G>
G>static bool IsSymmetric(string s)
G>{
G>}
G>


тоже самое — условие неправильно понятно и реализация неэффективна используй индексатор его не зря в string сунули
Re[19]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 16:21
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Итого, расход памяти 2 х длинна строки, 3 прохода. При том что задача решается за один проход и без расхода памяти.


условие первоначальное было с оговоркой рекурсия толи непрочитали толи плохо прочитали

а вторая попытка на оценке не сказывается как и третья а здесь видно пошутить решили ну и ладно
Re[19]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 04.11.07 16:43
Оценка:
AndrewVK пишет:
> Итого, расход памяти 2 х длинна строки, 3 прохода. При том что задача
> решается за один проход и без расхода памяти.

Ужасть-то какая. Тогда поясните, почему данный конкретный пример у
меня работает быстрее


static void Main(string[] args)
         {
 
TestSymmetric("12345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321");
         }

         static void TestSymmetric(string testString)
         {
             Console.WriteLine(string.Format("Длина строки - {0}", 
testString.Length.ToString()));

             DateTime __startTime = DateTime.Now;
             for (int i = 0; i < 10000000; i++)
                 IsSymmetric(testString);
             DateTime __endTime = DateTime.Now;
             Console.WriteLine(string.Format("Ромашка:  {0}", 
TimeSpan.FromTicks(__endTime.Ticks - __startTime.Ticks).ToString()));

             __startTime = DateTime.Now;
             for (int i = 0; i < 10000000; i++)
                 IsSymmetric2(testString);
             __endTime = DateTime.Now;
             Console.WriteLine(string.Format("Классика: {0}", 
TimeSpan.FromTicks(__endTime.Ticks - __startTime.Ticks).ToString()));

         }

         static bool IsSymmetric(string str)
         {
             int n = str.Length;
             char[] __chrs = str.Substring(n - n / 2).ToCharArray();
             Array.Reverse(__chrs);
             return str.Substring(0, n / 2) == new string(__chrs);
         }
         static bool IsSymmetric2(string str)
         {
             int i = 0; int j = str.Length - 1;
             while (j - i > 0)
                 if (str[j--] != str[i++])
                     return false;
             return true;
         }
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[19]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 04.11.07 16:53
Оценка: +2
Dan Dare III пишет:
> условие ты не понял у тебя есть еще две попытки

Извини, мне лениво.

> даже то решение что ты привел далеко от идеала цикл for в строке не зря

> есть индексатор

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

Понимаешь в чем проблема? Ты пытаешься выяснить чего я не знаю, я
пытаюсь тебе показать, что я умею. Первое же нетривиальное решение и
каждый из нас уверен, что его собеседник идиот. ИМХО, очень плохая
тактика, пусть даже на собеседовании.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[20]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 17:41
Оценка: :)
Здравствуйте, Ромашка, Вы писали:

Р>Понимаешь в чем проблема? Ты пытаешься выяснить чего я не знаю, я

Р>пытаюсь тебе показать, что я умею.

человек которые не понимает условие и настаивает на своей правоте не интересен в принципе

если рекурсию ты не умеешь извини нам нужны те кто её умеют

Р>каждый из нас уверен, что его собеседник идиот. ИМХО, очень плохая


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

показывать что ты умеешь нужно не только задачей а то вопрос про рекурсию а кандидат толкает про массивы
как я могу что либо оценивать в этом случае ?
Re[20]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 04.11.07 17:45
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Понимаешь в чем проблема? Ты пытаешься выяснить чего я не знаю, я

Р>пытаюсь тебе показать, что я умею. Первое же нетривиальное решение и
Р>каждый из нас уверен, что его собеседник идиот. ИМХО, очень плохая
Р>тактика, пусть даже на собеседовании.

Но очень распространенная. Чаще всего описывается "популярным шоу": "вот вам вопрос, а теперь угадайте, какой правильный ответ я загадал." (к)
Голь на выдумку хитра, однако...
Re[20]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.11.07 17:59
Оценка: +1
Здравствуйте, Ромашка, Вы писали:

Р>Ужасть-то какая. Тогда поясните, почему данный конкретный пример у

Р>меня работает быстрее

Потому что подобные тесты надо запускать с включенной оптимизацией, в релизе, и не в студии.
Да и не важно все это, цель собеседования ведь не выяснить знания каких то тонкостей, а определить базовые умения. Если, как ты утверждаешь, основанием для подобного кода являлось не неумение написать "классический вариант", а стремление показать знание каких то тонкостей, то это быстро выяснится после одного-двух наводящих вопросов.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[21]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 18:07
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Потому что подобные тесты надо запускать с включенной оптимизацией, в релизе, и не в студии.

AVK>Да и не важно все это, цель собеседования ведь не выяснить знания каких то тонкостей, а определить базовые умения. Если, как ты утверждаешь, основанием для подобного кода являлось не неумение написать "классический вариант", а стремление показать знание каких то тонкостей, то это быстро выяснится после одного-двух наводящих вопросов.

конечно это самое главное — по самой маленькой задаче можно задать массы вопросов
Re[21]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 04.11.07 18:08
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

Р>>Понимаешь в чем проблема? Ты пытаешься выяснить чего я не знаю, я

Р>>пытаюсь тебе показать, что я умею.

DDI>человек которые не понимает условие и настаивает на своей правоте не интересен в принципе


результат решения задачи "собеседование" очевиден для обоих...

DDI>если рекурсию ты не умеешь извини нам нужны те кто её умеют


Р>>каждый из нас уверен, что его собеседник идиот. ИМХО, очень плохая


DDI>не каждый а только ты в этом уверен

DDI>я не снижаю бал за твое решение если ты напишешь рекурсию хоть бы и с третьей попытки

DDI>показывать что ты умеешь нужно не только задачей а то вопрос про рекурсию а кандидат толкает про массивы

DDI>как я могу что либо оценивать в этом случае ?

Основная проблема: Вы не можете внятно пояснить Ему чего Вы хотите — Он не может внятно понять Вас чего Вы хотите. Здесь "Он" и "Вы" — конкретные люди: конкретный кандидат и конкретный "потенциальный работодатель". Результат очевиден: какими бы навыками в действительности не обладали и первый и второй, понимания между ними нет. Кто в этом виновать — простите за выражение, пофиг — результат: вместе им не работать.

имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо...
Голь на выдумку хитра, однако...
Re[22]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 18:22
Оценка:
Здравствуйте, The Lex, Вы писали:

DDI>>человек которые не понимает условие и настаивает на своей правоте не интересен в принципе


TL> результат решения задачи "собеседование" очевиден для обоих...


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

TL>Основная проблема: Вы не можете внятно пояснить Ему чего Вы хотите — Он не может внятно понять Вас чего Вы хотите.


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

TL>Здесь "Он" и "Вы" — конкретные люди: конкретный кандидат и конкретный "потенциальный работодатель". Результат очевиден: какими бы навыками в действительности не обладали и первый и второй, понимания между ними нет. Кто в этом виновать — простите за выражение, пофиг — результат: вместе им не работать.


я с тобой согласен но здесь форум а не собеседование

TL>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо...


так и есть
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 18:25
Оценка:
Здравствуйте, AndrewVK, Вы писали:

DDI>>это не хамство как раз, прочитай свое сообщение про продакшн код

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

AVK>Сочувствую.


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

AVK>>>Нет, констатация факта. Сейчас с теми терминами, что я перечислил, знакомы даже студенты.

DDI>>ты хочешь сказать что именно ко мне попадают люди которые этого не знают ?
AVK>Видимо да.

тогда смотри выше
Re[19]: C# - как проводить собеседование ?
От: Ravlyk Австралия http://stitcharteasy.com
Дата: 04.11.07 18:28
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>используй индексатор его не зря в string сунули


А вы в курсе что индексатор на каждый вызов делает проверку на вхождение индекса в границы. И операция эта занимает время? (В результате чего предложенные варианты без индексатора, но с болшей памятью работают быстрее).
Re[21]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 18:29
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Я дождусь все-таки ответа Dan Dare III.


можно просто DDI или Семён

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

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


DDI>>>человек которые не понимает условие и настаивает на своей правоте не интересен в принципе


TL>> результат решения задачи "собеседование" очевиден для обоих...


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

DDI>мои коллеги меня поддерживают в этом

TL>>Основная проблема: Вы не можете внятно пояснить Ему чего Вы хотите — Он не может внятно понять Вас чего Вы хотите.


DDI>здесь проблемы никакой Ромашка сначала хотел пошутить а потом полез на броневик

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

Если честно, то я тоже (хоть и читаю в пол-уха — у нас вечер воскресенья) не понял какую такую "рекурсию" ты (Вы?) имеешь в виду и почему ты после 1-й неправильной попытки сказал "пробуй еще", а не попытался объяснить задачу. В виду этого лично мне непонятно, зачем тратить твое и его время (мы о собеседовании — не про тебя и Ромашку здесь) на дальнейшие попытки. Я же говорю: в игру "я угадаю загаданный вами ответ с 3-х попыток!" играть неинтересно — по крайней мере, на собеседовании. К тому же это явно говорит о том, что есть непонимание между кандидатом и потенциальным менеджером или сложившейся системой — раз уж собеседующий в ней уже работает и, наверное, успешно. Раз так — какой смысл пытаться вникнуть в "черный ящик закрытой системы", если он "закрылся" еще до начала непосредственной работы? Деньги за это не платят, а вероятность "продолжить играть в загадки" и после собеседования крайне высока. И для первого, и для второго Ромашка выбрал, имхо, самый рациональный вариант: оба говорят другому "ты — идиот" — можно мысленно — и вежливо расходятся. Никому ни тепло, ни жарко — это просто собеседование. А вот когда таких "идиотов" становится много — "это Же неспроста!.." (к)

TL>>Здесь "Он" и "Вы" — конкретные люди: конкретный кандидат и конкретный "потенциальный работодатель". Результат очевиден: какими бы навыками в действительности не обладали и первый и второй, понимания между ними нет. Кто в этом виновать — простите за выражение, пофиг — результат: вместе им не работать.


DDI>я с тобой согласен но здесь форум а не собеседование


Я думал мы тута обсуждаем да?

TL>>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо...


DDI>так и есть


А как именно? Мы тута обсуждаем, да?
Голь на выдумку хитра, однако...
Re[20]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 18:56
Оценка:
Здравствуйте, Ravlyk, Вы писали:

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


вариант с циклом
минимальное время выполнения — сравнение двух крайних символов

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

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

теперь открой какой нибудь файлик и посмотри как много там симметричных строк
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 19:06
Оценка:
Здравствуйте, The Lex, Вы писали:

TL> Если честно, то я тоже (хоть и читаю в пол-уха — у нас вечер воскресенья) не понял какую такую "рекурсию" ты (Вы?) имеешь в виду и почему ты после 1-й неправильной попытки сказал "пробуй еще", а не попытался объяснить задачу.


я заметил тут многие на ты так что на ты

TL>В виду этого лично мне непонятно, зачем тратить твое и его время (мы о собеседовании — не про тебя и Ромашку здесь) на дальнейшие попытки.


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

TL>>>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с аналогичной причиной отрицательного результата — имеет смысл задуматься и первому, и второму. Но это так — имхо...

DDI>>так и есть
TL> А как именно?

именно так как ты сказал в том сообщении
разборы полетов они всем помогают
Re[20]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 04.11.07 19:12
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Ужасть-то какая. Тогда поясните, почему данный конкретный пример у

Р>меня работает быстрее

Р>

Р>TestSymmetric("12345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321123456789012345665432109876543211234567890123456654321098765432112345678901234566543210987654321");
Р>         }

Р>


ответил пользователю Ravlyk
смотри там
если не согласен пиши
Re[20]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.11.07 19:58
Оценка: 9 (1) :)
Здравствуйте, Ravlyk, Вы писали:

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


А ты в курсе, что оптимизатор JIT такие проверки умеет устранять?
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[21]: C# - как проводить собеседование ?
От: Ravlyk Австралия http://stitcharteasy.com
Дата: 04.11.07 20:11
Оценка:
Здравствуйте, AndrewVK, Вы писали:

R>>А вы в курсе что индексатор на каждый вызов делает проверку на вхождение индекса в границы.

AVK>А ты в курсе, что оптимизатор JIT такие проверки умеет устранять?

Умеет, но не всегда, и надеятся на это безоговорочно не стОит. И в случае с рекурсией (и передачей индексирующих переменных через стек) он точно не справится.
Re[22]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.11.07 20:20
Оценка: +1
Здравствуйте, Ravlyk, Вы писали:

R>Умеет, но не всегда


В данном случае умеет.

R>, и надеятся на это безоговорочно не стОит.


И уж тем более не стоит плодить хаки, которые работают только в отладочном режиме.

R>И в случае с рекурсией (и передачей индексирующих переменных через стек) он точно не справится.


Если это будет критично, это быстро отловится при профилировании. А пока что я вижу хрестоматийный случай преждевременной оптимизации.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[19]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 04.11.07 20:43
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>Здравствуйте, Ромашка, Вы писали:


DDI>

DDI>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки


DDI>даже то решение что ты привел далеко от идеала цикл for в строке не зря есть индексатор



Первое решение, пришедшее в голову (предыдущий пост — прикол, хотел рассказ о себе услышать):
static bool IsSymmetric(string s)
{
    for (int i = 0; i < s.Length/2; i++)
    {
        if (s[i] != s[s.Length - 1 - i]) return false;
    }
    return true;
}

Работает в худшем случае в 2 раза быстрее (в релизе без студии), чем варианты в Array.Reverse.

Где тут применить РЕКУРСИЮ???
Re[20]: C# - как проводить собеседование ?
От: Lao Украина  
Дата: 04.11.07 21:14
Оценка: 9 (1)
Здравствуйте, 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), который будет сравнивать символы с указанными индексами и рекурсивно вызывать себя, если символы равны. Тогда и будет рекурсия

static bool IsSymmetric(string s)
{
return IsSymmetric(s, 0, s.Length-1);
}
Re[13]: C# - как проводить собеседование ?
От: Dog  
Дата: 04.11.07 22:14
Оценка:
DDI>сейчас половина кандидатов валятся на virtual и интерфейсах
Вы джуниоров ищите ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[21]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 04.11.07 22:21
Оценка:
Здравствуйте, 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);
}

А в первом варианте, боюсь, дальше начала строки не уйдем...
Голь на выдумку хитра, однако...
Re[23]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 04.11.07 22:34
Оценка:
Dan Dare III пишет:

Я не буду отвечать по всему топику, просто тут напишу....

> здесь проблемы никакой Ромашка сначала хотел пошутить а потом полез на

> броневик

На самом деле я ошибся. Два раза. В первый раз когда "по-диагонали"
прочитал про рекурсию, второй раз когда протестил "по быстрому" в дебаге.

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

> — нехорошо это

Не напишу я рекурсию. У меня сердце кровью обливалось, когда я этот
пример писал, а когда я подумаю, что там в рекурсии будет творится с
ресурсами... Лучше не заставляй.

А про идиотов... Извини, не думал что ты это на свой счет примешь...
Не обращай внимания, это мои тараканы.

> TL>имхо, после 2-3-х собеседований с аналогичным результатом — точнее, с

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

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

Впрочем, твоя реакция, хоть и была ожидаема, но порадовала корректностью.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[22]: C# - как проводить собеседование ?
От: Lao Украина  
Дата: 05.11.07 06:27
Оценка:
Здравствуйте, 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 конечно же сужаем диапозон.
Просто спешил и опечатался.
Re[23]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 07:35
Оценка:
Здравствуйте, Lao, Вы писали:

Lao>На самом деле я имел ввиду это


Lao>static bool IsSymmetric(string s)

Lao>{
Lao> return IsSymmetricInternal(s, 0, s.Length-1);
Lao>}
Lao>В IsSymmetricInternal конечно же сужаем диапозон.
Lao>Просто спешил и опечатался.

А зачем нам целых 2 одинаковые функции?
Голь на выдумку хитра, однако...
Re[24]: C# - как проводить собеседование ?
От: Lao Украина  
Дата: 05.11.07 07:50
Оценка:
Здравствуйте, 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)
?
Re[20]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 09:22
Оценка:
Здравствуйте, 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));
        }
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 09:25
Оценка:
Здравствуйте, Dog, Вы писали:

DDI>>сейчас половина кандидатов валятся на virtual и интерфейсах

Dog> Вы джуниоров ищите ?

как сеньор будет разрабатывать фреймворк если не в курсе что такое интерфейсы и виртуальность ?
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 09:27
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Впрочем, твоя реакция, хоть и была ожидаема, но порадовала корректностью.


Re[21]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 09:29
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>но только если придешь на собеседование а то

DDI>не хочу что бы ты как ромашка поступил

прошу прощения — это имеется "мне лениво" ввиду
Re[21]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 09:32
Оценка:
Здравствуйте, 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>
Re[22]: C# - как проводить собеседование ?
От: Ромашка Украина  
Дата: 05.11.07 09:54
Оценка:
Dan Dare III пишет:
> я не требую буквально такого же

Семен, но ведь это же ужасть.

> ничего страшного что кандидат пропустит нулл или еще что

> это нормально бумага всетаки не компьютер но главное что бы рекурсию не
> пропустил

Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была
действительно нужна? Ну или хотя-бы не тормозила жутко?
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[13]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 10:53
Оценка:
DDI>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки

10 мин


namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter string: ");
            string s = Console.ReadLine();
            if (IsSymm(s)) Console.WriteLine("Symmetric"); else Console.WriteLine("Non-symmetric");    
            Console.ReadLine();
        }

        static bool IsSymm(string s)
        {
            return (s.Length > 1) ? ((s[0]==s[s.Length - 1]) ? (IsSymm(s.Substring(1, s.Length - 2)) && true) : false) : true;
        }
    }
}
Re[25]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 11:57
Оценка:
Здравствуйте, 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>?

Думаю я добавлю параметров по умолчанию...
Голь на выдумку хитра, однако...
Re[23]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:00
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Семен, но ведь это же ужасть.


люди пишут, не справляются только единичные кандидаты

Р>Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была

Р>действительно нужна? Ну или хотя-бы не тормозила жутко?

есть рекурсия очень полезная 9 строк но решают её единицы и после этого кандидаты всегда недовольны
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:08
Оценка:
Здравствуйте, aerobus, Вы писали:

DDI>>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки


A>10 мин


вот, отличный результат только код трудночитаемый
задачу даю так чтобы смог её проверить без компьютера
"&& true" зачем

A>
A>namespace ConsoleApplication1
A>{
A>        static bool IsSymm(string s)
A>        {
A>            return (s.Length > 1) ? ((s[0]==s[s.Length - 1]) ? (IsSymm(s.Substring(1, s.Length - 2)) && true) : false) : true;
A>        }
A>    }
A>}
A>
Re[21]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 12:11
Оценка: 2 (1) :)
Здравствуйте, Dan Dare III, Вы писали:

G>>Первое решение, пришедшее в голову (предыдущий пост — прикол, хотел рассказ о себе услышать):


DDI>хочешь услышать рассказ мое мыло

semen>>dot<kosobutski>a<gmail>dot<com
DDI>но только если придешь на собеседование а то
DDI>не хочу что бы ты как ромашка поступил

G>>Где тут применить РЕКУРСИЮ???


DDI>13 строчек

... поскипаны за ненужностью.

Ясно. Это именно то, о чем я сразу и сказал: "угадайте ответ, который я загадал" (к)

Такое себе "книжное употребление рекурсии в виде простого решения вырожденного варианта задачи и последовательного сведения рекурсией всех остальных вариантов к вырожденному". Имеет академическую ценность — практической ценности, как и подавляющие 100% таких вопросов, не имеет.

ЗЫ. А теперь вопрос на засыпку: у чем Ваш код неверен? А впрочем... таки да — наверное будет работать и это таки "оптимизация". Но этот код действительно ужасен! Надеюсь, Вы с этим согласны? Из этой конторы просто необходимо бежать, бежать, бежать! Потому что если такой код предлагают писать на собеседовании — что же они предложать писать в реальной работе!?
Голь на выдумку хитра, однако...
Re[26]: C# - как проводить собеседование ?
От: Lao Украина  
Дата: 05.11.07 12:25
Оценка:
Здравствуйте, The Lex, Вы писали:

TL>Думаю я добавлю параметров по умолчанию...


В С# не получиться сделать параметры по-умолчанию.

И вообще DDI тут уже предложил вариант, где те параметры и не нужны.
Re[22]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:29
Оценка:
Здравствуйте, The Lex, Вы писали:

TL>Ясно. Это именно то, о чем я сразу и сказал: "угадайте ответ, который я загадал" (к)


нет смотри ответ aerobus у него отличное решение хотя и отличное от моего

главное 2 вопроса

1 рекурсия

2 работает

+ я сам сказал "я не требую буквально такого же"



TL>Такое себе "книжное употребление рекурсии в виде простого решения вырожденного варианта задачи и последовательного сведения рекурсией всех остальных вариантов к вырожденному". Имеет академическую ценность — практической ценности, как и подавляющие 100% таких вопросов, не имеет.



TL>ЗЫ. А теперь вопрос на засыпку: у чем Ваш код неверен? А впрочем... таки да — наверное будет работать и это таки "оптимизация". Но этот код действительно ужасен! Надеюсь, Вы с этим согласны? Из этой конторы просто необходимо бежать, бежать, бежать! Потому что если такой код предлагают писать на собеседовании — что же они предложать писать в реальной работе!?


Lex пойми что я не господь бог и возможности ограничены и это не мешает брать на работу тех кто сильнее меня

если девелопер напишет лучше меня будь уверен его код я пойму

условий то всего 2 — рекурсия и работоспособность

мы стобой не знакомы с какой стати ты говоришь что то про организацию ?

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

Р>Dan Dare III пишет:

>> я не требую буквально такого же

Р>Семен, но ведь это же ужасть.


что ужасть не понял ? что надо требовать буквальное соответствие ?

всего 2 условия рекурсия и работоспособность
Re[15]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 12:32
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


DDI>>>Задача(является ли строка симметричной, рекурсия) — 15 минут(не меньше) и три попытки


A>>10 мин


DDI>вот, отличный результат только код трудночитаемый

DDI>задачу даю так чтобы смог её проверить без компьютера
DDI>"&& true" зачем

Да, насчет "&& true" чего-то я прогнал

Должно быть так:

        static bool IsSymm(string s)
        {
            return (s.Length > 1) ? ((s[0]==s[s.Length - 1]) ? (IsSymm(s.Substring(1, s.Length - 2))) : false) : true;
        }


его же эквивалент в читабельно-человекопонимабельном виде:


        static bool IsSymm(string s)
        {
            if (s.Length > 1)
            {
                if (s[0] == s[s.Length - 1])
                {
                    return IsSymm(s.Substring(1, s.Length - 2));
                }
                else
                {
                    return false;
                }
            }
            else
            {
                return true;
            }
        }
Re[16]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:45
Оценка:
Здравствуйте, aerobus, Вы писали:

A>Да, насчет "&& true" чего-то я прогнал


скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"
Re[17]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 12:51
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


A>>Да, насчет "&& true" чего-то я прогнал


DDI>скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"


Не понял что ты имел ввиду — как-то ты рекурсивно сюжет закрутил

Кинь пжлст ссылку на твое решение этой задачи (просто интересно какой он другой подход к ее решению)
Re[27]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:52
Оценка:
Здравствуйте, Lao, Вы писали:

Lao>В С# не получиться сделать параметры по-умолчанию.


почему же не получится можно сэмулировать
Re[18]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 12:56
Оценка:
Здравствуйте, aerobus, Вы писали:

DDI>>скажи тогда мою позицию можно назвать "угадайте ответ, который я загадал" (к)"


A>Не понял что ты имел ввиду — как-то ты рекурсивно сюжет закрутил


A>Кинь пжлст ссылку на твое решение этой задачи (просто интересно какой он другой подход к ее решению)


решение
http://rsdn.ru/forum/message/2718731.1.aspx
Автор: Dan Dare III
Дата: 05.11.07


"угадайте ответ, который я загадал" (к)"
http://rsdn.ru/forum/message/2718935.1.aspx
Автор: The Lex
Дата: 05.11.07
Re[23]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.11.07 13:03
Оценка: 22 (3) :)
Здравствуйте, Ромашка, Вы писали:

Р>Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была

Р>действительно нужна? Ну или хотя-бы не тормозила жутко?

Точно, надо так
static void Main(string[] args)
{
    Func<Func<int, char>, int, int, bool> isSymmChars = null;
    isSymmChars = (c, h, t) => t - h < 2 || (c(h) == c(t) && isSymmChars(c, h + 1, t - 1));
    Func<Func<string>, bool> isSymmStr = (s) => isSymmChars(p => s()[p], 0, s().Length - 1);

    Console.WriteLine(isSymmStr(() => "12345654321"));
    Console.Read();
}
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 13:26
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Точно, надо так

AVK>
AVK>static void Main(string[] args)
AVK>{
AVK>    Func<Func<int, char>, int, int, bool> isSymmChars = null;
AVK>    isSymmChars = (c, h, t) => t - h < 2 || (c(h) == c(t) && isSymmChars(c, h + 1, t - 1));
AVK>    Func<Func<string>, bool> isSymmStr = (s) => isSymmChars(p => s()[p], 0, s().Length - 1);

AVK>    Console.WriteLine(isSymmStr(() => "12345654321"));
AVK>    Console.Read();
AVK>}
AVK>


объясни пожалуйста что это такое
Re[25]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.11.07 13:31
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>объясни пожалуйста что это такое


Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[23]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 13:43
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>мы стобой не знакомы с какой стати ты говоришь что то про организацию ?


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

DDI>какие аргументы на счет ужасного кода ?


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

Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе. Скажу проще: есть очень большая вероятность что завтра ты придешь ко мне и скажешь: "а я хочу чтобы у тебя при проверке симметричности строк рекурсия применялась — будь добр..." (к) Еще раз: это не о тебе и не обо мне мы же пока опыта общения не имели — это мое видение того, как характеризует рабочий процесс появление _таких_ задач уже на собеседовании. Если ты не согласен что подобное решение — это "не очень хорошо, а точнее, вредно" — вот тут-то опять-таки и есть самый главный сабж: я (условно) — кандидат, ты (условно) — потенциальный работодатель — если ты реально используешь и отстаиваешь такие решения — хозяин-барин! — но я трижды подумаю чтобы идти к тебе работать и лично я пойду только в случае крайней нужды, поскольку опыт такой печальный повторять без нужды не хочу.

Я внятно выразился?
Голь на выдумку хитра, однако...
Re[28]: C# - как проводить собеседование ?
От: Lao Украина  
Дата: 05.11.07 13:43
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


Lao>>В С# не получиться сделать параметры по-умолчанию.


DDI>почему же не получится можно сэмулировать


Расскажите, пожалуйста, как это "сэмулировать"?
Re[16]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 13:54
Оценка:
Здравствуйте, aerobus, Вы писали:

A>
A>        static bool IsSymm(string s)
A>        {
A>            return (s.Length > 1) ? ((s[0]==s[s.Length - 1]) ? (IsSymm(s.Substring(1, s.Length - 2))) : false) : true;
A>        }
A>


а логическими операторами почему не пользуешься?
Люди, я люблю вас! Будьте бдительны!!!
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 13:56
Оценка:
Здравствуйте, AndrewVK, Вы писали:

DDI>>объясни пожалуйста что это такое


AVK>Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.


а какая версия C# ?
Re[22]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 14:03
Оценка: :)
Здравствуйте, Dan Dare III, Вы писали:

DDI>>13 строчек


int len=s.Length;
return  len<=1  ||  s[0]==s[len-1] && IsSymmetric(s.Substring(1,len-2));


я тебе предлагаю более простой способ отбора — показываешь свои 13 строчек девелоперу и если его кондрашка не хватит, сразу прощаешься
Люди, я люблю вас! Будьте бдительны!!!
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:08
Оценка:
Здравствуйте, The Lex, Вы писали:

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


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

TL>Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе.


TL>Я внятно выразился?


внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие
Re[24]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 14:19
Оценка:
Здравствуйте, The Lex, Вы писали:

много поскипано...

TL>Я внятно выразился?


Но если не суетиться и спокойно подумать — над тем, стоит ли использовать такие задачи на собеседовании — то... почему бы и нет? Но Баба Яга все равно против! (к)
Голь на выдумку хитра, однако...
Re[17]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 14:19
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>а логическими операторами почему не пользуешься?


Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.
Re[21]: C# - как проводить собеседование ?
От: Кэр  
Дата: 05.11.07 14:23
Оценка: 10 (1)
Здравствуйте, 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), если не ошибаюсь. Даже если отбросить требования работы данного кода с четырех-байтными символами, реализовывать надо данную функцию через цикл. Это два.
Re[25]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 14:24
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


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


Давай пойдем от обратного: зачем тебе вообще "проверять кандидата на знание рекурсии"?

TL>>Ты привел очень яркую иллюстрацию: действительно, мой опыт говорит о том, что появление подобных "задач" на собеседовании — качественный и довольно вероятный показатель наличия подобных "задач" в практической работе.


TL>>Я внятно выразился?


DDI>внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие


Если дополнить картину твоим этим постом, то картина рисуется четче, но от это еще пессимистичнее...
Голь на выдумку хитра, однако...
Re[23]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:24
Оценка: -1
Здравствуйте, BulatZiganshin, Вы писали:

BZ>
BZ>int len=s.Length;
BZ>return  len<=1  ||  s[0]==s[len-1] && IsSymmetric(s.Substring(1,len-2));
BZ>


BZ>я тебе предлагаю более простой способ отбора — показываешь свои 13 строчек девелоперу и если его кондрашка не хватит, сразу прощаешься


решение дожно быть понятно всем если они не решили разумеется

кроме этого есть специалисты которые переходят на с# из других областей — им тяжеловато читать код

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

потому решени должно читаться очень, очень легко

если твой код кандидат не поймет — это исключительно твой прокол кандидата этого ты уже не увидишь

ко мне приходят и по второму разу и были случаи что брали если замечали прогресс
Re[18]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 14:31
Оценка:
Здравствуйте, aerobus, Вы писали:

BZ>>а логическими операторами почему не пользуешься?


A>Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.


я ваш код прочесть не смог. по моему мнению, людей с императивным мышлением ("ди эрсте колонне марширт...") брать как раз не надо. мыслить нужно логически — либо строка короткая, либо первый и последний символы одинаковы, а середина опять же симметрична
Люди, я люблю вас! Будьте бдительны!!!
Re[28]: C# - как проводить собеседование ?
От: Lao Украина  
Дата: 05.11.07 14:31
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


Lao>>В С# не получиться сделать параметры по-умолчанию.


DDI>почему же не получится можно сэмулировать


Хотя бы намекните, что вы имели ввиду под эмуляцией.
Re[29]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:31
Оценка:
Здравствуйте, Lao, Вы писали:


DDI>>почему же не получится можно сэмулировать


Lao>Расскажите, пожалуйста, как это "сэмулировать"?


сэмулировать через params но вобще это штука была я видел такой код в портированой проге с с++ там авторы злоупотребили перегрузкой и параметрами по умолчанию
Re[24]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 14:37
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

BZ>>
BZ>>int len=s.Length;
BZ>>return  len<=1  ||  s[0]==s[len-1] && IsSymmetric(s.Substring(1,len-2));
BZ>>


BZ>>я тебе предлагаю более простой способ отбора — показываешь свои 13 строчек девелоперу и если его кондрашка не хватит, сразу прощаешься


DDI>решение дожно быть понятно всем если они не решили разумеется


Это, как раз, не обязательно. Тут, как раз, уже другая задача со стороны компании: не доказать что решение вообще существует, а показать кандидату, как именно задачу решили бы они и каких именно решений они ждут от работника.

Из здесь возникает вопрос: поскольку предложенная задача "на рекурсия" в реальной жизни нежизнеспособна — зачем ее вообще предлагать решать, кроме как из принципа "проверить знание рекурсии"? Если вы какие-то задачи решаете рекурсией — имхо, логично предложить подобную задачу и посмотреть, как ее решит кандидат — тогда мы получим практические цели процесса "собеседование". В чем суть ставить задачу собеседования "выяснить что _вообще_ знает и чего не знает кандидат" — этого я за свою скромную жизнь понять не смог.

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


Ну ты даешь! А если у тебя весь код так написан? И ты возмешь себе "специалиста", которому "трудно будет читать" твой код? А смысл? Как с ним потом работать?

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


вот-вот... а зачем? какова цель инициированного тобой процесса "собеседование"?

DDI>потому решени должно читаться очень, очень легко


А зачем? Какова цель демонстрации такого решения?

DDI>если твой код кандидат не поймет — это исключительно твой прокол кандидата этого ты уже не увидишь


А нужно? См.выше: если он твой код не поймет уже на собеседовании — что с ним дальше делать, начни он работать?

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


(это я так — не со зла...)
Голь на выдумку хитра, однако...
Re[25]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 14:40
Оценка: 3 (1) :)
Здравствуйте, 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
Люди, я люблю вас! Будьте бдительны!!!
Re[19]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:41
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>>>а логическими операторами почему не пользуешься?


A>>Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.


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


я смог прочесть и твой код и его запросто, при чем в коде aerobus нашел к чему придраться
а вот код avk я не понял
Re[22]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:49
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Грандиозно. И вы ищите людей, которые будут выдавать такой код в ответ на вашу задачу?.. Удачи вашей компании... Она ей пригодится.


Кэр>Начнем с того, что данный код не работает на следующей симметричной строке "a\u0304ba\u0304".


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

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

Кэр>Зачем вам там рекурсия крайне непонятно.


в проекте такой код не должен быть это очевидно от сюда и пляши
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:51
Оценка:
Здравствуйте, The Lex, Вы писали:

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


TL>Давай пойдем от обратного: зачем тебе вообще "проверять кандидата на знание рекурсии"?


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

DDI>>внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие


TL> Если дополнить картину твоим этим постом, то картина рисуется четче, но от это еще пессимистичнее...


я не понял что ты хотел сказать
Re[26]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 14:54
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:
BZ>
BZ>match (c:cs) ('?':ps) = match cs ps
BZ>match cs     ('*':ps) | match cs ps = True
BZ>match (c:cs) ('*':ps) = match cs ps 
BZ>match (c:cs) (p:ps)   = c==p && match cs ps
BZ>match _ _ = False
BZ>


функциональный язык значительно увеличивает производительность программиста, измеренную в кол-ве ошибок на строку
Люди, я люблю вас! Будьте бдительны!!!
Re[25]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:55
Оценка: :)
Здравствуйте, The Lex, Вы писали:

TL>>Я внятно выразился?


TL>Но если не суетиться и спокойно подумать — над тем, стоит ли использовать такие задачи на собеседовании — то... почему бы и нет? Но Баба Яга все равно против! (к)


кроме этой задачи есть и без рекурсий
примитивный конечный автомат — её даю совсем слабым студентам для того что бы через год можно было оценить прогресс
Re[25]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 14:59
Оценка:
Здравствуйте, The Lex, Вы писали:

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


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

TL>Из здесь возникает вопрос: поскольку предложенная задача "на рекурсия" в реальной жизни нежизнеспособна


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


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


TL>Ну ты даешь! А если у тебя весь код так написан? И ты возмешь себе "специалиста", которому "трудно будет читать" твой код? А смысл? Как с ним потом работать?


если специалист решил задачу то уровень у него выше чем у того кому я показываю решение при чем гарантия 100%


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


TL> вот-вот... а зачем? какова цель инициированного тобой процесса "собеседование"?


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

DDI>>потому решени должно читаться очень, очень легко

TL>А зачем? Какова цель демонстрации такого решения?

я уже объяснил — что бы у кандидата не было никаких сомнений что я спрашивал простой вопрос
это для того что бы он спокойно прислал резюме через год

DDI>>если твой код кандидат не поймет — это исключительно твой прокол кандидата этого ты уже не увидишь

TL>А нужно? См.выше: если он твой код не поймет уже на собеседовании — что с ним дальше делать, начни он работать?

нужно через год если будет прогресс все отлично — его берут
Re[27]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 14:59
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


TL>>Давай пойдем от обратного: зачем тебе вообще "проверять кандидата на знание рекурсии"?


DDI>считаю хорошо проверяет умение строить алгоритмы

DDI>сложно загружать кандидата смысла нет

Тут скорее "задача-головоломка на непрактичное применение известных алгоритмов/механизмов". Ну пусть будет "нетрадиционное применение". В целом, может иметь смысл в качестве проверки "незашоренности" мышления. С таким применением я согласен, но с целью — нет: я сам "зашоренный" на практические задачи и я не знаю хорошо мне будет или плохо, если в моей команде попадется такой вот "незашоренный оригинал".

DDI>>>внятно но ты ошибаешься, пиши какой угодно код главно что бы он работал и его понимали другие


TL>> Если дополнить картину твоим этим постом, то картина рисуется четче, но от это еще пессимистичнее...


DDI>я не понял что ты хотел сказать


Я хотел сказать, что очевидно стало, что ты даешь задачи, которых в практической работе у тебя на самом деле нет. Хорошо это или плохо? Т.е. вот я — кандидат. Я пришел, увидел, и понял (ну или для себя решил): "он дает задачи не из тех которые предстоит решать в работе" — точнее "совсем не из тех". Как ты считаешь я, как кандидат, должен оценить для себя перспективу работы с таким работодателем?
Голь на выдумку хитра, однако...
Re[30]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:00
Оценка:
Здравствуйте, Dan Dare III, Вы писали:


Lao>>Расскажите, пожалуйста, как это "сэмулировать"?


DDI>сэмулировать через params но вобще это шУтка была я видел такой код в портированой проге с с++ там авторы злоупотребили перегрузкой и параметрами по умолчанию


исправленому верить
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:01
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>сопоставление с образцом (?*):


BZ>
BZ>match (c:cs) ('?':ps) = match cs ps
BZ>match cs     ('*':ps) | match cs ps = True
BZ>match (c:cs) ('*':ps) = match cs ps 
BZ>match (c:cs) (p:ps)   = c==p && match cs ps
BZ>match _ _ = False
BZ>


хорошая шутка
Re[26]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 15:02
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

TL>>>Я внятно выразился?


TL>>Но если не суетиться и спокойно подумать — над тем, стоит ли использовать такие задачи на собеседовании — то... почему бы и нет? Но Баба Яга все равно против! (к)


DDI>кроме этой задачи есть и без рекурсий

DDI>примитивный конечный автомат — её даю совсем слабым студентам для того что бы через год можно было оценить прогресс

Каким таким "студентам"?
Голь на выдумку хитра, однако...
Re[28]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:11
Оценка:
Здравствуйте, The Lex, Вы писали:

TL>Тут скорее "задача-головоломка на непрактичное применение известных алгоритмов/механизмов". Ну пусть будет "нетрадиционное применение". В целом, может иметь смысл в качестве проверки "незашоренности" мышления. С таким применением я согласен, но с целью — нет: я сам "зашоренный" на практические задачи и я не знаю хорошо мне будет или плохо, если в моей команде попадется такой вот "незашоренный оригинал".


да, задача головоломка хотя и не головоломка на деле то

DDI>>я не понял что ты хотел сказать


TL>Я хотел сказать, что очевидно стало, что ты даешь задачи, которых в практической работе у тебя на самом деле нет. Хорошо это или плохо? Т.е. вот я — кандидат. Я пришел, увидел, и понял (ну или для себя решил): "он дает задачи не из тех которые предстоит решать в работе" — точнее "совсем не из тех".


твое право отказаться силой тебя никто не заставляет работать
Re[27]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:21
Оценка:
Здравствуйте, The Lex, Вы писали:

DDI>>кроме этой задачи есть и без рекурсий

DDI>>примитивный конечный автомат — её даю совсем слабым студентам для того что бы через год можно было оценить прогресс

TL>Каким таким "студентам"?


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

я не настаиваю даю попроще

конечный автомат — это только название страшное а решения один цикл и один if внутри цикла

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

само решение простое вовсе 8-9 строчек а условие довольно сложное студенты вот его не понимают

задач хватает — иногда даю на выбор
Re[26]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 15:24
Оценка:
Здравствуйте, 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>нужно через год если будет прогресс все отлично — его берут


или "таки получает свой зачОт" (к)
Голь на выдумку хитра, однако...
Re[29]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 15:25
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

TL>>Я хотел сказать, что очевидно стало, что ты даешь задачи, которых в практической работе у тебя на самом деле нет. Хорошо это или плохо? Т.е. вот я — кандидат. Я пришел, увидел, и понял (ну или для себя решил): "он дает задачи не из тех которые предстоит решать в работе" — точнее "совсем не из тех".


DDI>твое право отказаться силой тебя никто не заставляет работать


Ты на меня рельсы не переводи — ты лично мне (и другим читающим это кандидатам) что посоветуешь в такой ситуации?
Голь на выдумку хитра, однако...
Re[27]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.11.07 15:34
Оценка: 19 (3)
Здравствуйте, 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>>
AVK Blog
Re[27]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:34
Оценка:
Здравствуйте, The Lex, Вы писали:

DDI>>код должен быть понят кандидатом

DDI>>многие ихз нерешивших буквально не верят что решение существует

TL> Вот я и говорю: у тебя нет задачи "научить кандидата" (или ты таки имеешь в виду студентов!?) — у тебя есть задача "заполнить вакансию" — задачу "посмотреть людей и поискать которые может пригодятся" я не рассматриваю в виду непрактичности конечной цели.


задачи много не только заполнить вакансию

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


TL> Слушай... так ты препод! Только без обид! Ну ты бы сразу так и сказал!


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

DDI>>процесс не я инициировал

DDI>>задача — очень удобно рассматривать кандидата со всех сторон

TL> Зачем!? Жил бы ты в Штатах — еще и получил бы "втык" за "херассмент" (или как там его?)


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


DDI>>я уже объяснил — что бы у кандидата не было никаких сомнений что я спрашивал простой вопрос

DDI>>это для того что бы он спокойно прислал резюме через год

TL> Ты точно в Штатах живешь: ну кто станет каждый год резюме слать? Кроме студентов и студентов на пересдаче...


каждый год шлют резюме студенты и молодые специалисты

DDI>>нужно через год если будет прогресс все отлично — его берут


TL> или "таки получает свой зачОт" (к)


я не ставлю себя выше кандидата
у многих на собеседовании можно многому научиться
Re[20]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 15:47
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>я смог прочесть и твой код и его запросто, при чем в коде aerobus нашел к чему придраться

DDI>а вот код avk я не понял


if (ты имеешь виду придирку к "&& true")
{
   то я спокоен (это просто прогнал я в спешке)
}
else
{
   укажи где
}

Re[30]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:51
Оценка:
Здравствуйте, The Lex, Вы писали:

DDI>>твое право отказаться силой тебя никто не заставляет работать


TL> Ты на меня рельсы не переводи — ты лично мне (и другим читающим это кандидатам) что посоветуешь в такой ситуации?


я только про себя могу сказать

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

люди проявляют себя четко именно в пограничных ситуациях ничего не могу с этим поделать не я это придумал
Re[21]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:52
Оценка:
Здравствуйте, aerobus, Вы писали:

A>
A>if (ты имеешь виду придирку к "&& true")
A>{
A>   то я спокоен (это просто прогнал я в спешке)
A>}
A>else
A>{
A>   укажи где
A>}
A>

A>

&& true
Re[28]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 15:55
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>>>Программа на языке C#, осуществляющая проверку строки на симметричность рекурсивным образом.


DDI>>а какая версия C# ?


AVK>3.0. Но на 2.0 можно то же самое сделать, только писанины больше.


спасибо
Re[31]: C# - как проводить собеседование ?
От: The Lex Украина  
Дата: 05.11.07 15:56
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>>>твое право отказаться силой тебя никто не заставляет работать


TL>> Ты на меня рельсы не переводи — ты лично мне (и другим читающим это кандидатам) что посоветуешь в такой ситуации?


DDI>я только про себя могу сказать


DDI>дал задачу неудобную — она должна быть простая — я не хочу тебя завалить , просто отнесись к этому как к микрозаданию, неприятному но вынужденному


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


1. Плохо, что ты (как потенциальный работодатель и начальник) не можешь ответить прямо, а "философствуешь": в реальной работе это сильно непрактично и сильно демотивирует работника и подчиненного. имхо.

2. Плохо, что упор делается сразу же на "именно в пограничных ситуациях": возникает подозрение что "именно в пограничных ситуациях" происходит ваша обычная работа, а работать в таких условиях далеко не каждый захочет. имхо.

3. В качестве "хорошего" добавлю классическое: что русскому хорошо, то немцу — смерть. (к) Так что — "каждому свое"... Но я бы работать у такого работодателя поостерегся. имхо.
Голь на выдумку хитра, однако...
Re[25]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.11.07 16:02
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


В Lines когда нибудь играл? Вот алгоритм, который находит путь для перемещаемого шарика или детектирует его отсутствие (называется алгоритм Ли) — прекрасная задачка.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[19]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 16:11
Оценка: 1 (1)
Здравствуйте, BulatZiganshin, Вы писали:

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


BZ>>>а логическими операторами почему не пользуешься?


A>>Ну на мой взгляд так данный код немножко лучше читается и его легче развернуть в if-then-else и на бумаге и в голове.


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


Мне жаль что вы знаете только логический подход к решению задач.
Вы сейчас обвинили меня и наверное многих других в том, что программируя на императивном языке они мыслят императивно Смешно.
Вы также косвенно посоветовали работодателям, набирающим на работу трактористов, требовать от них умения управлять мопедом, боингом, но не трактором. Странно. Логичней ведь уметь управлять трактором и как бонус уметь управлять мопедом и боингом.
Если вы пишете на C# и так недовольны императивным подходом к решению задач, то ой. Пишите тогда на Прологе — там вашему логическому мышлению найдется где разгуляться.
Так что подумайте еще раз логически над вашей критикой.
Re[32]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 16:20
Оценка:
Здравствуйте, The Lex, Вы писали:

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


TL>1. Плохо, что ты (как потенциальный работодатель и начальник) не можешь ответить прямо, а "философствуешь": в реальной работе это сильно непрактично и сильно демотивирует работника и подчиненного. имхо.


это не философия а психология

подход к интервью — не стрессовое, но нагрузкой

на стрессовых примерно так

- ты написал плохой код, ты это хотя бы осознаешь это ?
— ???
— ну вот это, это и это четко говорит о твоем уровне ! ты даже ООП не знаешь а утверждаешь что с паттернами знаком


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

правда побочный эффект — много толковых спецов собеседование такое не пройдет

боюсь от такого подхода через год-два кандидатов у фирмы убавится люди ведь не дураки
Re[20]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 16:33
Оценка:
Здравствуйте, aerobus, Вы писали:

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


A>Мне жаль что вы знаете только логический подход к решению задач.

A>Вы сейчас обвинили меня и наверное многих других в том, что программируя на императивном языке они мыслят императивно Смешно.

не лезь в бутылку, просто осознай как ты идёшь к решению такой задачи. сначала формулируешь в уме логичсекие условия (которые a выше сформулировал), а затем начинаешь утаптывать их в неочевидное императивное решение. зачем? ты ведь уже не на ассемблере пишешь, и язык предоставляет тебе средства для формулировки логических условий

и не покупайся на слова. пролог — это унификация и бектрекинг, а не логические операции
Люди, я люблю вас! Будьте бдительны!!!
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 16:44
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Dan Dare III, Вы писали:


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


AVK>В Lines когда нибудь играл? Вот алгоритм, который находит путь для перемещаемого шарика или детектирует его отсутствие (называется алгоритм Ли) — прекрасная задачка.


алгоритм ли нерекуррентный по другому это волновой алгоритм

решается многими путями в том числе и итерационными

можно решать и рекурсией но тогда это будет не волновой — это другой, похожий алгоритм для трассировки

идею я вобщем понял — это олимпиадная задача для 10го класса раньше была, сейчас она хрестоматийная но на собеседовании можно попробовать
Re[21]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 16:53
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>не лезь в бутылку, просто осознай как ты идёшь к решению такой задачи. сначала формулируешь в уме логичсекие условия (которые a выше сформулировал), а затем начинаешь утаптывать их в неочевидное императивное решение. зачем? ты ведь уже не на ассемблере пишешь, и язык предоставляет тебе средства для формулировки логических условий


чего вы ссоритесь у вас код примерно одинаково читается
Re[24]: C# - как проводить собеседование ?
От: Кэр  
Дата: 05.11.07 16:54
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Ромашка, Вы писали:


Р>>Мож на рекурсию подобрать другой пример? Ну, такой, чтобы она там была

Р>>действительно нужна? Ну или хотя-бы не тормозила жутко?

AVK>Точно, надо так

AVK>
AVK>static void Main(string[] args)
AVK>{
AVK>    Func<Func<int, char>, int, int, bool> isSymmChars = null;
AVK>    isSymmChars = (c, h, t) => t - h < 2 || (c(h) == c(t) && isSymmChars(c, h + 1, t - 1));
AVK>    Func<Func<string>, bool> isSymmStr = (s) => isSymmChars(p => s()[p], 0, s().Length - 1);

AVK>    Console.WriteLine(isSymmStr(() => "12345654321"));
AVK>    Console.Read();
AVK>}
AVK>


Черт побери, выглядит мощно
Но вот только мне одному так кажется или программа на C# все больше начинает напоминать чириканье наподобие регулярных выражений? Я код прочитал совсем не с первого взгляда.
Re[25]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 05.11.07 16:55
Оценка:
Здравствуйте, Кэр, Вы писали:

Кэр>Черт побери, выглядит мощно

Кэр>Но вот только мне одному так кажется или программа на C# все больше начинает напоминать чириканье наподобие регулярных выражений? Я код прочитал совсем не с первого взгляда.

а почему ты не спросил на счет текстовых символов ?
Re[21]: C# - как проводить собеседование ?
От: aerobus  
Дата: 05.11.07 17:19
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

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


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


A>>Мне жаль что вы знаете только логический подход к решению задач.

A>>Вы сейчас обвинили меня и наверное многих других в том, что программируя на императивном языке они мыслят императивно Смешно.

BZ>не лезь в бутылку, просто осознай как ты идёшь к решению такой задачи. сначала формулируешь в уме логичсекие условия (которые a выше сформулировал), а затем начинаешь утаптывать их в неочевидное императивное решение. зачем? ты ведь уже не на ассемблере пишешь, и язык предоставляет тебе средства для формулировки логических условий


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

BZ>и не покупайся на слова. пролог — это унификация и бектрекинг, а не логические операции


это унификация, бектрекинг И логические операции. Но не надо о прологе — не в нем дело

салат = огурцы + помидоры + салат
Re[27]: C# - как проводить собеседование ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 05.11.07 17:31
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>решается многими путями в том числе и итерационными


Но рекурсией намного проще.
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
AVK Blog
Re[21]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 05.11.07 17:36
Оценка: 5 (1) +1
Здравствуйте, 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 строчек рассказли.

Кстати у вас еще две попытки есть
Re[22]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 05.11.07 17:45
Оценка:
Здравствуйте, aerobus, Вы писали:

BZ>>и не покупайся на слова. пролог — это унификация и бектрекинг, а не логические операции


A>это унификация, бектрекинг И логические операции. Но не надо о прологе — не в нем дело


а ооп — это классы, функции и логические операции?
Люди, я люблю вас! Будьте бдительны!!!
Re[13]: C# - как проводить собеседование ?
От: Konstantin.Nizhegorodov Россия  
Дата: 05.11.07 17:53
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>спросил про метод Remove.


DDI>
DDI>string s = "строка символов";
DDI>s.Remove(6,9);
DDI>Console.Write(s);
DDI>


DDI>Услышал ответ "строка символов", поправлять не стал


А парень был абсолютно прав, а Вы заблуждались.
Re[8]: C# - как проводить собеседование ?
От: De-Bill  
Дата: 06.11.07 03:18
Оценка: 9 (1)
Dog>Всё правильно. Только вы перепутали топики. Здесь идёт речь о собеседовании. У вас есть два выбора или гордо послать всех на (...) или открыть Рихтера и прочитать 20 страничек за чаем. Это не Маринина, думаю вам даже будет интересно и мне кажется вам не составит ни какого труда во всём этом разобраться, там более вы с этим сталкивались.

На самом деле, я читал Рихтера, и даже разбирался во всём этом, только вот сейчас вспомнить сходу ничего не смогу. Но если, вдруг, мне это понадобится, то всмопню за 20 минут. Кстати, кроме Рихтера я ещё много чего читал. Даже основы операционных систем Таненбаума и даже изучал исходники ядра MINIX. Но так как это мне в работе не нужно, то я ничего уже не помню.

Dog>... но похоже вы избираете более лёгкий путь


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

Dog>Вы этим гордитесь ?


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

Dog>зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно.


Допустим, в городе N есть 100 программистов на .NET, которые готовы сменить работу. Из них 95 не работали с unmanaged ресурсами и не помнят подробности работы GC. У нас есть два варианта:
а. Попытаться нанять оставшихся 5.
b. Нанять лучших из 100 и заставить в первый же рабочий день изучить работу с unmanaged ресурсами и GC.

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

Dog>зы. Вы кажется забываете что не только у вас есть право посылать на (...), но так же и у работодателя


Да, есть. Только вот почему-то ни один работодатель пока не воспользовался этим правом...
Re[26]: C# - как проводить собеседование ?
От: Кэр  
Дата: 06.11.07 04:33
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

Кэр>>Черт побери, выглядит мощно

Кэр>>Но вот только мне одному так кажется или программа на C# все больше начинает напоминать чириканье наподобие регулярных выражений? Я код прочитал совсем не с первого взгляда.

DDI>а почему ты не спросил на счет текстовых символов ?


Потому что это могли прочитать уже и в других ветках. А в отличие от других неверных решений — данное хотя бы выглядит очень необычно
Re[9]: ПЕВ - Getting Things Done (D. Allen)
От: Она На Нас Ий Россия  
Дата: 06.11.07 05:20
Оценка:
Здравствуйте, De-Bill, Вы писали:
DB>Нет, не более лёгкий путь. Просто сейчас моя оперативная память до отказа забита финасами, математикой, статистикой, формулами. Для GC там места нет, да и не нужен он мне в данный момент.
В подтверждение, рекомендую всем почитать
David Allen. Getting Things Done

Основная мысль — не держать в голове (в оперативной памяти) и вокруг себя того,
что Вам не надо в данный момент
Re[33]: C# - как проводить собеседование ?
От: Dog  
Дата: 06.11.07 05:38
Оценка:
DDI>>>люди проявляют себя четко именно в пограничных ситуациях ничего не могу с этим поделать не я это придумал
TL>>1. Плохо, что ты (как потенциальный работодатель и начальник) не можешь ответить прямо, а "философствуешь": в реальной работе это сильно непрактично и сильно демотивирует работника и подчиненного. имхо.
DDI>это не философия а психология
И где вы такой психологии набрались только ?

DDI>подход к интервью — не стрессовое, но нагрузкой



DDI>на стрессовых примерно так

Это не стрессовое, это хамское.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[9]: C# - как проводить собеседование ?
От: Dog  
Дата: 06.11.07 05:38
Оценка:
DB>На самом деле, я читал Рихтера, и даже разбирался во всём этом, только вот сейчас вспомнить сходу ничего не смогу. Но если, вдруг, мне это понадобится, то всмопню за 20 минут. Кстати, кроме Рихтера я ещё много чего читал. Даже основы операционных систем Таненбаума и даже изучал исходники ядра MINIX. Но так как это мне в работе не нужно, то я ничего уже не помню.
Ну так вы там сначала решите у себя в голове с чем вы можете разобраться и что можете вспомнить, а после пишите.
То что глупо держать в голове всё это и так понятно. А то что вы использовали базовые вещи и потом "забыли", так это лично ваши проблемы. Я вот использовал и не забыл.

Dog>>... но похоже вы избираете более лёгкий путь

DB>Нет, не более лёгкий путь. Просто сейчас моя оперативная память до отказа забита финасами, математикой, статистикой, формулами. Для GC там места нет, да и не нужен он мне в данный момент.
Вы в данный момент ищите работу ?

Dog>>зы. Автор топика, безвременно нас покинувший , ищет специалиста в WinForms. А там зачастую, при написании собственных контролов, идёт работа с unmanaged ресурсами. И знание работы GC и модели освобождения ресурсов просто обязательно.

DB>Допустим, в городе N есть 100 программистов на .NET, которые готовы сменить работу. Из них 95 не работали с unmanaged ресурсами и не помнят подробности работы GC. У нас есть два варианта:
DB>а. Попытаться нанять оставшихся 5.
DB>b. Нанять лучших из 100 и заставить в первый же рабочий день изучить работу с unmanaged ресурсами и GC.
Вы себя к каким отностите ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[28]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 08:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

DDI>>решается многими путями в том числе и итерационными


AVK>Но рекурсией намного проще.


волновой он не решается рекурсией
рекурсия — это самй простой алгоритм нахождения пути, при этом путь может быть сколь угодно неэффективным
с волновым будет самый эффективный
Re[22]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 08:29
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>[Не думал что буду писать по-удаффски, но сдержаться не могу]

G>АФФТАР, убей себя аб стену!
G>Этот код в случае симметричной строки работает в 100 раз медленее варианта с Array.Reverse!!!!!!!

я знаю это много лет

DDI>>можно, я не люблю трудночитаемый неэффективный код

G>Этот код гораздо читаемее вариантов в 3 строчки?

варианты в три строчки многие не понимают
сначала я показывал компактный код как у Булата
потом я развернул его
потом дописал комментарии
сейчас проблем нет

G>Нет уж, не надо. У меня есть работа, и на собеседовании никто не заставлял меня на бумаге писать рекурсию (кстати очень тяжелое занятие, потому что на бумаге пошаговая отладка не работает)


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

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

G>Мне о вас очень много эти 13 строчек рассказли.
G>Кстати у вас еще две попытки есть

твое сообщение больше о тебе говорит
обо мне ты ничего не сказал
Re[14]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 08:33
Оценка:
Здравствуйте, Konstantin.Nizhegorodov, Вы писали:

DDI>>
DDI>>string s = "строка символов";
DDI>>s.Remove(6,9);
DDI>>Console.Write(s);
DDI>>


DDI>>Услышал ответ "строка символов", поправлять не стал


KN>А парень был абсолютно прав, а Вы заблуждались.


это мой прокол копипаст
я во время собеседования все фиксирую на бумаге — он ответил "строка"
еще был наводящий вопрос про s[0] = '0'; и результат "0трока"
Re[9]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 08:36
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>На самом деле, я читал Рихтера, и даже разбирался во всём этом, только вот сейчас вспомнить сходу ничего не смогу. Но если, вдруг, мне это понадобится, то всмопню за 20 минут. Кстати, кроме Рихтера я ещё много чего читал. Даже основы операционных систем Таненбаума и даже изучал исходники ядра MINIX. Но так как это мне в работе не нужно, то я ничего уже не помню.


если ты читал хоть пять лет назад то вспомнишь легко наводящие вопросы они для того и задаются что бы дать время вспомнить если есть чего вспоминать

DB>Нет, не горжусь. Глупо гордиться незнанием. Но и комплексовать по этому поводу не собираюсь.

+1

DB>Допустим, в городе N есть 100 программистов на .NET, которые готовы сменить работу. Из них 95 не работали с unmanaged ресурсами и не помнят подробности работы GC. У нас есть два варианта:

DB>а. Попытаться нанять оставшихся 5.
DB>b. Нанять лучших из 100 и заставить в первый же рабочий день изучить работу с unmanaged ресурсами и GC.

unmanaged это только один из вопросов
4 плюса из 12 возможных это совсем мало
Re[34]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 08:49
Оценка:
Здравствуйте, Dog, Вы писали:

DDI>>на стрессовых примерно так

Dog>Это не стрессовое, это хамское.

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

Dog>То что глупо держать в голове всё это и так понятно. А то что вы использовали базовые вещи и потом "забыли", так это лично ваши проблемы. Я вот использовал и не забыл.


значит ты забыл чтото другое
Re[23]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.07 09:15
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


G>>[Не думал что буду писать по-удаффски, но сдержаться не могу]

G>>АФФТАР, убей себя аб стену!
G>>Этот код в случае симметричной строки работает в 100 раз медленее варианта с Array.Reverse!!!!!!!

DDI>я знаю это много лет

Так от кандидата требовалось выдать такой ответ? Если нет, зачем вы его пишете здесь?
Если код — говно, зачем оптимизацию туда включать?

DDI>>>можно, я не люблю трудночитаемый неэффективный код

G>>Этот код гораздо читаемее вариантов в 3 строчки?

DDI>варианты в три строчки многие не понимают

Ну да, зато все рекурсию понимают...

DDI>код пишется в голове а в студии или бумаге он фиксируется,

DDI>да бумага неудобна но думать можно и без бумаги вовсе и даже без студии
DDI>если кандидат пишет код дебуггером это уровень ниже требуемого
Вы в какой реальности живете? Заставьте своих программистов писать код в Notepad, а компилировать с помощью csc и не пользоваться отладчиком. Посмотрите во сколько (тысяч) раз упадет производительность.


Вы лет 10-15 назад информатику в вузе не преподавали?
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 11:14
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

DDI>>я знаю это много лет

G>Так от кандидата требовалось выдать такой ответ? Если нет, зачем вы его пишете здесь?

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

G>Если код — говно, зачем оптимизацию туда включать?


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

DDI>>варианты в три строчки многие не понимают

G>Ну да, зато все рекурсию понимают...

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

DDI>>если кандидат пишет код дебуггером это уровень ниже требуемого

G>Вы в какой реальности живете? Заставьте своих программистов писать код в Notepad, а компилировать с помощью csc и не пользоваться отладчиком. Посмотрите во сколько (тысяч) раз упадет производительность.

уровень программиста обратно пропорционален количеству запусков дебуггера в том числе и на коде в 3 строки
показатель такой
если кандидату на 3 примитивных строки нужен дебуггер — он нам не подходит
Re[25]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 06.11.07 14:34
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>рекурсию нужно уметь и понимать в нашей области

DDI>приведи пример хорошей не избитой задачи буду благодарен
DDI>решение — до 15 строчек со скобками

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

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

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

Если рекурсия так важна в вашей работе, то возьмите какую-либо задачу, решаемую только рекурсией, упростите так чтобы влезала в 15-20 строк.
Re[16]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 06.11.07 15:24
Оценка: +1
Здравствуйте, Dog, Вы писали:

E>>>Хорошим манерам типа использования StringBuilder, String.Format (если строка с параметрами) s.Length = 0 вместо s == String.Empty научены почти все шарписты.

R>>s.Length недоступна для записи. И присвоить ему 0 никак нельзя. (Разве что вы имели ввиду StringBuilder)

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

Dog>Имхо, это всё реализация... ошибки на уровне дизайна стоя граздо больше...
Re[25]: C# - как проводить собеседование ?
От: Konstantin.Nizhegorodov Россия  
Дата: 06.11.07 15:34
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


Я, обычно, решение "ханойских башень" спрашиваю. Классика с коротким кодом.
Re[15]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 06.11.07 15:59
Оценка: :)
Здравствуйте, 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 это повод рекомендовать на прием


ну что ж, пожелаем ему удачи. и чтоб не икалось, а то все кости бедолаге перемыли.
Re[35]: C# - как проводить собеседование ?
От: Dog  
Дата: 06.11.07 16:56
Оценка:
DDI>>>на стрессовых примерно так
Dog>>Это не стрессовое, это хамское.
DDI>много компаний использует именно такой подход
DDI>узнавай про собеседования там куда хочешь идти
Вроде как сейчас работников не хватает, а не работы. Зачем себя сознательно ограничивать вресурсах ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[11]: C# - как проводить собеседование ?
От: Dog  
Дата: 06.11.07 16:56
Оценка:
Dog>>То что глупо держать в голове всё это и так понятно. А то что вы использовали базовые вещи и потом "забыли", так это лично ваши проблемы. Я вот использовал и не забыл.
DDI>значит ты забыл чтото другое
Я уже писал. За пару собеседований основные вещи языка и платформы быстро вспоминаются, если конечно у вас есть желание получить работу
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[23]: C# - как проводить собеседование ?
От: Dog  
Дата: 06.11.07 16:56
Оценка:
Не могу удержаться снова.

G>>Нет уж, не надо. У меня есть работа, и на собеседовании никто не заставлял меня на бумаге писать рекурсию (кстати очень тяжелое занятие, потому что на бумаге пошаговая отладка не работает)

DDI>код пишется в голове а в студии или бумаге он фиксируется,
Неверно

DDI>да бумага неудобна но думать можно и без бумаги вовсе и даже без студии

Неверно

DDI>если кандидат пишет код дебуггером это уровень ниже требуемого

Неверно

Это лишь ваше представлениие о написании кода.

Всё что, для меня, будет написано через (_._) будет проверятся дебагером, а ещё лучше тестами. Пусть даже там 3 строчки. А проявление "преждевременной оптимизации" и есть — через (_._)
зы. Я ничего не имею против этой задачи на собеседовании. Вполне нормальная для проверки понимания рекурсии.
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[24]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 06.11.07 22:28
Оценка:
Здравствуйте, Dog, Вы писали:

DDI>>код пишется в голове а в студии или бумаге он фиксируется,

Dog>Неверно
Dog>Неверно
Dog>Неверно
Dog>Это лишь ваше представлениие о написании кода.

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

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


если не ты писал код — это нормально

если написано без ошибок и без лишних трат времени то это алгоритм
если с ошибками или/и лишними тратами времени это преждевременная оптимизация
все вместе это уровень разработчика

Dog>зы. Я ничего не имею против этой задачи на собеседовании. Вполне нормальная для проверки понимания рекурсии.


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

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


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


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

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

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


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

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

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

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


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


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

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


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

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


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

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


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

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

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

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

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


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

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


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



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


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


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



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


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



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

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


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



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


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

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

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


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

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

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


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


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

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


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

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


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

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


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

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


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

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


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

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

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

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

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

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


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

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


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


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


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

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


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


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

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

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

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


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

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

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

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

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

>

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

>

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

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

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

>

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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


AS>

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

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

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

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

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

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

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

DDI>13 строчек


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

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

DDI>            int length = s.Length;

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

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

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

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

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

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


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

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


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

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


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

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


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

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

в интернете я искать умею отлично — многое пробую но не много подходит под требования выше
Re[26]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 08.11.07 12:45
Оценка:
Здравствуйте, Dog, Вы писали:

Dog>Гораздо эффективнее создать кандидату номальную, спокойную, дружественную обстановку, что бы он мог расслабится и отвечать своими словами. Написание программ на бумажке с "тремя жизнями" на нормальные условия ни как не тянет.


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

далеко не все кандидаты такие

Dog>Проведение "стрессового" собеседования может практиковаться начальником или кадровиком. Ведь это именно их работа оценивать психологическое состояние кандидата, а не ваша.


это общие слова для чего ты их привел ?

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

DDI>>если с ошибками или/и лишними тратами времени это преждевременная оптимизация
Dog>Уууу... Преждевременная оптимизация это и есть написание как раз вот таких алгоритмических "велосипедов", что и ведёт к усложнению кода, потерям времени, возникновению ошибок и т.д. про отладку и поддержку вообще молчу.

ты говоришь общие фразы известные даже студентам

результат есть потраченое время и количество рабочего кода он и определяет твой уровень
Re[27]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 08.11.07 14:50
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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

Да ну. Вы кнута не читали? Перестановки — одна из важнейших частей математики.
Что-то ваши понятия о необходимых знаниях расходятся с реальной жизнью.

Тем более про перестановку можно очень быстро объяснить.

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

Я перечитал — не заметил других ЗАДАЧ (а не вопросов на зание языка или платформы)

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

99% таких задач можно будет решить без рекурсии. Требовать решение с рекурсией ради рекурсии — глупость.

ЗЫ. Повоторяю вопрос, чем же вы таким занимаетесь что рекурсия настолько необходима, но нет примеров реальных задач?
Re[27]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 08.11.07 16:25
Оценка:
DDI>а как быть с теми кто комбинаторики не знает это ведь невостребованая часть математики

Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120. Всего лишь 120 против 1000, которые были бы если бы три клавиши нажимались последовательно. Затем, когда изучали теорию вероятности, проверил через факториалы — действительно 120.

Сие сакральное знание приходилсь однажды даже применять на практике (зная, что комбинаций всего 120 и поэтому не отчаиваясь заранее их перебрать, удалось попасть в подъезд с кодом. Мобил в то время еще не было, так что не удивляйтесь, что просто не позвонил хозяину).
Re[28]: C# - как проводить собеседование ?
От: BulatZiganshin  
Дата: 08.11.07 18:53
Оценка:
Здравствуйте, egaron, Вы писали:

E>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.


а не 10*9*8?
Люди, я люблю вас! Будьте бдительны!!!
Re[29]: C# - как проводить собеседование ?
От: Eugeny__ Украина  
Дата: 08.11.07 20:54
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

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


E>>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.


BZ>а не 10*9*8?


Это как же?

В таких замках ведь 123==321==231==132==312==213. Цыфирки-то одновременно жмутся. Кстати, это было сказано в исходном посте(про ПОСЛЕДОВАТЕЛЬНОЕ нажатие кнпочек и кардинально увеличенное от этого количество вариантов).
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[28]: C# - как проводить собеседование ?
От: Ravlyk Австралия http://stitcharteasy.com
Дата: 08.11.07 20:55
Оценка:
Здравствуйте, Vzhyk, Вы писали:

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

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

Поддерживаю.
Мне на одном собеседовании дали задачу написать мини-рефлектор (правда на дом) — вот это действительно интересная задача. В этой конторе я потом некоторое время работал, и задача та была из реальной практики проектов.
Также давали задачу на написание числа словами — решается на месте за полтора часа с дебагом и отладкой.
Есть еще куча интересных задач (больших и маленьких), которые можно использовать на собеседованиях.

А вот то что тут обсуждают, можно спросить усно на понимание способа решения и потратить пол минуты вместо 10.

P.S. Задача на рекурсию: подобрать минимальное количество монеток для получения заданной суммы. (Правда рекурсивное/итеративное решение не всегда является оптимальным, но об этом можно спросить для продвижения кандидата на следующий уровень ).
Re[28]: C# - как проводить собеседование ?
От: Dog  
Дата: 08.11.07 23:43
Оценка: 1 (1)
E>Сие сакральное знание приходилсь однажды даже применять на практике (зная, что комбинаций всего 120 и поэтому не отчаиваясь заранее их перебрать, удалось попасть в подъезд с кодом. Мобил в то время еще не было, так что не удивляйтесь, что просто не позвонил хозяину).
Вот чем математик отличается от нормального человека. Нормальный бы просто внимательно посмотрел на замок и нажал три самые потёртые клавиши (проверено на практике неоднократно)
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[28]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 08.11.07 23:53
Оценка:
Здравствуйте, gandjustas, Вы писали:

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

G>Да ну. Вы кнута не читали? Перестановки — одна из важнейших частей математики.
G>Что-то ваши понятия о необходимых знаниях расходятся с реальной жизнью.

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

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

G>Я перечитал — не заметил других ЗАДАЧ (а не вопросов на зание языка или платформы)

ты плохо читал

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

G>99% таких задач можно будет решить без рекурсии. Требовать решение с рекурсией ради рекурсии — глупость.

можно, я знаю это

есть задачи и без рекурсии, приводил примеры

G>ЗЫ. Повоторяю вопрос, чем же вы таким занимаетесь что рекурсия настолько необходима, но нет примеров реальных задач?


реальный пример на 15 строчек кода максимум что бы условие было понятно всем это очень сложно

ты вот не смог ничего предложить нормального
Re[28]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:07
Оценка:
Здравствуйте, gandjustas, Вы писали:

DDI>>таких полно среди студентов и выпускников а они самые ценные кандидаты

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

ты говоришь о том что лично тебе удобно

деревья давал, не получил ни одного правильного решения и перестал давать

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

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

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

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


теоретически да а на практике собеседование это не только задача

я не преследую цель "определить брать или не брать"

брать или не брать меня вообще не интересует по большому счету

G>Вам всетаки кодер нужен или кто?


этот вопрос ты задал уже в самом конце и меня это веселит

в данный момент мы готовы брать даже студентов на кодерские должности

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

V>А зачем. Есть много фирм, на которых я работать буду, только если

V>заплатят раз в 10 больше, чем имею сейчас. Еси им нравиться тратить
V>время на подобное, это их проблемы. В такой фирме я все одно не смогу
V>работать.

я не понял зачем ты тогда на собеседования ходишь

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

этого я не понял

>> если тебя куда то не пригласили на собеседование

>> — если ты проходил и по направлению и по ЗП и по должности это оно и есть
V>Не было такого.

значит ты с этим не сталкивался
Re[28]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:14
Оценка:
Здравствуйте, Dog, Вы писали:

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

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

я не понял чего ты хотел этим сказать
Re[18]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:23
Оценка:
Здравствуйте, Eugeny__, Вы писали:

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

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

E__>Можно узнать, что в этой задаче такого, что будет рассказывать о человеке?


эта задача ничем не лучше и не хуже тех что я даю на собеседовании
Re[22]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:30
Оценка:
Здравствуйте, 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__>Вобщем, я бы в страшном сне не написал ТАК проверку на симметричность.


я не заставляю это делать
Re[23]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:35
Оценка:
Здравствуйте, Dog, Вы писали:

E__>>2. Если нужна таки скорость — рекурсия и сабстринг сожрут всю оптимизацию. То есть, само задание не предполагает, что нужна скорость.

Dog>Нужно ни то и ни другое. Нужно посмотреть понимает ли человек рекурсию и посмотреть как он думает. Всё.

+ может ли он хоть немного абстрагироваться от обычных шаблонов

+ задача это микрозадание — как он относится к заданиям вообще

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


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


E>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120. Всего лишь 120 против 1000, которые были бы если бы три клавиши нажимались последовательно. Затем, когда изучали теорию вероятности, проверил через факториалы — действительно 120.


итого комбинаторика понадобилась тебе раза три за всю жизнь и ни разу по работе
Re[29]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:38
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

E>>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.


BZ>а не 10*9*8?


вот так с этой комбинаторикой — сколько кандидатов столько и мнений

а с рекурсией 80% мнений совпадают
Re[29]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:42
Оценка:
Здравствуйте, Ravlyk, Вы писали:

R>Поддерживаю.

R>Мне на одном собеседовании дали задачу написать мини-рефлектор (правда на дом) — вот это действительно интересная задача. В этой конторе я потом некоторое время работал, и задача та была из реальной практики проектов.
R>Также давали задачу на написание числа словами — решается на месте за полтора часа с дебагом и отладкой.
R>Есть еще куча интересных задач (больших и маленьких), которые можно использовать на собеседованиях.

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

R>P.S. Задача на рекурсию: подобрать минимальное количество монеток для получения заданной суммы. (Правда рекурсивное/итеративное решение не всегда является оптимальным, но об этом можно спросить для продвижения кандидата на следующий уровень ).


хорошая задача
Re[29]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 00:43
Оценка: :)
Здравствуйте, Dog, Вы писали:

Dog>Вот чем математик отличается от нормального человека. Нормальный бы просто внимательно посмотрел на замок и нажал три самые потёртые клавиши (проверено на практике неоднократно)


вот обоснование почему комбинаторика невостребована
Re[29]: C# - как проводить собеседование ?
От: Dog  
Дата: 09.11.07 03:08
Оценка:
DDI>>>умения алгоритмы придумывать
DDI>>>умения алгоритмы реализовывать
Dog>>Ага, вот самые страшные на проекте именно такие "ценные кандидаты" придумыватели и реализовыватели.
DDI>я не понял чего ты хотел этим сказать
Неужели вы не контролируете код своих студентов ?
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[24]: C# - как проводить собеседование ?
От: Dog  
Дата: 09.11.07 03:08
Оценка:
DDI>по работе нужно делать не только что умеешь а также и то что должно быть сделано хотя бы это было неприятно
Ой, я деже боюсь представить чем вы там, сжимая зубы и остальные части тела, занимаетесь
... << RSDN@Home 1.2.0 alpha rev. 730>>
Re[30]: C# - как проводить собеседование ?
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 09.11.07 06:57
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

DDI>вот так с этой комбинаторикой — сколько кандидатов столько и мнений

Столько мнений у тех, кто комбинаторику не знают.
Вы похоже не знаете.

DDI>а с рекурсией 80% мнений совпадают

И все эти мнения — рекурсия во многих случаях не нужна.

Вообще стоит почитать хотябы первый том Кнута, чтобы рассуждать об алгортимических задачах и их решениях (там комбинаторика есть)
Re[29]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 09.11.07 08:48
Оценка:
Здравствуйте, Dog, Вы писали:

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

Dog>Вот чем математик отличается от нормального человека. Нормальный бы просто внимательно посмотрел на замок и нажал три самые потёртые клавиши (проверено на практике неоднократно)

Знаем мы такую тему . Но интересно же, а сколько их всего, комбинаций...


Что же до того случая.
В описываемом подъезде (о чудо!) потертость кнопок не была очевидна, ибо квратир там было всего несколько.
Но ... кнопки, подозреваемые в потертости, естественно, являлись первыми кандидатами на перебор. И , как выяснилось при открытии, только одна из имевших признаки потертости оказалась правильной, остальные две — ложными.

Еще была такая фишка, что кнопки (или код) в таких замках иногда меняли, чтобы сбить с толку любителей вычислять потертые. Но это уже к теме комбинаторики лишь косвенно относится.
Re[30]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 09.11.07 08:54
Оценка:
Здравствуйте, Dan Dare III, Вы писали:

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


E>>>Не скажите, прямо уж так и невостребованная. В детстве, в школе когда учился, как-то заинтересовало, сколько комбинаций у кодового замка с тремя одновременно нажимаемыми клавишами (были такие распространены в постсоветских подъездах, когда еще домофон был экзотикой, предохраняли эти девайсы разве что от залетных подъездных сыкунов). Комбинаторики тогда не знал, пришлось сосчитать самому перебором враиантов — насчитал 120.


BZ>>а не 10*9*8?


не-а, 10!(=кол-во клавиш)/(3!(=кол-во одновременно нажимаемых)* 7! (=количество НЕнажимаемых)) = 8*9*10 (это = 10!/7!) / 6 (это = 3!) = 720/6 = 120.
Re[29]: C# - как проводить собеседование ?
От: egaron http://127.0.0.1
Дата: 09.11.07 09:28
Оценка:
DDI>итого комбинаторика понадобилась тебе раза три за всю жизнь и ни разу по работе

Нет, она мне "надобилась" чаще , чем ГЦ в дотнете (тот не надобился ни разу). Пусть надобилась и не по работе.

Например — сосчитать, сколько рукопожатий необходимо, когда здороваются N человек , = N*(N-1)/2. После этого неволей бросишь дурную привычку здороваться со всеми подряд за руку.

Ну, еще в личной жизни, если так можно выразиться, пригождалась сия наука и оставила определенные воспоминания. Был я когда-то влбюлен в молоденькую училку по матстатистике, и поэтому отчаянно учил сей предмет, (проходили тогда как раз комбинаторику), дабы блеснуть и произвести на нее впечатление. Это щас понимаю, как все было наивно, и что выглядел я не более чем заученный ботан, а тогда ... наивная юность и восприятие другое. Затем училка как-то раз пришла на урок с маленькой дочкой — видать, не с кем было оставить, после этого я ходить на ее уроки перестал и получил на зачете только 4 балла.
Re[31]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 10:56
Оценка:
Здравствуйте, gandjustas, Вы писали:

DDI>>вот так с этой комбинаторикой — сколько кандидатов столько и мнений

G>Столько мнений у тех, кто комбинаторику не знают.
G>Вы похоже не знаете.

сколько раз за год ты её применял ?

DDI>>а с рекурсией 80% мнений совпадают

G>И все эти мнения — рекурсия во многих случаях не нужна.

80% решают простую рекурсию а комбинаторику только студенты математических специальностей

G>Вообще стоит почитать хотябы первый том Кнута, чтобы рассуждать об алгортимических задачах и их решениях (там комбинаторика есть)


предпочитаю "Алгоритмы. Построение и анализ" + еще кучку таких же толстых но по конкретной области
Re[30]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 11:11
Оценка:
Здравствуйте, Dog, Вы писали:

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

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

ты объясни ирония она не всегда понятна
Re[25]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 11:14
Оценка:
Здравствуйте, Dog, Вы писали:

DDI>>по работе нужно делать не только что умеешь а также и то что должно быть сделано хотя бы это было неприятно

Dog>Ой, я деже боюсь представить чем вы там, сжимая зубы и остальные части тела, занимаетесь

такие шутки-намёки больше тебя характеризуют
Re[30]: C# - как проводить собеседование ?
От: Dan Dare III  
Дата: 09.11.07 11:21
Оценка:
Здравствуйте, egaron, Вы писали:

E>Например — сосчитать, сколько рукопожатий необходимо, когда здороваются N человек , = N*(N-1)/2. После этого неволей бросишь дурную привычку здороваться со всеми подряд за руку.


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


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

для этого незачем задачу давать

если человек знает азы и чего спецального не знает в том числе комбинаторики то сможет освоить
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.