Re[32]: Задача на собеседовании - обращение списка.
От: Паблик Морозов  
Дата: 25.02.12 22:58
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Ты не представил опровержения. Даже намеков не было. Так что вполне могу считать именно так.


А почему я должен их предоставлять? Ты сделал утверждение, значит бремя доказательства лежит на тебе. Иначе это просто очередная чушь.
Re: Задача на собеседовании - обращение списка.
От: MozgC США http://nightcoder.livejournal.com
Дата: 25.02.12 23:08
Оценка:
Когда-то в школе я любил решать задачки со всероссийских и международных олимпиад по программированию. Хороший ли я был программист тогда? Да в общем-то никакой. Потому что решение алгоритмических задач нередко на практике востребовано минимально, и в реальных проектах нужны другие скиллы. И школьный навык написания алгоритмов совсем не мешал мне выдавать тонны говнокода в первые годы моей работы.
Решение алгоритмических задач это навык. Где-то он нужен, где-то нет. И большинство программистов смогут его прокачать до какого-то приемлемого уровня, если будет такая необходимость. Как могут люди, для которых алгоритмические задачи сложны, работать программистами? Да в общем-то прекрасно могут. Очень возможно, что многие из тех, кого вы отсеиваете прекрасно справляются со своей работой, просто их работа состоит не в переворачивании списков.
Re[2]: Задача на собеседовании - обращение списка.
От: Паблик Морозов  
Дата: 25.02.12 23:15
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>Когда-то в школе я любил решать задачки со всероссийских и международных олимпиад по программированию. Хороший ли я был программист тогда? Да в общем-то никакой. Потому что решение алгоритмических задач нередко на практике востребовано минимально, и в реальных проектах нужны другие скиллы. И школьный навык написания алгоритмов совсем не мешал мне выдавать тонны говнокода в первые годы моей работы.

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

Я же не прошу решить олимпиадную задачу, для которой действительно может потребоваться знание алгоритмов, и до решение которой может быть сложно догадаться. Я прошу перевернуть чёртов список. По-моему если программист даже этого сделать не может — то это клиника. По крайней мене это никак не сеньёр-девелопер, а в лучшем случае какой-нибудь настройщик шарепоинта.

Кстати, многие серьёзные организации (Майкрософт, Гугль, Фейсбук) отсеивают программистов по алгоритмическим задачам. Неверное не зря.
Re[3]: Задача на собеседовании - обращение списка.
От: MozgC США http://nightcoder.livejournal.com
Дата: 25.02.12 23:29
Оценка: 1 (1) +2
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Я же не прошу решить олимпиадную задачу, для которой действительно может потребоваться знание алгоритмов, и до решение которой может быть сложно догадаться. Я прошу перевернуть чёртов список. По-моему если программист даже этого сделать не может — то это клиника. По крайней мене это никак не сеньёр-девелопер, а в лучшем случае какой-нибудь настройщик шарепоинта.


Они смогут это сделать, просто им нужна привычная обстановка (а не стрессовая ситуация — собеседование; у некоторых на собеседовании может даже мондраж начаться) и больше времени чем тем, кто чаще работает с написанием алгоритмов или увлекается этим.

ПМ>Кстати, многие серьёзные организации (Майкрософт, Гугль, Фейсбук) отсеивают программистов по алгоритмическим задачам. Неверное не зря.


Они еще про гору Фудзи спрашивают(ли), тоже на вооружение возьмёте?

Знаете что смущает в ваших сообщениях? Вы не допускаете другого мнения. Вам говорят, что собеседование может быть стрессом для программиста, что 5 минут ему может быть мало, что решение алгоритмических задач — это навык, который можно прокачать при необходимости (и тогда ваши задачки будут решаться за 60 секунд), что программист может успешно работать не перевернув список за 5 минут, что в работе программиста есть куча других важных навыков. А вы все одно — "не может перевернуть список — это клиника, нам такие идиоты не нужны". Ну раз вам не нужны — не берите, зачем на форуме что-то обсуждать тогда? А если обсуждаете — то почему совсем не принимаете чужие мнения и чужой опыт?
Re[4]: Задача на собеседовании - обращение списка.
От: Паблик Морозов  
Дата: 25.02.12 23:48
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>Они смогут это сделать, просто им нужна привычная обстановка (а не стрессовая ситуация — собеседование; у некоторых на собеседовании может даже мондраж начаться) и больше времени чем тем, кто чаще работает с написанием алгоритмов или увлекается этим.


Поэтому я даю больше времени, подсказки и т.п. Кстати, некоторые ведь могут. И еще качество алгоритма часто коррелирует с качеством оформления (то, как человек даёт имена переменным и т.п.) В общем, хорошего программиста обычно сразу видно, даже на такой задаче, и я склоняюсь к выводу, что если программист хороший — то он хорош во всём, а если плохой — то и код коряво пишет, и примитивный алгоритм реализовать не может.

MC>Они еще про гору Фудзи спрашивают(ли), тоже на вооружение возьмёте?


Возьму. Не вижу причин не брать на вооружение зарекомендовавшие себя практики.
Re[5]: Задача на собеседовании - обращение списка.
От: Banned by IT  
Дата: 26.02.12 01:54
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

MC>>Они еще про гору Фудзи спрашивают(ли), тоже на вооружение возьмёте?

ПМ>Возьму. Не вижу причин не брать на вооружение зарекомендовавшие себя практики.
Начнём с того, что ты знаешь только то, что такой вопрос задают. Но совершенно не знаешь зачем они его задают, и как они именно они трактуют рассуждения собеседуемого.
Так что "зарекомендовавшая" это очень громко сказано.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: Задача на собеседовании - обращение списка.
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 26.02.12 07:25
Оценка:
Здравствуйте, gandjustas, Вы писали:

M>>Данные берутся из базы. Но необходимые запросы выполнятся крайне медленно: кретиев очень много, они строятся динамически, индексы использовать не получается...


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


А мне нравится, работать, в принципе, удобно. А если надо какой-нить алгоритм руками написать, то ничего стращного в этом не вижу, основные проблемы не в этом


M>>Да и если запрос должен вернуть примерно 60% всех элементов, то индекс просто бесполезен. Соответственно на основании данных из базы строится SHM-объект, из которого C++-шная утилита, часто методом тупого перебора, выполняет нужные запросы.


G>Ниче не понял, но понял что работает неэффекттивно. Эффективно заставлять базу считать, она умет оптимизировать считывание с диска, в отличие от программного кода.


База более чем уступает по скорости C++. Чтение с дисков это неоправданные накладные расходы, я уже писал про SHM. Более того, все это хорошо масштабируется, и таких вспомогательнх серверов можно поставить хоть сотню.
Re[6]: Задача на собеседовании - обращение списка.
От: jhfrek Россия  
Дата: 26.02.12 07:36
Оценка:
Здравствуйте, gandjustas, Вы писали:

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

G>А чем разворот списка хуже?

да ладно тебе настолько преувеличивать... Разворот списка — это банальная задача на обмен значений у двух переменных при помощи третьей
Re[9]: Задача на собеседовании - обращение списка.
От: jhfrek Россия  
Дата: 26.02.12 07:40
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

J>>он не "не соображает", он никогда не слышал о списке. Если вы ему вводную лекцию прочитаете, он легко решит вашу задачу.

ПМ>Вводную лекцию читаю и подсказки даю. Не помогает.

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

J>>э... вы уверены что вам нужна таблица из миллиона элементов, выдаваемая "логичным" запросом из теоретического курса по реляционным отношениям из базы не оптимизированной к запросам?

ПМ>Нет, не уверен, вообще не вижу никакой логической связи.

первокурсник, обладающий теоретическими знаниями, может писать не оптимальные запросы, просто потому что у него нет опыта и знаний какие именно запросы оптимальны. Если вы готовы подождать пока он этого опыта наберется, то можно брать и первокурсника.
Re[5]: Задача на собеседовании - обращение списка.
От: Ромашка Украина  
Дата: 26.02.12 08:58
Оценка:
26.02.2012 1:48, Здравствуйте, Паблик Морозов :
> Поэтому я даю больше времени, подсказки и т.п.

А можно про подсказки подробнее? Блин, это задача на понимание
указателей, коих ни в шарпе ни в жабе нет. Вообще нет, в принципе.Ты
вгонишь любого вменяемого программера в ступор. В management коде
избыточность получается жуткая, по сравнению с плюсами, где оригинальная
задача имеет смысл. Зачем?
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[3]: Задача на собеседовании - обращение списка.
От: Ромашка Украина  
Дата: 26.02.12 09:02
Оценка:
26.02.2012 0:02, Здравствуйте, minorlogic :
> Может под списком "List" имеется вполне конкретная структура данных?

Минус за то, что ты сообщение не читаешь.
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[2]: Задача на собеседовании - обращение списка.
От: Stanislav V. Zudin Россия  
Дата: 26.02.12 09:23
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Не знаю как в яве, а в шарпе нет списков в классическом виде, List

Р>реализован через массивы.

LinkedList.
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: Задача на собеседовании - обращение списка.
От: Eye of Hell  
Дата: 26.02.12 11:46
Оценка:
_>>Паблик Морозов, а озвучьте плз бюджет.
_>>"вроде конкурентноспособная" это мало о чем говорит.
_>>Для некоторых и 40-50 тыс. для Москвы конкурентноспособная.
_>>А вдруг после этого всё станет на свои места? (в плане понимания чего-то в этой жизни)

ПМ>Ну, допустим, от 100т.р. на руки.


Тада все нормально. К нам на такие деньги большинство кандидатов тоже конструктор от деструктора не отличают . Видимо, рынок сейчас такой.
Re: Задача на собеседовании - обращение списка.
От: Eye of Hell  
Дата: 26.02.12 12:05
Оценка: 2 (1)
ПМ>1. Если человек не в состоянии обратить список, способен ли он вообще написать что-нибудь разумное или сразу нафиг?

Что могу сказать. Все зависит от постановки задачи. Прочитав несколько дней назад титульный вопрос, я был уверен что задача сводится к
for i in range( list.count() / 2 ) :
  list[ i ].swap( list[ list.count() - 1 - i ] )


Затем, немного почитав ветку, я с удивлением увидел внутренности списков, next / previous и прочие знакомые, но неожиданные здесь вещи. Есть подозрение, что вопрос в формулировке задачи. Кандидаты не понимают, что вы от них хотите.

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

ПМ>2. Если сраз нафиг, то как грамотно построить интервью, чтобы дать эту задачу в самом начале, не слишком сильно человека шокировав, и распрощаться втечение пяти минут, не слишком обидев?


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

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

Если кандидат тянет, то с исходных вопросов выходим уже на более интересные — работы с потоками, контроль ошибок, взаимодействие частей программы и прочее.
Re[17]: Задача на собеседовании - обращение списка.
От: Lloyd Россия  
Дата: 26.02.12 13:32
Оценка: +2
Здравствуйте, gandjustas, Вы писали:

L>>Какой-то совершенно новый для меня синтаксист java/C#-а.

G>Тем не менее ты все понял.

Нет, не понял какое отношение реаоизация списков в haskell/c имеет отношение к java/C#.

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

G>>>А оно так и есть, даже если ты этого не знаешь.
L>>Нет, это не так.
G>Докажи.

Тут и доказывать нечего. См. пример списков в .Net/java. Они совершенно нерекурсивны по реализации.
Re[11]: Задача на собеседовании - обращение списка.
От: Lloyd Россия  
Дата: 26.02.12 13:35
Оценка: -1
Здравствуйте, Ромашка, Вы писали:

Р>24.02.2012 14:47, Здравствуйте, Lloyd :

>> IEnumerable — это итератор, а не список. Список — это List.

Р>List в C#, как меня недавно ткнули носом, нифига не список, а массив.


Нет, это тот, кто тебя ткнул, переносит свой плюсовый опыт, не задумываяь на другие области.
Посмотрите, что такое список в википедии и ткните его самого.
Re[11]: Задача на собеседовании - обращение списка.
От: Lloyd Россия  
Дата: 26.02.12 13:40
Оценка:
Здравствуйте, Философ, Вы писали:

L>>Численно посчитать интеграл?! Вы в каком классе учетесь уважаемый? В моей далеко не самой продвинутой школе интегралы проходили в 9 классе.


Ф>а в моём универе вычмат начался на третьем курсе.

Ф>сразу после матана

Вы школе учиться надо было, а не пивасик с приятелями квасить.
Re[7]: Задача на собеседовании - обращение списка.
От: Lloyd Россия  
Дата: 26.02.12 13:42
Оценка:
Здравствуйте, Философ, Вы писали:

L>>Меня однажды спросили про то, как интеграл численно считается. Выяснилось, что процентов 80 соискателей не в состоянии ответить на вопрос из школьной программы.


Ф>Большая часть людей забывает вычмат сразу после здачи, ибо нафиг не нужен (в болшинстве случаев).

Ф>это не школьная программа

Задача "численно посчитать интеграл" — вполне себе школьная. За подтверждением сходите в ближайший книжный и откройте учебник за 9-10 класс.
Re[4]: Задача на собеседовании - обращение списка.
От: Wolverrum Ниоткуда  
Дата: 26.02.12 13:48
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Пишется легко, без тренировок, это же вообще, как 2+2, все равно что в столбик не уметь складывать


И сколько же будет 2+2 ?
Re[7]: Задача на собеседовании - обращение списка.
От: Ops Россия  
Дата: 26.02.12 14:03
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, a.v.v, Вы писали:


AVV>>понял, вот это конечно более тревожный знак чем невозможность написать код


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


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