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>зы. Вы кажется забываете что не только у вас есть право посылать на (...), но так же и у работодателя


Да, есть. Только вот почему-то ни один работодатель пока не воспользовался этим правом...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.