Здравствуйте, зиг, Вы писали:
зиг>Здравствуйте, gandjustas, Вы писали:
H>>>>>>std::reverse(list.begin(), list.end()) .>>>>>Если в некой конторе будут ожидать такое решение, то лучше оттуда бежать, ибо требование знания наизусть функций стандартной библиотеки ни о чём хорошем не говорит.
H>>>>Это лучшее решение. В конторе где прогеры пишут реверс листа сами — очень многое говорит о неумении эффективно работать зиг>>>никто нигде не пишет реверс лист сам. зиг>>>это просто задача на интервью чтоб выявить тех кто не знает что такое список, как такое быстро и красиво закодить, и т.д.
G>>А зачем если в итоге такое все равно не пишут? зиг>чтобы проверить способность писать аналогичное.
Тебе приходится часто на работе писать "аналогичное"? Тогда скорее всего ты чем-то не тем занимаешься.
зиг>работа не состоит из набора простых шагов, часто бывает что нужно что-то нестандартное или нетривиальное сделать.
Именно что состоит. Причем большинство этих шагов уже есть в готовых либах и надо уметь склеить кучу готовых кусочков в таком порядке чтобы получить правильный результат.
Работа программиста уже лет 40 как чисто инженерная деятельность, научной и исследовательской работы в мейнстримовом программировании почти нет.
зиг>с тем же успехом можно было дать реальную задачу из жизни, но тогда пришлось бы потратить кучу времени на объяснение деталей предметной области, все это ни к чему — лучше давать такие абстрактные задачи, требующие минимум вводных данных, показывающие возможность кандидата думать и быстро писать хороший код
Нахрен никому предметная область не нужна. Как говорил Фейнман: Если вы — ученый ядерный физик и не можете за 5 минут объяснить ребенку чем занимаетесь — вы шарлатан.
Как почитаешь форум — у всех супер-мега уникальные проекты, а на деле еще надо поискать чем принципиально две программы друг от друга отличаются.
Re[3]: Задача на собеседовании - обращение списка.
Здравствуйте, b-3, Вы писали:
b-3>Здравствуйте, gandjustas, Вы писали:
G>>Потому что это задача не практическая, как и программирование сортировки. Все уже давно в либах есть и на практике никогда (в смысле вообще никогда) не приходится её писать. G>>А если человек не делает что-то постоянно, то просто теряется навык.
b-3>А что — практическая задача? Навернуть экран linq-гуана, который автор без супер-мега-профайлера оптимизировать вообще отказывается, в качестве подтверждения корректности предлагает два с половиной юнит-теста, которые не покрывают даже всех 5 особых ситуаций, зато с понтом используют NMock c динамикой — это практическая задача? А аккуратно подвигать итератором — не практическая? Кажется, я понимаю, почему топик-стартер держится от таких "практиков", валящихся на детских задачках, по возможности подальше... Я б тоже держался подальше
Да ты не переживай, топистартер тупо решил "блеснуть эрудицией", занимается он таким де linq-гуаном, как и 100500 других программистов.
И ты кстати тоже таким занимаешься, может в другой форме, но суть не меняется.
Re[10]: Задача на собеседовании - обращение списка.
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, msk78, Вы писали:
M>>Здравствуйте, Vzhyk, Вы писали:
V>>>24.02.2012 15:38, Паблик Морозов пишет:
>>>> кандидатов на публичных сайтах вакансий не ищем. V>>>В общем мы поняли, что не подходим друг другу. Чтобы сэкономить твое и V>>>свое время было бы хорошо, чтобы ты озвучил контору, куда мне не следует V>>>слать резюме. M>>Могу дать ответ на этот вопрос M>>Компания BrightConsult.
G>Там же CRM в основном. Причем тут разворот списков? Кто-то решил повыделываться?
Как говорил Фоменко, чем бы дитя не тешилось, лишь бы не руками.
Судя по изначальному сообщению ветки про БрайтКонсалт, там сначала давали тесты на IQ: http://rsdn.ru/forum/job/4260056.aspx
Здравствуйте, gandjustas, Вы писали:
G>Здравствуйте, зиг, Вы писали:
зиг>>Здравствуйте, gandjustas, Вы писали:
H>>>>>>>std::reverse(list.begin(), list.end()) .>>>>>>Если в некой конторе будут ожидать такое решение, то лучше оттуда бежать, ибо требование знания наизусть функций стандартной библиотеки ни о чём хорошем не говорит.
H>>>>>Это лучшее решение. В конторе где прогеры пишут реверс листа сами — очень многое говорит о неумении эффективно работать зиг>>>>никто нигде не пишет реверс лист сам. зиг>>>>это просто задача на интервью чтоб выявить тех кто не знает что такое список, как такое быстро и красиво закодить, и т.д.
G>>>А зачем если в итоге такое все равно не пишут? зиг>>чтобы проверить способность писать аналогичное. G>Тебе приходится часто на работе писать "аналогичное"? Тогда скорее всего ты чем-то не тем занимаешься.
да уж конечно. все занимаются чем-то не тем, и только один чувак все про всех знает чем им надо заниматься на работе.
зиг>>работа не состоит из набора простых шагов, часто бывает что нужно что-то нестандартное или нетривиальное сделать. G>Именно что состоит. Причем большинство этих шагов уже есть в готовых либах и надо уметь склеить кучу готовых кусочков в таком порядке чтобы получить правильный результат. G>Работа программиста уже лет 40 как чисто инженерная деятельность, научной и исследовательской работы в мейнстримовом программировании почти нет.
бугага. т.е. реверс списка это научная и исследовательская работа, поняли, так и запишем
зиг>>с тем же успехом можно было дать реальную задачу из жизни, но тогда пришлось бы потратить кучу времени на объяснение деталей предметной области, все это ни к чему — лучше давать такие абстрактные задачи, требующие минимум вводных данных, показывающие возможность кандидата думать и быстро писать хороший код G>Нахрен никому предметная область не нужна. Как говорил Фейнман: Если вы — ученый ядерный физик и не можете за 5 минут объяснить ребенку чем занимаетесь — вы шарлатан. G>Как почитаешь форум — у всех супер-мега уникальные проекты, а на деле еще надо поискать чем принципиально две программы друг от друга отличаются.
жду с нетерпением краткого описания _реальной_ задачи, чтоб все мгновенно было понятно что и как надо сделать, и чтобы у меня не возникало тысячи попутных вопросов по ходу дела (мы же на интервью? у нас только 5 минут, не забываем.).
Re[3]: Задача на собеседовании - обращение списка.
Паблик Морозов, а озвучьте плз бюджет.
"вроде конкурентноспособная" это мало о чем говорит.
Для некоторых и 40-50 тыс. для Москвы конкурентноспособная.
А вдруг после этого всё станет на свои места? (в плане понимания чего-то в этой жизни)
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Почему 9 из 10 соискателей не могут её решить? Причём у людей минимум от 3-х лет опыта разработки, позиционируют они себя, как сеньёр-девелоперы, ЗП вроде конкурентноспособная (немного выше, если отсортировать вакансии с HH по зарплате и пропустить жöлтенькие).
ПМ>Может быть я что-то не понимаю в этой жизни? <skipped>
Re[3]: Задача на собеседовании - обращение списка.
Здравствуйте, gandjustas, Вы писали:
ПМ>>Если подумать, может что получше напишу. Кстати, есть подозрение, что это сложнее обращения списка. G>Ну вот. Ты проверку не прошел. Код очень простой, даже проще чем разворот списков.
Это не "очень простой" код, это обычный говнокод, поскольку скопипащено правильно, да не под ту задачу... По каждому элементу массива (i++) вызывается rand(k), до тех пор, пока n элементов не будут найдены. Количество вызовов rand(k) таким образом в точности равно номеру последнего выбранного элемента, что есть O(числа элементов массива). И камлания именем кнута да дейкстры как-то не отменяют факт, что ты в своём стиле, как обычно, пафосно облажался.
Спрашивается, а зачем писать фигню на хаскеле, если в цикле while(n > 0) { if (..) { push_back(arr[i] }; i++ }, где матожидание числа циклов, после которых n==0, при фиксированном n — пропорционально arr.length() — доблесный хаскелист не видит эквивалентости с линейным поиском элемента массива? Ну, в смысле о-больших?
Стыд и позор
Забанен с формулировкой "клинический дисидент".
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>C++ — это вообще одна большая помойка, не на что там равняться. Единственное, за что уважаю плюсовиков, то что среди них действительно чуть меньше полных идиотов — помойка ошибок не прощает, чуть что — сразу граблями по лбу.
Пока что этой помойке по эффективности и гибкости нет равных.
Re[8]: Задача на собеседовании - обращение списка.
Здравствуйте, зиг, Вы писали:
зиг>>>никто нигде не пишет реверс лист сам. зиг>>>это просто задача на интервью чтоб выявить тех кто не знает что такое список, как такое быстро и красиво закодить, и т.д.
AVV>>безапелляционность утверждений не есть признак ума
зиг>ваше утверждение безапелляционно!
эй вы там, у вас флешмоб сегодня чтоб мне рейтинг что ли повысить?
Re[15]: Задача на собеседовании - обращение списка.
Здравствуйте, gandjustas, Вы писали:
L>>Ты можешь ответить на простой вопрос "зачем для разворота списка нужна рекурсия"? G>Я тут в соседнем посте писал:
Какой-то совершенно новый для меня синтаксист java/C#-а.
G>Это наивное определение. И самое интересное что можно попробовать написать реализацию разворота списка на месте таким образом, но это будет крайне сложный код.
L>>Не нужно уходить в высокии материи и пытаться на основе того, что список пожет быть реализован как рекурсивная структура данных, делать вывод, что это неотъемлемое свойство списка. G>А оно так и есть, даже если ты этого не знаешь.
Нет, это не так.
G>А вот как вывести нужный вариант:
G>Для начала попробуем определить разворот списка через другую, "родную" для списков операцию — свертку.
G>Но функции fold в C нету и надо написать. Обобщенный fold писать смысла нет, можно сразу написать (fold f)
G>Теперь можно и в C попробовать написать такой хелпер для С (пишу прямо в форуме не проверяя)
G>Далее видна хвостовая рекурсия в reverseHelper, её можно преобразовать в цикл. G>Для этого условие выхода обращаем и делаем условием цикла, а вместо возврата делаем переход к следующей итерации
G>Далее убираем лишнюю косвенность из reverse
А теперь после всего написаного поднимаемся на пару-тройку сообщений вверх и с удивлением обнаруиваем, что ни haskell, ни C не обсуждается.
Re[6]: Задача на собеседовании - обращение списка.
Здравствуйте, Vzhyk, Вы писали:
V>За 20 лет ни разу не понадобилось писать оное самому. Всегда была в V>наличии функция sort.
Было похожее: надо из 10 000 000 элементов вывести 1000 первых по определенному критерию. Обычный sort оверхид, ибо сортирует все. Может и есть что готовое, но проще было написать самому...
Re[14]: Задача на собеседовании - обращение списка.
Здравствуйте, gandjustas, Вы писали:
ПМ>>Ты его скорее всего переписал с ошибкой. Потому что если взять n = 1, то в худшем случае он сделает k итераций. G>Может ошибся в о\О нотации. Алгоритм проверил по работающей программе.
Нет, просто не умеешь оценивать сложность алгоритмов.
ПМ>>И рассказывайте мне теперь, что умение писать алгоритмы не нужно, потому что все алгоритмы есть в Интеренете. Этот есть, и фигали толку? G>Действительно нету. Ведь ты умудряешься спрашивать на собеседовании один алгоритм, а сам другие, довольно известные, не знаешь и вывести не можешь.
Я привёл два варианта: O от длинны массива без разрушения массива, и O от кол-ва элементнов с разрушением. Ты привел O от длинны массива с O от кол-ва элементнов по памяти, т.е. не на много лучше моего первого варианта (хотя лучше, не спорю). При этом еще смог четко обозначить вычислительные сложности, и, подозреваю, не сможешь показать, что в твоём алгоритме вероятность выбора элемента не зависит от его позиции в массиве (хотя не зависит). По-моему это говорит только о том, что написание такого алгоритма требует чуть больше познаний в теории вероятностей и выч. сложности, чем написание обращения списка. Но утверждение о том, что человек, не способный написать обращение списка, вообще ни на что нихрена не способен — это не опровергает.
G>Ты кстати и сам писал что сначала не мог его сходу написать, а потом, натренировавшись на собеседованиях, запомнил (но не понял).
Я такого не писал.
ПМ>>Очень даже показательно. Есть те, кто могут и те, кто нет. G>Ты — не можешь. О чем это говорит?
Неверная начальная посылка.
Re[6]: Задача на собеседовании - обращение списка.
Здравствуйте, minorlogic, Вы писали:
M>Я бы мог проконсультировать ваших HR за большие деньги. Но вам рекомендую поменять HR
Давайте обсудим это. Расскажите о своём успешном опыте в области консалтинговой деятельности, о компаниях, где вы смогли улучшить процесс найма сотрудников, о методиках оценки эффективности, во что это вылилось. Думаю, я мог бы договориться о небольшой презентации для менеджмента компании, если Вам действительно есть что сказать.
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, Паблик Морозов, Вы писали:
ПМ>Здравствуйте, minorlogic, Вы писали:
M>>Я бы мог проконсультировать ваших HR за большие деньги. Но вам рекомендую поменять HR
ПМ>Давайте обсудим это. Расскажите о своём успешном опыте в области консалтинговой деятельности, о компаниях, где вы смогли улучшить процесс найма сотрудников, о методиках оценки эффективности, во что это вылилось. Думаю, я мог бы договориться о небольшой презентации для менеджмента компании, если Вам действительно есть что сказать.
За большую плату я дам вам контакты квалифицированных HR, за ОЧЕНЬ большую плату переведу с ними переговоры о консалтинговых услугах.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Задача на собеседовании - обращение списка.
Здравствуйте, Banned by IT, Вы писали:
BBI>Здравствуйте, UA, Вы писали:
UA>>Как то пишут вот так и до сих пор не запутались: BBI>У STL один из самых хреновых стилей которые я когда либо видел.
Как у стл может быть стиль, если у каждого своя реализация? Или ты никакой кроме Динкумварэ не видел?
Re[2]: Задача на собеседовании - обращение списка.
Здравствуйте, antonio_banderas, Вы писали:
_>Паблик Морозов, а озвучьте плз бюджет. _>"вроде конкурентноспособная" это мало о чем говорит. _>Для некоторых и 40-50 тыс. для Москвы конкурентноспособная. _>А вдруг после этого всё станет на свои места? (в плане понимания чего-то в этой жизни)
Ну, допустим, от 100т.р. на руки.
Re[2]: Задача на собеседовании - обращение списка.
Во-первых хватит писать сюда ответы, я еще надеялся поиспользовать эту задачу, во-вторых не заработает на списке из одного элемента. Правильный вариант у Stanislav V. Zudin, если интересно.