Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях.
Навеяно тем что на последнем интервью начали спрашивать реализации стандартных коллекций ну и временные сложности алгоритмов. на моё удивление я всё же помню принцип работы сортировок ,поиска . Даже помню реализацию TreeMap. Однако не помню реализацию hashmap)
Вобщем вопрос такой. спрсите у меня всё это сразу посе вуза) я бы ответил без вопросов. Даже с временными сложностями. Но вот как то быть полезным фирме врят ли бы смог) Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных. Но вот непомню я к примеру сколько будет временная сложность сортировки по Хоару. Непомню точную реализацию Hashmap . Скажите мне теперь в нормальной конторе делать нечего?
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях. L> Навеяно тем что на последнем интервью начали спрашивать реализации стандартных коллекций ну и временные сложности алгоритмов. на моё удивление я всё же помню принцип работы сортировок ,поиска . Даже помню реализацию TreeMap. Однако не помню реализацию hashmap) L> Вобщем вопрос такой. спрсите у меня всё это сразу посе вуза) я бы ответил без вопросов. Даже с временными сложностями. Но вот как то быть полезным фирме врят ли бы смог) Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных. Но вот непомню я к примеру сколько будет временная сложность сортировки по Хоару. Непомню точную реализацию Hashmap . Скажите мне теперь в нормальной конторе делать нечего?
Видимо идет перенимание опыта у гигантов вроде Google, Amazon, Microsoft, где на собеседованиях больше проверяют способности, чем опыт. Задачки как раз в основном алгоритмические. Конечно вопросы на собеседовании не имеют никакого отношения к последующей работе, это просто задачки в вакууме для проверки способностей собеседуемого. Для таких гигантов это может быть оправдано, учитывая огромный поток собеседуемых. Нет времени искать индивидуальный подход к каждому соискателю.
Вывод тут такой. Либо не ходить на такие собеседования, либо целенаправленно готовиться к собеседованиям как к экзамену. Повторил алгоритмы и структуры данных, потренировался на типичых задачках, сдал, забыл
Троллишь? Эта тема обсасывалась уже сто раз.
Спрашивать кучу вопросов, которые не имеют никакого отношения к твоей реальной работе — это сейчас самый последний писк моды в быдлоконторах. Если хочешь непременно там работать, придется потратить кучу времени на подготовку — но лучше поискать компанию, в которой нужны нормальные спецы, а не старательные кнопкодавы.
N>Видимо идет перенимание опыта у гигантов вроде Google, Amazon, Microsoft, где на собеседованиях больше проверяют способности, чем опыт. Задачки как раз в основном алгоритмические. Конечно вопросы на собеседовании не имеют никакого отношения к последующей работе, это просто задачки в вакууме для проверки способностей собеседуемого. Для таких гигантов это может быть оправдано, учитывая огромный поток собеседуемых. Нет времени искать индивидуальный подход к каждому соискателю. N>Вывод тут такой. Либо не ходить на такие собеседования, либо целенаправленно готовиться к собеседованиям как к экзамену. Повторил алгоритмы и структуры данных, потренировался на типичых задачках, сдал, забыл
Причем здесь способности(кроме способности к запоминанию информации)? Сами же говорите, что перед собеседованием необходимо повторить алгоритмы и структуры данных.
Здравствуйте, lollipop, Вы писали:
L> Скажите мне теперь в нормальной конторе делать нечего?
да, никому не нужны работники, которые:
1. В рабочее время устраивают священную войну на форуме.
2. Парятся по поводу всякой фигни. Вот спросили и спросили, считаешь вопрос глупым — так и скажи спрашивальщику.
Здравствуйте, Veratu, Вы писали:
V>Здравствуйте, lollipop, Вы писали:
V>Троллишь? Эта тема обсасывалась уже сто раз. V>Спрашивать кучу вопросов, которые не имеют никакого отношения к твоей реальной работе — это сейчас самый последний писк моды в быдлоконторах. Если хочешь непременно там работать, придется потратить кучу времени на подготовку — но лучше поискать компанию, в которой нужны нормальные спецы, а не старательные кнопкодавы.
Ну не все зависают на форуме постоянно. Можешь глянуть личку чтобы понять что если я и троль то только эстонский)
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях. L> Навеяно тем что на последнем интервью начали спрашивать реализации стандартных коллекций ну и временные сложности алгоритмов. на моё удивление я всё же помню принцип работы сортировок ,поиска . Даже помню реализацию TreeMap. Однако не помню реализацию hashmap) L> Вобщем вопрос такой. спрсите у меня всё это сразу посе вуза) я бы ответил без вопросов. Даже с временными сложностями. Но вот как то быть полезным фирме врят ли бы смог) Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных. Но вот непомню я к примеру сколько будет временная сложность сортировки по Хоару. Непомню точную реализацию Hashmap . Скажите мне теперь в нормальной конторе делать нечего?
Ну я бы устройство Hashmap не ставил в один ряд с алгоритмами сортировок коих очень много.
Про алгоритмы сортировок достаточно знать очень немного просто для общего ориентирования.
А вот усторойство Hashmap знать иногда очень полезно.
Тем блолее что там все довольно просто и фраза "Не помню" с этой простотой трудно ассоциируется.
Ведь невозможно сказать "Я вот что-то подзабыл устройство односвязного списка" по крайней мере серьезно. А там не на много сложнее
Здравствуйте, Гоги, Вы писали:
Г>Здравствуйте, lollipop, Вы писали:
L>> Скажите мне теперь в нормальной конторе делать нечего?
Г>да, никому не нужны работники, которые: Г>1. В рабочее время устраивают священную войну на форуме. Г>2. Парятся по поводу всякой фигни. Вот спросили и спросили, считаешь вопрос глупым — так и скажи спрашивальщику.
1. Вы свой профиль смотрли? Вы походу исключительно пространными делами на форуме занимаетесь
2. Как вы себе это представляете. Нужно же не обидеть HR а в процессе резюме)
On 12.02.2013 11:17, lollipop wrote:
> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл > спрашивать университетскую ерунду на собеседованиях.
Никакого, просто спрашивающий или студент или его со студентов в
недоманагеры продвинули (нынче таких очень много) и он ничего не знает,
крому того, что на лекциях рассказывали.
> Скажите мне теперь в нормальной конторе делать нечего?
В нормальной есть, вот только с нормальными нынче туго. Чтобы это
видеть, не обязательно надо в них работать, достаточно обратить внимание
на глючность софта, что вокруг. Что не возьми, каждая следующая версия
только хуже, добавляются рюшечки и добавляются баги.
On 12.02.2013 11:36, nile wrote:
> Видимо идет перенимание опыта у гигантов вроде Google, Amazon, > Microsoft, где на собеседованиях больше проверяют способности, чем опыт.
Что за безумные фантазии, там берут отсюда в подавляющем большинстве
студентов или с минимальным опытом и проверяют исключительно
институтские знания с целью лепить потом под себя с вывозом тушки.
On 12.02.2013 13:03, Гоги wrote:
> да, никому не нужны работники, которые: > 1. В рабочее время устраивают священную войну на форуме.
С так понимаю, что выход в инет у тебя для программистов закрыт?
А иначе с чего ты взял, что пол твоей конторы здесь не пишет днями, а
тебе рассказывает про сложности программирования?
Здравствуйте, robin_of_the_wood, Вы писали:
___>Здравствуйте, lollipop, Вы писали:
L>> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях. L>> Навеяно тем что на последнем интервью начали спрашивать реализации стандартных коллекций ну и временные сложности алгоритмов. на моё удивление я всё же помню принцип работы сортировок ,поиска . Даже помню реализацию TreeMap. Однако не помню реализацию hashmap) L>> Вобщем вопрос такой. спрсите у меня всё это сразу посе вуза) я бы ответил без вопросов. Даже с временными сложностями. Но вот как то быть полезным фирме врят ли бы смог) Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных. Но вот непомню я к примеру сколько будет временная сложность сортировки по Хоару. Непомню точную реализацию Hashmap . Скажите мне теперь в нормальной конторе делать нечего?
___>Ну я бы устройство Hashmap не ставил в один ряд с алгоритмами сортировок коих очень много. ___>Про алгоритмы сортировок достаточно знать очень немного просто для общего ориентирования. ___>А вот усторойство Hashmap знать иногда очень полезно. ___>Тем блолее что там все довольно просто и фраза "Не помню" с этой простотой трудно ассоциируется. ___>Ведь невозможно сказать "Я вот что-то подзабыл устройство односвязного списка" по крайней мере серьезно. А там не на много сложнее
Ну ладно хорошо допустим заслуженно вы взяли человека который знает что такое Hashmap и его реализацию (кстати если это студент он наверняка опробует её написать по своему где то в проекте). Я вам скажу как человек который не первый год работает. Лучше взять человека который всюду к примеру ставит ArrayList вместо LinkedList не понимая его минусы . Чем взять умного разумного который будет делать по своему не разбираясь что написано по принцыпу здесь говно сделаю я рядом новое ещё лучше старого. Поменять в коде одно на другое не сложно. Вот если уже существует нежелание работать с чужим кодом и отсутствие примитивного coding style вот это помойму намного хуже.
Здравствуйте, lollipop, Вы писали:
L> Скажите мне теперь в нормальной конторе делать нечего?
да, именно так.
но это решили за тебя те товарищи собеседователи которым не интересно чтобы ты попал
к ним в коллектив, неинтересно чтобы рядом был более умный продвинутый и трудолюбивый
коллега. Они понимают что ты придешь и вскроется их сидение на попе ровно — ты же будешь
в период испытательного фигачить за троих. Ну соответственно придумывают именно такие вопросы,
которые позволят пройти начинающему бывшему студенту, а не человеку с опытом.
Я бы сказал больше, у этих собеседующих их нахождение в конторе сродни бизнесу, но их бизнесу,
который надо холить и лелеять и охранять от тех кто может прийти и как то что то изменить.
Кароч, это сговор с целью не пропустить в норм конторы нормальных чуваков с опытом.
Я знаю, как управлять Вселенной. И скажите, зачем же мне бежать за миллионом?!(c)
On 12.02.2013 14:23, lollipop wrote:
> Ну ладно хорошо допустим заслуженно вы взяли человека который знает что > такое Hashmap и его реализацию (кстати если это студент он наверняка > опробует её написать по своему где то в проекте). Я вам скажу как > человек который не первый год работает. Лучше взять человека который > всюду к примеру ставит ArrayList вместо LinkedList не понимая его минусы > . Чем взять умного разумного который будет делать по своему не > разбираясь что написано по принцыпу здесь говно сделаю я рядом новое ещё > лучше старого. Поменять в коде одно на другое не сложно. Вот если уже > существует нежелание работать с чужим кодом и отсутствие примитивного > coding style вот это помойму намного хуже.
Не, ищут и то и другое в одном флаконе,
но так как проверить могут только первое, то понятно берут только тех,
кто им делает каждый раз новые реализации стандартных контейнеров или
что-то подобное.
А потом здесь недоумевают, мы же так тщательно собеседуем, а приходит
говно, где взять спецов, причем сами их старательно отсевают на
собеседовании.
Здравствуйте, lollipop, Вы писали:
L> Ну ладно хорошо допустим заслуженно вы взяли человека который знает что такое Hashmap и его реализацию (кстати если это студент он наверняка опробует её написать по своему где то в проекте). Я вам скажу как человек который не первый год работает. Лучше взять человека который всюду к примеру ставит ArrayList вместо LinkedList не понимая его минусы . Чем взять умного разумного который будет делать по своему не разбираясь что написано по принцыпу здесь говно сделаю я рядом новое ещё лучше старого. Поменять в коде одно на другое не сложно. Вот если уже существует нежелание работать с чужим кодом и отсутствие примитивного coding style вот это помойму намного хуже.
В обшем я согласен с Вами полностью.
Я и не утверждал что только лишь знание внутреннего устройства Hashmap — это критерий успешного прохождения собеседования.
Я лишь заметил что в отличие от знаний множества алгоритмов сортировок, этот вопрос может иметь вполне практическое применение.
Ну и конечно знание внутреннего устройства контейнера совсем не предполагает его самостоятельную реализацию.
А уж особенно если такой задачи не было поставлено.
А из практики я реально сталкивался с ситуацией где из-за бага в хэш функции хэш таблица превращалась по эффективности в список.
Или из-за подобной причины добавленный элемент был доступен при переборе всех значений но недоступен по ключу.
И это уже были реальные задачи а не разговоры на собеседовании. И их было очень трудно решить без знания внутреннего устройства Hashmap.
Вот об этом я собственно и писал.
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях.
Ну полагаю вы должны знать асимптотику до тех пор пока не переквалифицируетесь или вас не положат в гроб. Это не означает что подними вас ночью — вы должны отчеканить асимптотику тим сорт или радикс, но принципами должны владеть. Это база оценки производительности кода, а вы же крутой девелопер.
По сортировке — вы должны в общих чертах знать как работает hash-таблица, а также как строятся и обходятся несбалансированные / сбалансированные деревья. Опять же не надо отбивать AVL по памяти, достаточно понимать как работает BST и общую идею. А то нужно будет вам создать dictionary для объектов, и как вы поймете что лучше использовать.
Основная идея в том чтобы продемонстрировать что вы следуете основным трендам в разработке ПО, какими бы идиотскими они не были. Рынок достаточно наполнен программистами и требуются еще какие-то условия отбора помимо skills & background. Если вы не rock star то вам придется приспосабливаться. тут уж ничего не поделаешь .
L> Вобщем вопрос такой. спрсите у меня всё это сразу посе вуза) я бы ответил без вопросов. Даже с временными сложностями. Но вот как то быть полезным фирме врят ли бы смог) Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных. Но вот непомню я к примеру сколько будет временная сложность сортировки по Хоару. Непомню точную реализацию Hashmap . Скажите мне теперь в нормальной конторе делать нечего?
Если у вас спрашивают сортировку по Хоару или реализацию HashMap на собеседовании, не предупредив что будут спрашивать вас подобные areas за пару недель до этого — они и правда идиоты. Посылайте их лесом.
Здравствуйте, Vzhyk, Вы писали:
V>On 12.02.2013 11:36, nile wrote:
>> Видимо идет перенимание опыта у гигантов вроде Google, Amazon, >> Microsoft, где на собеседованиях больше проверяют способности, чем опыт. V>Что за безумные фантазии, там берут отсюда в подавляющем большинстве V>студентов или с минимальным опытом и проверяют исключительно V>институтские знания с целью лепить потом под себя с вывозом тушки.
Скорее это у Вас безумные фантазии, либо оправдание себя после неудачного собеседования.
Мол это не меня не берут, это я к ним не хочу.
А как Вы себе представляете "правильный" рекрутинг в огромную компанию? Брать умных и опытных, но не брать тупых и зеленых? А где критерии? Универсальные критерии, чтобы можно было проводить рекрутинг массово, не тратя зря кучу драгоценного времени.
Я не спорю, что на собеседовании есть доля везения, и кто-то не слишком умный (но зазубривший стандартные задачки) проскочит, а кто-то умный (кому попадется задачка из неизвестной области, которую в процессе работы с помощью гугла можно решить за полчаса, и нет необходимости ее зубрить) отсеется.
Но утверждать, что все корпорации целенаправленно набирают только тупых болванчиков — это идиотизм. Цель любой компании — извлечение прибыли. Прибыль извлекается благодаря успешной конкуренции. А конкуренция обеспечивается качественными продуктами (и маркетингом, да), которые разрабатывают программисты.
Наверное попадаются недостаточно компетентные HR или менеджеры. Но куда без этого при численности в десятки тысяч сотрудников. Там же не роботы работают, а обычные люди.
Кому-то соискатель может не понравиться на чисто эмоциональном уровне, например "он ведет слишком высокомерно, я бы не хотел с ним работать". Конечно тут присутствует человеческий фактор. А как иначе?
А соискатель бежит на форум бороться с ветряными мельницами и обсуждать теорию заговора. Детский сад.
On 12.02.2013 14:55, a_g_99 wrote:
> Основная идея в том чтобы продемонстрировать что вы следуете основным > трендам в разработке ПО, какими бы идиотскими они не были. Рынок > достаточно наполнен программистами и требуются еще какие-то условия > отбора помимо skills & background. Если вы не rock star то вам придется > приспосабливаться. тут уж ничего не поделаешь .
О, я смотрю уже не я один тут считаю, что рынок наполнен программистами
и возможно даже предложение программистов превышает спрос.
Следующий шаг при превышение предложения над спросом понижение цены, как
известно. Полетали в облаках со своими 120-150 в Москве пора и на землю,
60-70 в Москве.
Здравствуйте, Vzhyk, Вы писали:
V>On 12.02.2013 14:55, a_g_99 wrote:
V>О, я смотрю уже не я один тут считаю, что рынок наполнен программистами V>и возможно даже предложение программистов превышает спрос. V>Следующий шаг при превышение предложения над спросом понижение цены, как V>известно. Полетали в облаках со своими 120-150 в Москве пора и на землю, V>60-70 в Москве.
Среди опытных разработчиков по-прежнему наблюдается дефицит. Многие достигают пика и уходят в менеджеры.
Или их просто все устраивает на текущей работе.
On 12.02.2013 14:59, nile wrote:
> Скорее это у Вас безумные фантазии, либо оправдание себя после > неудачного собеседования. > Мол это не меня не берут, это я к ним не хочу.
Думаю мы друг друга не хотим. Ни разу не то что не собеседовался даже
резюме к ним не слал.
> А как Вы себе представляете "правильный" рекрутинг в огромную компанию?
Не представляю и не хочу представлять. Они и без меня разберуться, лично
я просто озвучил, каков их рекрутинг здесь, основываясь на куче постов и
здесь и в инете.
> Универсальные критерии, чтобы можно было проводить рекрутинг массово, не > тратя зря кучу драгоценного времени.
Универсальный критерий к людям? Это уже фашизмом попахивает. Нет такого
и быть не может.
> Но утверждать, что все корпорации целенаправленно набирают только тупых > болванчиков — это идиотизм.
Про болванчиков я не говорил, это ты так студентов воспринимаешь. Они
набирают "дешевый перспективный пластелин" из которого лепят то, что им
нужно или выкидывают потом.
> А конкуренция > обеспечивается качественными продуктами (и маркетингом, да), которые > разрабатывают программисты.
Ничего подобного. Программист — это очень маленький кусочек деятельности
успешной конторы и легко могут быть заменены. И даже продукты — это тоже
небольшой кусочек, особенно у гигантов типа Гугла, Мелкомягких, Амазона
и т.п.
Продукты важны только у компаний одного продукта, типа Mathworks, но и у
них программисты легко заменяемы.
Конкретные разработчики важны только в одном месте — в научных
лабораториях университетов и то, если они звезды или звездочки, но
прибыли там нет.
> Кому-то соискатель может не понравиться на чисто эмоциональном уровне, > например "он ведет слишком высокомерно, я бы не хотел с ним работать". > Конечно тут присутствует человеческий фактор. А как иначе? > А соискатель бежит на форум бороться с ветряными мельницами и обсуждать > теорию заговора. Детский сад.
Это нормальная и адекватная причина, в отличии от Переворачиваний
Абстракных Списков Красно-черных Гомиков.
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях.
Если это не единственный вопрос, то, конечно, имеет смысл — выяснить границы компетентности кандидата. Тем более что эти знания периодически оказываются полезными.
Здравствуйте, Baudolino, Вы писали:
B>Здравствуйте, lollipop, Вы писали:
L>> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях. B>Если это не единственный вопрос, то, конечно, имеет смысл — выяснить границы компетентности кандидата. Тем более что эти знания периодически оказываются полезными.
Но некоторые форумчане почему-то считают, что они выше этого.
Здравствуйте, nile, Вы писали:
B>>Если это не единственный вопрос, то, конечно, имеет смысл — выяснить границы компетентности кандидата. Тем более что эти знания периодически оказываются полезными. N>Но некоторые форумчане почему-то считают, что они выше этого.
Ну так форум для этого и существует. Хотя конечно же не только для этого.
Но именно тут мы можем высказать мнение, которое не получается высказать собеседователю, тимлиду, менеджеру итд. А внекоторых разделах — даже самому президенту
В ответ конечно можно получить много негатива. Но так ведь форум опять же
Здравствуйте, robin_of_the_wood, Вы писали:
___>В обшем я согласен с Вами полностью. ___>Я и не утверждал что только лишь знание внутреннего устройства Hashmap — это критерий успешного прохождения собеседования. ___>Я лишь заметил что в отличие от знаний множества алгоритмов сортировок, этот вопрос может иметь вполне практическое применение.
Тодга лучше спрашивать про разработку эффектвных хэш функций.
Здравствуйте, Kernan, Вы писали:
___>>Я и не утверждал что только лишь знание внутреннего устройства Hashmap — это критерий успешного прохождения собеседования. ___>>Я лишь заметил что в отличие от знаний множества алгоритмов сортировок, этот вопрос может иметь вполне практическое применение. K>Тодга лучше спрашивать про разработку эффектвных хэш функций.
А у меня это однажды и спрашивали. Правда после того, как я рассказал про внутреннее устройство Hashmap.
Но мне показалось, если кандидат ответил на первый вопрос, то для приемлемого ответа на второй достаточно простой логики.
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях.
А что ты хочешь? В программировании сейчас очень много случайных людей, которые в силу узости мышления считают, что хороший инженер — это заучивший кучку прописных истин ботаник. Посмотри даже на этот сайт — в этюдах гномиков считают всеми различными способами по десять раз на дню, в алгоритмах абстрактных коней в вакууме сортируют, а стоило человеку туда же, в алгоритмы, прийти с задачей из реального мира и спросить, как ему анализировать данные об автомобильном трафике, так в ответ ему была тишина. Каждый второй — эксперт по lock-free контейнерам, а многопоточные приложение как дедлочились, так и дедлочатся. На моем ноутбуке с четырьмя ядрами гуй от атишных дров с тремя кнопками запускается минуту, а куда ни плюнь — все специалисты по сложности алгоритмов.
Но это так, лирика. Тут в соседней теме уже отметились, что задача собеседующего состоит в отсеве кандидатов.
Здравствуйте, Vzhyk, Вы писали:
V>On 12.02.2013 13:03, Гоги wrote:
>> да, никому не нужны работники, которые: >> 1. В рабочее время устраивают священную войну на форуме. V>С так понимаю, что выход в инет у тебя для программистов закрыт? V>А иначе с чего ты взял, что пол твоей конторы здесь не пишет днями, а V>тебе рассказывает про сложности программирования?
Инет не закрыт. Про сложности программирования не рассказывают, только про сортировки и их сложность
Здравствуйте, Vzhyk, Вы писали:
>> Скажите мне теперь в нормальной конторе делать нечего? V>В нормальной есть, вот только с нормальными нынче туго. Чтобы это V>видеть, не обязательно надо в них работать, достаточно обратить внимание V>на глючность софта, что вокруг. Что не возьми, каждая следующая версия V>только хуже, добавляются рюшечки и добавляются баги.
Здравствуйте, Гоги, Вы писали:
Г>Здравствуйте, Vzhyk, Вы писали:
>>> Скажите мне теперь в нормальной конторе делать нечего? V>>В нормальной есть, вот только с нормальными нынче туго. Чтобы это V>>видеть, не обязательно надо в них работать, достаточно обратить внимание V>>на глючность софта, что вокруг. Что не возьми, каждая следующая версия V>>только хуже, добавляются рюшечки и добавляются баги.
Г>Любитель Windows 2000 Ну или XP, как максимум
скорее Windows ME
On 12.02.2013 15:24, nile wrote:
> Среди опытных разработчиков по-прежнему наблюдается дефицит.
Опять 25. Интересно, удасться ли раза хоть с 25 выйти из заколдованного
круга: на собеседования производят отсев опытных разработчиков и
жалуются, что их не могут найти.
Неужели так сложно понять, что память человека не бесконечна и ту
теорию, что человек знал студентом, он забудет через 10-15 лет, а будет
просто автоматически использовать наиболее правильные решения,
основываясь на опыте.
Попытаюсь объяснить на элементарном примере: в первые годы жизни человек
учится ходить и с трудом делает первые шаги и возможно даже осознает,
как управляет своими мышцами, теперь спросите у взрослого человека, как
он управляет своими мышцами, чтобы ходить. Никто не сможет объяснить.
On 12.02.2013 16:09, nile wrote:
> Но некоторые форумчане почему-то считают, что они выше этого.
Что за бред. Большинство здесь просто пытаются донести до
собеседователей, что опыт и институтские знания сильно разные вещи. И
институтские теоретические знания с увеличением опыта забываются.
А также, зачем жаловаться на то, что не можешь найти опытных
разработчиков, если сам их отсеиваешь.
Здравствуйте, robin_of_the_wood, Вы писали:
___>Ну так форум для этого и существует. Хотя конечно же не только для этого. ___>Но именно тут мы можем высказать мнение, которое не получается высказать собеседователю, тимлиду, менеджеру итд. А внекоторых разделах — даже самому президенту ___>В ответ конечно можно получить много негатива. Но так ведь форум опять же
Одно дело критиковать процесс собеседования, другое — утверждать, что компании специально отбирают зеленых студентов, а опытных суперменов боятся и отсеивают
Тем более, что собеседование это всего лишь способ устроиться на желаемую работу. Если есть цель устроиться на работу в компанию, есть смысл специально готовиться к собеседованию, чтобы повысить свои шансы.
Ничего запредельного там не спрашивают, до собеседования высылают перечень областей, в которых нужно хорошо ориентироваться.
Глупо делать выводы о компании только по собеседованию. Хотя конечно HR это лицо фирмы, и первое впечатление должно быть соответственным
А непрозрачность и отсутствие обратной связи имеют свои причины, о которых уже писали. Не всегда есть возможность четко дать перечень моментов, которые не устроили интервьюеров (тем более что на очном собеседовании их несколько). И не все адекватно реагируют на критику. Хороший кандидат сам видит свои слабые стороны. Ну и немного везения не помешает.
Здравствуйте, robin_of_the_wood, Вы писали:
___>Здравствуйте, lollipop, Вы писали:
L>> Ну ладно хорошо допустим заслуженно вы взяли человека который знает что такое Hashmap и его реализацию (кстати если это студент он наверняка опробует её написать по своему где то в проекте). Я вам скажу как человек который не первый год работает. Лучше взять человека который всюду к примеру ставит ArrayList вместо LinkedList не понимая его минусы . Чем взять умного разумного который будет делать по своему не разбираясь что написано по принцыпу здесь говно сделаю я рядом новое ещё лучше старого. Поменять в коде одно на другое не сложно. Вот если уже существует нежелание работать с чужим кодом и отсутствие примитивного coding style вот это помойму намного хуже.
___>В обшем я согласен с Вами полностью. ___>Я и не утверждал что только лишь знание внутреннего устройства Hashmap — это критерий успешного прохождения собеседования. ___>Я лишь заметил что в отличие от знаний множества алгоритмов сортировок, этот вопрос может иметь вполне практическое применение. ___>Ну и конечно знание внутреннего устройства контейнера совсем не предполагает его самостоятельную реализацию. ___>А уж особенно если такой задачи не было поставлено.
___>А из практики я реально сталкивался с ситуацией где из-за бага в хэш функции хэш таблица превращалась по эффективности в список. ___>Или из-за подобной причины добавленный элемент был доступен при переборе всех значений но недоступен по ключу. ___>И это уже были реальные задачи а не разговоры на собеседовании. И их было очень трудно решить без знания внутреннего устройства Hashmap. ___>Вот об этом я собственно и писал.
Почему нельзя проверить? Есть же тестовое задание. Дать к примеру кусок кода доработать и посмотреть что получиться. По мне если человек именование переменных сделал по путю уже на джуниорскую позицию тянет. А то ведь знаете как оно бывает.... Но беда вся в том что это не HR потом будет в его коде ковыряться.
On 12.02.2013 18:51, Гоги wrote:
> Любитель Windows 2000 Ну или XP, как максимум
Ну да, что тебя в них не удовлетворяет, кроме отсутсвия АЭРО (кстати это
как-то связано с самолетами?).
On 12.02.2013 19:23, nile wrote:
> Одно дело критиковать процесс собеседования, другое — утверждать, что > компании специально отбирают зеленых студентов, а опытных суперменов > боятся и отсеивают
Благими намерениями устлана дорога в Ад. Может они и хотят найти опытных
(за суперменами в комиксы), но отбирают зеленых студентов по факту.
> Тем более, что собеседование это всего лишь способ устроиться на > желаемую работу. Если есть цель устроиться на работу в компанию, есть > смысл специально готовиться к собеседованию, чтобы повысить свои шансы.
Если есть цель устроиться именно в эту компанию. Так и писали бы в
вакансиях, как это делают Гугл и Мелкомягкие, что у нас типичный экзамен
и мы берем только тех, кто подготовится к этому экзамену и выкладывают
программу того, что абутуриент должен выучить.
Здравствуйте, lollipop, Вы писали:
L> Почему нельзя проверить? Есть же тестовое задание. Дать к примеру кусок кода доработать и посмотреть что получиться. По мне если человек именование переменных сделал по путю уже на джуниорскую позицию тянет. А то ведь знаете как оно бывает.... Но беда вся в том что это не HR потом будет в его коде ковыряться.
Тестовое задание — это предмет отдельной форумной баталии
Не к ночи будет помянуто.
Здравствуйте, Vzhyk, Вы писали:
V>Опять 25. Интересно, удасться ли раза хоть с 25 выйти из заколдованного V>круга: на собеседования производят отсев опытных разработчиков и V>жалуются, что их не могут найти. V>Неужели так сложно понять, что память человека не бесконечна и ту V>теорию, что человек знал студентом, он забудет через 10-15 лет, а будет V>просто автоматически использовать наиболее правильные решения, V>основываясь на опыте. V>Попытаюсь объяснить на элементарном примере: в первые годы жизни человек V>учится ходить и с трудом делает первые шаги и возможно даже осознает, V>как управляет своими мышцами, теперь спросите у взрослого человека, как V>он управляет своими мышцами, чтобы ходить. Никто не сможет объяснить.
Ерунда какая.
Я приведу вам другой пример. Чтобы сдать на права, вы выучили ПДД, готовились к экзамену.
Вы имеете 10 лет водительского стажа, и вроде бы нет необходимости подтверждать, что вы хороший водитель и знаете ПДД.
Но при приеме на работу таксистом вас просят объяснить поведение в конкретных ситуациях, руководствуясь ПДД.
Вы возмущены: "Да как вы смеете! ПДД для неопытных, а я — ас! И задачки я не решаю, я за рулем езжу!"
Откуда знать работодателю, что права вы не купили? И что вы все эти годы действительно водили автомобиль, а не сидели на пассажирском сидении?
А может вы водили в деревне среди трех тополей без пробок, без единого знака и светофора? Как вы поведете себя, оказавшись в центре мегаполиса?
И такая реакция это первый повод отказать вам в приеме на работу. Потому что вы считаете себя умнее других, и в команде не сработаетесь.
V>Если есть цель устроиться именно в эту компанию. Так и писали бы в V>вакансиях, как это делают Гугл и Мелкомягкие, что у нас типичный экзамен V>и мы берем только тех, кто подготовится к этому экзамену и выкладывают V>программу того, что абутуриент должен выучить.
Вообще-то Амазон перед собеседованием высылает PDF-ку, в которой приведены основные технические темы, на которые нужно обратить внимание при подготовке.
И в целом краткая информация о том, в каком формате будет проходить собеседование, и на какие моменты стоить обратить внимание.
On 12.02.2013 20:05, nile wrote:
> Откуда знать работодателю, что права вы не купили? И что вы все эти годы > действительно водили автомобиль, а не сидели на пассажирском сидении? > А может вы водили в деревне среди трех тополей без пробок, без единого > знака и светофора? Как вы поведете себя, оказавшись в центре мегаполиса?
При 10-15 работы работы таксистом в соседних конторах?
Действительно откуда.
Что-то мне подсказывает, что руководство у таксистов психически
здоровое, в отличие от...
On 12.02.2013 20:10, nile wrote:
> Вообще-то Амазон перед собеседованием высылает PDF-ку, в которой > приведены основные технические темы, на которые нужно обратить внимание > при подготовке. > И в целом краткая информация о том, в каком формате будет проходить > собеседование, и на какие моменты стоить обратить внимание.
Ну вот ты подтверждаешь мое предположение.
Но вот местные собеседовали о том, что будут проводить экзамен по
институтскому курсу, не говорю уже "PDF-ке, в которой приведены основные
технические темы, на которые нужно обратить внимание при подготовке." не
удосуживаются сообщить. К чему бы это?
Еще что прикалывает, обижаются, если отказываешь им. Помню лет 7 назад
одних клоунов, позвонили, сказали, что "домашнее задание", сказал
спасибо, но задание делать не буду и в общем не хочу к ним идти — после
этого обиженным голосом долго пытались мне по телефону объяснить, что я
не прав. И не пошлешь же, пришлось этих идиотом минут 20 слушать и ждать
момента, когда можно сказать "до свидания, было приятно пообщаться". Так
после этого еще и фыркнули в трубку.
Здравствуйте, nile, Вы писали:
N>Здравствуйте, Vzhyk, Вы писали:
V>>Опять 25. Интересно, удасться ли раза хоть с 25 выйти из заколдованного V>>круга: на собеседования производят отсев опытных разработчиков и V>>жалуются, что их не могут найти. V>>Неужели так сложно понять, что память человека не бесконечна и ту V>>теорию, что человек знал студентом, он забудет через 10-15 лет, а будет V>>просто автоматически использовать наиболее правильные решения, V>>основываясь на опыте. V>>Попытаюсь объяснить на элементарном примере: в первые годы жизни человек V>>учится ходить и с трудом делает первые шаги и возможно даже осознает, V>>как управляет своими мышцами, теперь спросите у взрослого человека, как V>>он управляет своими мышцами, чтобы ходить. Никто не сможет объяснить. N>Ерунда какая. N>Я приведу вам другой пример. Чтобы сдать на права, вы выучили ПДД, готовились к экзамену. N>Вы имеете 10 лет водительского стажа, и вроде бы нет необходимости подтверждать, что вы хороший водитель и знаете ПДД. N>Но при приеме на работу таксистом вас просят объяснить поведение в конкретных ситуациях, руководствуясь ПДД. N>Вы возмущены: "Да как вы смеете! ПДД для неопытных, а я — ас! И задачки я не решаю, я за рулем езжу!" N>Откуда знать работодателю, что права вы не купили? И что вы все эти годы действительно водили автомобиль, а не сидели на пассажирском сидении? N>А может вы водили в деревне среди трех тополей без пробок, без единого знака и светофора? Как вы поведете себя, оказавшись в центре мегаполиса?
N>И такая реакция это первый повод отказать вам в приеме на работу. Потому что вы считаете себя умнее других, и в команде не сработаетесь.
N>P.S. Ничего личного, и удачи!
Плохой пример. У моего отца ни одного ДТП небыло за 7 лет, работает в такси. Так вот буквально 2 или три недели назад так как жена сдаёт на права подсунул ему онлайн экзамен в ГАИ — 6 ошибок. Что делать права забирать?)))
И кстати при приёме на работу права не требовали. Спрашивали знание города.
V>При 10-15 работы работы таксистом в соседних конторах? V>Действительно откуда.
Далеко не все в Москве приходят на собеседование в Amazon из Microsoft и Google.
А если вы имели ввиду "соседнюю контору" с малоизвестным названием, то специфика работы тут сильно отличается, а написать в резюме можно все, что угодно.
Поэтому, ориентироваться исключительно на громкое название компании и должности в резюме не стоит.
Не место красит человека.
On 12.02.2013 20:17, lollipop wrote:
> Плохой пример. У моего отца ни одного ДТП небыло за 7 лет, работает в > такси. Так вот буквально 2 или три недели назад так как жена сдаёт на > права подсунул ему онлайн экзамен в ГАИ — 6 ошибок. Что делать права > забирать?))) > И кстати при приёме на работу права не требовали. Спрашивали знание города.
Да он просто нафантазировал чего-то, что ему кажется правдоподобным, вот
только к реальной жизни отношения не имеет — это и ежу понятно.
А причина действий всех этих собеседователей давно известна: боязнь
взять на себя хоть чуть ответсвенности и прикрываться некими бумажками.
Благо, сейчас все привыкли, что программные продукты постоянно глючат и
делают не то, что предполагалось и почти все проекты делаются в сроки в
2-3 раза превышающие запланированные.
Здравствуйте, lollipop, Вы писали:
L> Плохой пример. У моего отца ни одного ДТП небыло за 7 лет, работает в такси. Так вот буквально 2 или три недели назад так как жена сдаёт на права подсунул ему онлайн экзамен в ГАИ — 6 ошибок. Что делать права забирать?))) L>И кстати при приёме на работу права не требовали. Спрашивали знание города.
Так никто ж не спорит, что можно спокойно водить, ни разу в жизни не открывая ПДД.
Но для опытного водителя не составит труда потратить пару недель на систематизацию базовых ПДД, ведь так? Опыт тут только поможет лучше понять их, переосмыслить.
А работодателю будет проще, оперируя стандартными терминами, определить уровень соискателя.
И я еще раз обращаю внимание, что не просят ведь доказать теорему. Просят решить конкретную задачу.
При этом недостаточно просто найти правильный ответ. Важно, насколько чисто ты пишешь код, как ты рассуждаешь, ведешь беседу, строишь гипотезы, исправляешь ошибки, тестируешь свой код.
Если ты будешь 45 минут молча писать идеально чистый код, это не устроит интервьюера. Задача это просто предмет для разговора, в ходе которого интервьюер попытается определить твой уровень и оценить как потенциального члена команды.
Кроме того, задач и интервьюеров несколько, что позволяет составить более-менее объективную картину.
On 12.02.2013 20:22, nile wrote:
> Далеко не все в Москве приходят на собеседование в Amazon из Microsoft и > Google.
Думаешь, что для руководству Амазона или собеседователям там важно, что
чел до этого работал в Гугле (получал зарплату)?
> А если вы имели ввиду "соседнюю контору" с малоизвестным названием, то > специфика работы тут сильно отличается, а написать в резюме можно все, > что угодно.
О куда ушли. То бишь ты уверен, что большинство программистов,
приходящих на собеседование врут? Это говорит очень много о тебе, что ты
за человек.
Ибо большинство программистов правдивы, потому как врать можно людям, а
не компьютеру и это сильно влияет на психику человека и на его поступки.
Это теоретическое опровержение.
За 20 лет я видел только одного, который в резюме написал сказок, но не
смог сказать ничего, что он делал на собеседовании. А за 20 лет
достаточно много программистов проходило мимо меня. Это практическое
опровержение.
На основе этого, можно сделать вывод о тебе — ты очень часто врешь и
распространяешь это на других людей.
> Поэтому, ориентироваться исключительно на громкое название компании и > должности в резюме не стоит.
Вообще-то именно эту мысль ты выше и выдвинул. Как-то старайся не
противоречить себе в одном посте.
Здравствуйте, Vzhyk, Вы писали:
V>Ну вот ты подтверждаешь мое предположение. V>Но вот местные собеседовали о том, что будут проводить экзамен по V>институтскому курсу, не говорю уже "PDF-ке, в которой приведены основные V>технические темы, на которые нужно обратить внимание при подготовке." не V>удосуживаются сообщить. К чему бы это?
В данном случае полностью согласен с тобой. Тут имеет дело банальная попытка скопировать чужой подход, не вникая, а получается жалкая пародия.
У нас в России много "мирового опыта" так перенимается.
On 12.02.2013 20:30, nile wrote:
> А работодателю будет проще, оперируя стандартными терминами, определить > уровень соискателя.
Работодатель выше уже определил, что ему проще.
Как хорошо, что все эти современные эффективные менеджеры бояться пойти
таксистами рулить, те могут и монтировкой по горбу переехать.
> При этом недостаточно просто найти правильный ответ. Важно, насколько > чисто ты пишешь код, как ты рассуждаешь, ведешь беседу, строишь > гипотезы, исправляешь ошибки, тестируешь свой код. > Если ты будешь 45 минут молча писать идеально чистый код, это не устроит > интервьюера. Задача это просто предмет для разговора, в ходе которого > интервьюер попытается определить твой уровень и оценить как > потенциального члена команды.
То бишь этот интервьвер ищет того, кто целыми днями будет молоть языком,
мешать всем работать, но не делать молча свою работу.
> Кроме того, задач и интервьюеров несколько, что позволяет составить > более-менее объективную картину.
Это даже не смешно. Это так упал уровень высшего образования.
Ну и кроме того, это ж какая толпа бездельноков зарплату получает. Точно
на нашу отрасль нужен очередной кризис, аналогичный кризису доткомов.
Здравствуйте, Vzhyk, Вы писали:
V>О куда ушли. То бишь ты уверен, что большинство программистов, V>приходящих на собеседование врут?
Нет. Я всего лишь имел ввиду, что бумажка мало говорит о реальном опыте.
И лишь на основании нее невозможно понять, что из себя реально представляет человек.
Вот пример "от балды":
2007-2012
SuperSoft LTD.
Senior Software Developer.
Distributed SOA system for financial market.
Java, JBoss, Spring, EJB.
Можно понять из этого уровень человека?
И даже если будет расписано более подробно с конкретными достижениями — это отличный повод для разговора, но не единственный критерий.
V>На основе этого, можно сделать вывод о тебе — ты очень часто врешь и V>распространяешь это на других людей.
Быстро ты однако делаешь выводы. Давай все же не будем переходить на личности.
V>Вообще-то именно эту мысль ты выше и выдвинул. Как-то старайся не V>противоречить себе в одном посте.
Нет, просто ты неверно меня понял.
On 12.02.2013 20:34, nile wrote:
> В данном случае полностью согласен с тобой. Тут имеет дело банальная > попытка скопировать чужой подход, не вникая, а получается жалкая пародия. > У нас в России много "мирового опыта" так перенимается.
Потому как копируют обычно те, кто думать не умеет. Как обезьяны.
А подход Амазона вполне корректен и разумен. Во-первых заранее отбирают
тех, кто хочет у них работать настолько, что готовится к их экзамену.
Во-вторых, проверяют насколько человек может подготовиться, повторить
известные ему вещи, разобраться в новых, а потом на экзамене это показать.
В-третьих, не тратят ни свое время ни других, кому не особо они интересны.
А вот подход местных собеседователей поражает: "отсеять всех и
прособеседовать максимально большую толпу".
Здравствуйте, Veratu, Вы писали:
V>Спрашивать кучу вопросов, которые не имеют никакого отношения к твоей реальной работе — это сейчас самый последний писк моды в быдлоконторах. Если хочешь непременно там работать, придется потратить кучу времени на подготовку — но лучше поискать компанию, в которой нужны нормальные спецы, а не старательные кнопкодавы.
У меня другие оценки спецов Там, где требуется составление новых алгоритмов, поднятие новых идей, там есть челлендж, там работать интересно и таки да, нужно понимание работы кирпичиков — читай временные сложности. А написание какого-нить CRM и смежные задачи при помощи какого-нить супер-навороченного модного Framework-а, где 80% времени лазишь по мануалам, 10% кодируешь согласно мануалу и 10% тестируешь... Ну извини... это тривиально, нужно и да, это кнопкодавство.
Ну а часто проблема в том, что на место кнопкодавов ищут креативных специалистов, на место системных программистов ищут гуру в ООП тонкостях C++ и т. д. А потом возникает когнитивный диссонанс.
Здравствуйте, nile, Вы писали:
L>> Плохой пример. У моего отца ни одного ДТП небыло за 7 лет, работает в такси. Так вот буквально 2 или три недели назад так как жена сдаёт на права подсунул ему онлайн экзамен в ГАИ — 6 ошибок. Что делать права забирать?))) L>>И кстати при приёме на работу права не требовали. Спрашивали знание города. N>Так никто ж не спорит, что можно спокойно водить, ни разу в жизни не открывая ПДД. N>Но для опытного водителя не составит труда потратить пару недель на систематизацию базовых ПДД, ведь так? Опыт тут только поможет лучше понять их, переосмыслить. N>А работодателю будет проще, оперируя стандартными терминами, определить уровень соискателя.
Ясное дело — опытный водитель(тем более професионал — водитель такси!) всегда должен помнить с какого возраста разрешено сдавать на права категории А и разрешены ли на автобусах, выполняющих междугородние перевозки на передней оси шины восстановленные по второму классу ремонта... Это же базовые знания, основа, их на курсах дают!
Здравствуйте, Vzhyk, Вы писали:
V>Потому как копируют обычно те, кто думать не умеет. Как обезьяны. V>А подход Амазона вполне корректен и разумен. Во-первых заранее отбирают V>тех, кто хочет у них работать настолько, что готовится к их экзамену. V>Во-вторых, проверяют насколько человек может подготовиться, повторить V>известные ему вещи, разобраться в новых, а потом на экзамене это показать. V>В-третьих, не тратят ни свое время ни других, кому не особо они интересны.
V>А вот подход местных собеседователей поражает: "отсеять всех и V>прособеседовать максимально большую толпу".
Снова полностью согласен с тобой. В своих аргументах я "защищал" как раз подход Amazon, Google и Microsoft к рекрутингу, а не местных умельцев.
А ты критиковал местных. Отсюда и непонимание. Мир труд жвачка! :D
On 12.02.2013 20:44, nile wrote:
> Нет. Я всего лишь имел ввиду, что бумажка мало говорит о реальном опыте. > И лишь на основании нее невозможно понять, что из себя реально > представляет человек. > > Вот пример "от балды": > 2007-2012 > SuperSoft LTD. > Senior Software Developer. > Distributed SOA system for financial market. > Java, JBoss, Spring, EJB. > > Можно понять из этого уровень человека?
А не надо по бумажке оценивать. Бумажка это только повод пригласить.
А на собеседовании попросить человека рассказать о том что он делал, как
и почему. Причем, если сам не в теме, это еще лучше, заодно и узнаете,
как человек может объяснять то, что он делал. Главное в беседе
направлять его на то, чтобы он рассказывал, что именно он делал, а не
другие. А если сам в теме, то можно периодически вкидывать вопросы, а
почему вот так не попробовали, а вот какую фигню для этого и этого
фреймворка применяли, а почему. И т.д.
В итоге все очень хорошо видно, как человек работает, что умеет и как.
Причем прекрасно отсекаются те, кто больше совещались, чем делали — они
рассказывают по верхам, а вот в деталях сразу плывут.
> Нет, просто ты неверно меня понял.
Ок.
On 12.02.2013 20:47, Mystic wrote:
> У меня другие оценки спецов Там, где требуется составление новых > алгоритмов, поднятие новых идей, там есть челлендж, там работать > интересно и таки да, нужно понимание работы кирпичиков — читай временные > сложности.
Временные сложности — это всего-лишь три строчки таблички:
последовательность — линейная, дерево — логарифмическая (кстати, ну ка
скажи основание логарифма), хеш — в корректном случае константная.
Но, перевороты сферических коней (Абстрактных Списков), написание на
собеседовании не тривиальных контейнеров, реализации радикссортов и
выстраивания в ряд гомиков не имеют к понимаю временной сложности
никакого отношения.
> Ну а часто проблема в том, что на место кнопкодавов ищут креативных > специалистов, на место системных программистов ищут гуру в ООП тонкостях > C++ и т. д. А потом возникает когнитивный диссонанс.
Или как тут выше один кадр для софта для конференций (аудио, видео) ищет
системщиков я детальными знаниями внутренностей осей. Потом понятно
какой софт выходит. Почему так ищет, понятно, сам начинал когда-то
системщиком и уверен, что это альфа и омега программимрования.
On 12.02.2013 20:52, nile wrote:
> Снова полностью согласен с тобой. В своих аргументах я "защищал" как раз > подход Amazon, Google и Microsoft к рекрутингу, а не местных умельцев. > А ты критиковал местных. Отсюда и непонимание.
Ну да. Причем у этих гигантов четко видны цели, которые они преследуют
своими собеседованиями. И к ним идут люди собеседоваться, понимая что
будет на собеседовании и зачем.
Например, я понимая, кто и зачем им нужен и близко не попрусь в свои 45.
Зачем мне это надо?
12.02.2013 21:44, nile пишет:
> Вот пример "от балды": > 2007-2012 > SuperSoft LTD. > Senior Software Developer. > Distributed SOA system for financial market. > Java, JBoss, Spring, EJB. > > Можно понять из этого уровень человека?
Если цена подходящая — то я беру, заверните в бумажку пожалуйста.
Не, ну конечно надо будет с ним предварительно пообщаться — вдруг он
какой не такой окажется, или ненормальный вообще, но процентов на 80
можно сказать кто и что по 10-минутному разговору по телефону/в скайпе
(без всяких обращений списков в гномиков).
Остальное покажет испытательный срок.
Крупные конторы не могут позволить себе нанимать таким способом, ибо им
во-первых постоянно нужно много народу, а во-вторых никто не захочет
брать на себя ответственность при таком, с позволении сказать "процессе"
но тем лучше для меня.
Здравствуйте, Vzhyk, Вы писали:
V>Ну да. Причем у этих гигантов четко видны цели, которые они преследуют V>своими собеседованиями. И к ним идут люди собеседоваться, понимая что V>будет на собеседовании и зачем. V>Например, я понимая, кто и зачем им нужен и близко не попрусь в свои 45. V>Зачем мне это надо?
Да, целевая аудитория, требования и перспективы заранее понятны.
А в 45 можно собеседоваться на Senior или даже Principal, почему нет? Хотя на высокие должности скорее всего собеседуют уже в HQ-офисе, не уверен. И крупные компании предпочитают выращивать на высокие должности внутри компании.
Хотя тут кому что надо. Бросать все ради неочевидных перспектив в "колыбели демократии" конечно смысла нет.
Лично мне не нравится в России карьера технаря. Она стремительная, но недолгая.
3 года — сеньор, 5 лет — архитектор. К 30 годам достигается потолок по должности и зарплате (конечно есть исключения, но в целом картина такова).
В итоге большинство успешных технарей уходят в менеджеры. А те, кто остаются технарями, часто расцениваются как лузеры, которые не смогли выбиться в менеджеры. Опять же, за редким исключением.
На западе в 30 лет для технарей все только начинается.
Здравствуйте, Vzhyk, Вы писали:
V>On 12.02.2013 18:51, Гоги wrote:
>> Любитель Windows 2000 Ну или XP, как максимум V>Ну да, что тебя в них не удовлетворяет, кроме отсутсвия АЭРО (кстати это V>как-то связано с самолетами?).
Отсутствие BitLocker, медленная загрузка и уродская квадратная кнопка Start!
Здравствуйте, a_g_99, Вы писали:
__>Здравствуйте, lollipop, Вы писали:
L>> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях. __>Ну полагаю вы должны знать асимптотику до тех пор пока не переквалифицируетесь или вас не положат в гроб.
On 12.02.2013 21:29, nile wrote:
> Да, целевая аудитория, требования и перспективы заранее понятны. > А в 45 можно собеседоваться на Senior или даже Principal, почему нет? > Хотя на высокие должности скорее всего собеседуют уже в HQ-офисе, не > уверен. И крупные компании предпочитают выращивать на высокие должности > внутри компании. > Хотя тут кому что надо. Бросать все ради неочевидных перспектив в > "колыбели демократии" конечно смысла нет.
Во-во.
> Лично мне не нравится в России карьера технаря. Она стремительная, но > недолгая.
А тут у всех в общем-то карьера одинаковая, кроме чиновников и ментов.
Если бы мне было сейчас 25-29 я бы не раздумывая побежал бы
собеседоваться у этих гигантов, легально вывезут и работать научат. А
там за 5 лет уже прилично пристроишься. Как ты написал, в 30 только
начинается.
Если собеседование проводят "нормальные" люди, подобное могут спрашивать чтоб найти дополнительную сильную сторону кандидата, убедить себя в том что его стоит брать. Если же проводят "ненормальные", то я вообще не понимаю зачем они тратят свое и чужое время, самое за***ное по "гномикам" из всех встречавшихся мне собеседований, как оказалось, скрывало самую идиотскую из предлагаемых обязанностей (править GUI на Symbian).
Здравствуйте, hrensgory, Вы писали:
H>Остальное покажет испытательный срок.
Выгонять человека с испытательного срока очень дорого с точки зрения потраченных на него ресурсов. Кроме того, если нанятый на работу встанет в позу, придется оформлять много бумаг, чтобы потом вопросов не было. Нахрена такой геморрой?
Здравствуйте, Mystic, Вы писали:
M>У меня другие оценки спецов Там, где требуется составление новых алгоритмов, поднятие новых идей, там есть челлендж, там работать интересно и таки да, нужно понимание работы кирпичиков — читай временные сложности.
Мне уже интересно что я должен читать про временные сложности. А то я кажется не то читаю . Меня вот как то спросили, а какова сложность наиболее быстрой сортировки из тех, которую я знаю. Я ответил линейная. Сказали что гоню. Я говорю что могу доказать, смотрите radix sort. Сказали снова что гоню, и что если бы она была линейная, то мир был бы идеален. Короче я уже спорить начал, говорю что на деньги готов — перевели вопрос на другую тему, точнее уточнили что хотят in place. Я сказал про мерж сорт хип сорт и квиксорт за n log n и вроде удовлетворил (хотя радикс сорт вроде и на месте делается, но пусть считают что я ошибся). Но мне уже интересно, с каких порт радикс сорт стала нелинейной, что я пропустил . По идее то, я институт заканчивал скорее всего гораздо позже интервьюера, соответственно я более имею моральное право на ошибку.
Итого мне уже интересно, как радикс сорт может иметь нелинейную сложность ?
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях.
Смысл простой. Тот кто может на бумажке написать реализацию алгоритма дейкстры, тот с нашей банальщиной разделается легко. Народ же хочет телевизоры с 200 герцами, хотя глазами видит от силы кадров 20 в секунду.
Здравствуйте, lollipop, Вы писали:
L> Почему нельзя проверить? Есть же тестовое задание. Дать к примеру кусок кода доработать и посмотреть что получиться. По мне если человек именование переменных сделал по путю уже на джуниорскую позицию тянет. А то ведь знаете как оно бывает.... Но беда вся в том что это не HR потом будет в его коде ковыряться.
Уууу. Если человек сделал именование по путю, то можно сеньера сразу давать . Ибо очень мало тех, кто умеет именовать по путю. Блин, один раз попросил избавиться от magic numbers и вынести их в константы. В ответ получил final static int THREE = 3 . Чуть под стол не упал. И это практически сеньер с тремя годами опыта . Но зато структуры данных хорошо знает и сам язык .
Здравствуйте, Vzhyk, Вы писали:
V>Ну да, что тебя в них не удовлетворяет, кроме отсутсвия АЭРО (кстати это V>как-то связано с самолетами?).
Где DirectX 10 — 11? Где куча 64 битных драйверов (у меня 16 гб оперативки)? Плюс хочется чтоб 3d драйвер штатно поддерживал стереоскопический режим в большинстве 3d играх.
Здравствуйте, elmal, Вы писали:
L>> Почему нельзя проверить? Есть же тестовое задание. Дать к примеру кусок кода доработать и посмотреть что получиться. По мне если человек именование переменных сделал по путю уже на джуниорскую позицию тянет. А то ведь знаете как оно бывает.... Но беда вся в том что это не HR потом будет в его коде ковыряться. E>Уууу. Если человек сделал именование по путю, то можно сеньера сразу давать . Ибо очень мало тех, кто умеет именовать по путю. Блин, один раз попросил избавиться от magic numbers и вынести их в константы. В ответ получил final static int THREE = 3 . Чуть под стол не упал. И это практически сеньер с тремя годами опыта . Но зато структуры данных хорошо знает и сам язык .
Сеньера уже за выслугу лет дают? В любом случае 3 года — максимум мидл.
On 12.02.2013 23:55, qxWork wrote:
> H>Остальное покажет испытательный срок. > Выгонять человека с испытательного срока очень дорого с точки зрения > потраченных на него ресурсов. Кроме того, если нанятый на работу встанет > в позу, придется оформлять много бумаг, чтобы потом вопросов не было. > Нахрена такой геморрой?
"Эй, вы, задние, делай как я! Это значит — не надо за мной! Колея эта
только моя ..." (с) и т.п.
Никаких "много бумаг", кстати, на испытательном сроке оформлять не надо.
Здравствуйте, qxWork, Вы писали:
H>>Остальное покажет испытательный срок. W>Выгонять человека с испытательного срока очень дорого с точки зрения потраченных на него ресурсов. Кроме того, если нанятый на работу встанет в позу, придется оформлять много бумаг, чтобы потом вопросов не было. Нахрена такой геморрой?
Испытательный он на то и испытательный, что можно без лишних проблем уволить.
Для американских контор это конечно большие затраты на оформление виз, переезд и т.п. Поэтому и такая сложная процедура найма. А в местечковых конторах нет такой необходимости.
я недавно начал проводить собеседования и меня интересует данная тема.
дело в том что мы тоже спрашиваем про хешмап (правда косвенно). L>Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных.
и какие вопросы нужно задавать кандидату чтобы проверить эти факты?
Здравствуйте, nile, Вы писали:
N>А в 45 можно собеседоваться на Senior или даже Principal, почему нет?
Мне очень интересно, какого черта на сеньеров задают абсолютно такие же вопросы, как и для юниоров, только ожидается что человек будет более уверенно отвечать ? Почему то в большинстве по крайней мере российских контор считается, что сеньер — это тот, кто хорошо знает конкретные технологии. Соответственно если юниора можно простить за то, что он подзабыл какие параметры существуют у конструктора определенного класса, то сеньер такое забывать ну просто не имеет права .
Здравствуйте, TimurSPB, Вы писали:
TSP>Смысл простой. Тот кто может на бумажке написать реализацию алгоритма дейкстры, тот с нашей банальщиной разделается легко.
Если бы было так. В банальщине такого натворить могут, что мама не горюй. При этом на все стандартные вопросы отвечает уверенно и не задумываясь, ибо все знает наизусть. И даже на бумажке хорошо пишет.
Здравствуйте, elmal, Вы писали:
E>Если бы было так. В банальщине такого натворить могут, что мама не горюй. При этом на все стандартные вопросы отвечает уверенно и не задумываясь, ибо все знает наизусть. И даже на бумажке хорошо пишет.
Профессиональных проходильщиков собеседований можно отсеять только на испытательном сроке, с этим сложно что-то сделать.
Здравствуйте, nile, Вы писали:
N>Профессиональных проходильщиков собеседований можно отсеять только на испытательном сроке, с этим сложно что-то сделать.
Очень редко отсеивают. Во первых, во время испытательного срока человек только въезжает в проект и ожидания от него не такие большие. А во вторых — именно на испытательном сроке обычно люди очень и очень стараются. Так что кажутся даже производительнее своих коллег. И в третьих — новичок обычно ошибается не больше тех, кто в проекте давно. Их то нанимали тоже мы, и тоже по деталям знания языка и технологий. Так что увольнять нужно сразу всех. Но сейчас же кадровый голод, спецов не найти, только студенты хоть что то знают и чему то соответствуют, соответственно людей лучше текущих набрать невозможно .
Здравствуйте, hrensgory, Вы писали:
H>"Эй, вы, задние, делай как я! Это значит — не надо за мной! Колея эта H>только моя ..." (с) и т.п.
Прекрасное знание Высоцкого, но к чему это?
H>Никаких "много бумаг", кстати, на испытательном сроке оформлять не надо.
Это миф. Для того, чтобы уволить человека должны быть формальные основания, иначе можно огрести в суде. Правда, большинство на это кладет.
On 13.02.2013 11:01, qxWork wrote:
> H>"Эй, вы, задние, делай как я! Это значит — не надо за мной! Колея эта > H>только моя ..." (с) и т.п. > Прекрасное знание Высоцкого, но к чему это?
К тому, что я сразу написал что для большинства компаний такой подход не
годится, но тем лучше для меня.
> H>Никаких "много бумаг", кстати, на испытательном сроке оформлять не надо. > Это миф. Для того, чтобы уволить человека должны быть формальные > основания, иначе можно огрести в суде. Правда, большинство на это кладет.
И правильно делает. Для того, чтобы уволить человека, как не прошедшего
испытательный срок, никаких оснований не надо. Да он и сам поймёт, что
не вписался.
--
WBR,
Serge.
P.S. Вообще прикольно наблюдать, как тут люди защищают сортировку
гномиками, т.к. их компаниям (которые ну ни разу не гугль и не
микрософт) крайне важно "нанять лучших" и "не ошибиться". Прозреваю, что
корни подобного подхода — в древней статье одного известного софтверного
пидораса.
Здравствуйте, cvetkov, Вы писали:
C>Здравствуйте, lollipop, Вы писали:
C>я недавно начал проводить собеседования и меня интересует данная тема. C>дело в том что мы тоже спрашиваем про хешмап (правда косвенно). L>>Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных.
C>и какие вопросы нужно задавать кандидату чтобы проверить эти факты?
сертификаты можно показать, а трудовые книжки в россии ещё не отменили. Я незнаю я не HR потому и создал ветку так как не являюсь проф. проходителем интервью. И вопросы со 2 ого курса универа меня поразили. если честно я сторонник тестового задания и испытательного срока. Потому как сам насмотрелся на разных личностей. На испыталке человек обычно вкалывает и за месяц привыкает бомбить в постоянном ритме По тестовому заданию можно проверить что угодно. От кодинг стайл до работы соображалки. причём времени тратиться в 3 раза меньше чем на интервью. Но это техническая часть вопроса. возможно есть какие то спец. вопросы проверить вменяемость и усидчивость человека.
Здравствуйте, hrensgory, Вы писали:
H>К тому, что я сразу написал что для большинства компаний такой подход не H>годится, но тем лучше для меня.
ок
H>И правильно делает. Для того, чтобы уволить человека, как не прошедшего H>испытательный срок, никаких оснований не надо. Да он и сам поймёт, что H>не вписался.
Удачи вам не встретить придурка, которому очень нравится зарплата, и он что-то делает, но явно не так, как Вы ожидали, нанимая его.
H>P.S. Вообще прикольно наблюдать, как тут люди защищают сортировку H>гномиками, т.к. их компаниям (которые ну ни разу не гугль и не H>микрософт) крайне важно "нанять лучших" и "не ошибиться". Прозреваю, что H>корни подобного подхода — в древней статье одного известного софтверного H>пидораса.
Есть много компаний, для которых знание какой-нибудь технологии нужнее, чем умение писать производительный код, как следствие им нахрен не нужно устройство хэш-таблицы, но это отдельная история.
А что касается "нанять лучших", важно не это, а не нанять плохиз — это много потерянного времени и куча проблем.
Здравствуйте, dilmah, Вы писали:
D>радикс сорт зависит от битности объектов. Поэтому там логарифм этой битности (16, 32, 64 whatever) неявно зашит.
Да вообще то все сортировки зависят от битности объектов так или иначе. Ибо операции сравнения тоже не бесплатные, и неявных зависимостей везде будет достаточно. И если битность будет ого го какая, да и еще если возьмем наиболее сложный случай, то и с nlogn сортировками будет не все хорошо. А во вторых, там не логарифм битности будет, а кое что похуже, если я правильно понимаю.
Здравствуйте, nile, Вы писали:
N>Испытательный он на то и испытательный, что можно без лишних проблем уволить.
Проблем с увольнением на испытательном сроке не меньше (как бы даже не больше). Чтобы уволить человека с испытательного срока, если сотрудник сам этого не хочет, причина увольнения должна быть явно связана с тем что он провалил испытания.
Для этого, как минимум, должна быть официально утвержденная программа испытательного срока, утвержденная руководством, с которой новый сотрудник должен быть ознакомлен в первые же дни своей работы.
Причем содержание этой программы также может быть оспорено в суде, если эта программа испытаний слабо коррелирует с работой компании или показателями других сотрудников, занимающих аналогичные позиции в штате.
Далее вам будет необходимо с фактами в руках доказать в суде, что сотрудник провалил тот или иной пункт этой программы.
Короче говоря, сотруднику нужно очень сильно постараться чтобы его можно было уволить по такой статье.
А самое веселое, что если вы его уволите как не прошедшего испытательный срок, а он потом через годик выиграет суд, то компания будет обязана восстановить его в должности и выплатить заработную плату за этот период.
P.S. Кстати, вариант с заключением временного трудового договора на период испытательного срока тоже не прокатывает, т.к. если в суде будет доказано, что этот договор маскирует, по сути, испытательный срок бессрочного трудового договора, то он будет признан именно таковым.
On 12.02.2013 22:55, qxWork wrote:
> H>Остальное покажет испытательный срок. > Выгонять человека с испытательного срока очень дорого с точки зрения > потраченных на него ресурсов. Кроме того, если нанятый на работу встанет > в позу, придется оформлять много бумаг, чтобы потом вопросов не было. > Нахрена такой геморрой?
Выйграть в лотерею выгоднее?
On 13.02.2013 11:22, qxWork wrote:
> H>И правильно делает. Для того, чтобы уволить человека, как не прошедшего > H>испытательный срок, никаких оснований не надо. Да он и сам поймёт, что > H>не вписался. > Удачи вам не встретить придурка, которому очень нравится зарплата, и он > что-то делает, но явно не так, как Вы ожидали, нанимая его.
Спасибо. Я стараюсь )
> А что касается "нанять лучших", важно не это, а не нанять плохиз — это > много потерянного времени и куча проблем.
Именно раздувание сверх всякой меры этого вздорного опасения меня и
смешит. А попалось оно мне как раз в той статье первый раз.
On 12.02.2013 23:58, elmal wrote:
> Где DirectX 10 — 11? Где куча 64 битных драйверов (у меня 16 гб > оперативки)? Плюс хочется чтоб 3d драйвер штатно поддерживал > стереоскопический режим в большинстве 3d играх.
Ну в этом случае возможно, а очень редко играю и мне хватает DX9.
WinxXP x64 прекрасно поддерживает много памяти, по крайней мере матлаб
хорошо в ней живет. Проги 64-битные нормально писать и работают.
Т.е вывод, единственное для чего имеет смысл ставить новые винды — это
игрушки, но они же сволочи требуют и дорогого железа, т.е. это всё для
фанатов игрушек и большого папиного кошелька.
On 13.02.2013 9:17, cvetkov wrote:
> и какие вопросы нужно задавать кандидату чтобы проверить эти факты?
Интересно, сколько раз одно и тоже повторять. Просто попросите
рассказать, что именно человек делал, как и почему так, а не иначе.
On 13.02.2013 9:27, elmal wrote:
> N>А в 45 можно собеседоваться на Senior или даже Principal, почему нет? > Мне очень интересно, какого черта на сеньеров задают абсолютно такие же > вопросы, как и для юниоров, только ожидается что человек будет более > уверенно отвечать ?
У мелкомягких? Уверен, что не такие, но и дедов тащить отсюда в Америку
уверен, нафиг никому не надо. Конечно, если ты не Вапник или подобный ему.
> Почему то в большинстве по крайней мере российских > контор считается, что сеньер — это тот, кто хорошо знает конкретные > технологии.
Причин море и исторических в том числе. В результате абсолютно
бестолковый и безграмотный менеджмент у которого основаная задача, как
украсть у конторы и всеми силами удержаться на своем стуле.
On 13.02.2013 9:29, elmal wrote:
> Если бы было так. В банальщине такого натворить могут, что мама не > горюй. При этом на все стандартные вопросы отвечает уверенно и не > задумываясь, ибо все знает наизусть. И даже на бумажке хорошо пишет.
Это закономерно, человек хорошей памятью заменяет умение думать. Причем
хорошая память для устройства на контору важнее умения думать.
З.Ы. Вот только не надо, что задачки про гомиков показывают это умение.
Если человек не выучил решение стандартного набора таких задачек, а сам
решает их сходу, то писать проги он будет ужастно. Вы просто не сможете
понять, что и зачем он написал, ибо он очень умный и то что ему будет
казаться просто всем остальным будет казаться очень сложным.
On 13.02.2013 9:42, nile wrote:
> Профессиональных проходильщиков собеседований можно отсеять только на > испытательном сроке, с этим сложно что-то сделать.
А тут такая фишка прибезумном собеседовании все побоятся взять на себя
ответсвенность уволить такого. Как же, они так старательно готовили эти
собеседования, чтобы набирать только звезд, а тут такой облом. В итоге
контора и работает с такими "профессиональными проходильщиками".
З.Ы. И не надо говорить, что если контора 10-20 лет еще не развалилась
она эффективна и прибыльна, очень часто многие такие конторы все эти
года пилятт бабки или инвесторов или государство, причем те, кто
выделяет им деньги с каждым годом все больше и боьше бояться отказать
такой конторе, ибо в доле и бояться последствий.
On 13.02.2013 9:59, elmal wrote:
> Но сейчас же кадровый голод, спецов не > найти, только студенты хоть что то знают и чему то соответствуют, > соответственно людей лучше текущих набрать невозможно .
Добавь к этому основную цель многих собеседований: "отсеять".
Итого, кадрогового голода нет, но мы его будем создавать всеми силами,
причем это еще и разогревает рынок, что многим участникам рынка выгодно.
Понятно, что пузырь в один прекрасным момент лопнет, но когда это будет
никто не знает и надеется, что не скоро.
On 13.02.2013 10:20, lollipop wrote:
> Я незнаю я не HR потому и создал ветку так как не являюсь проф. > проходителем интервью.
Нынче такой тренд, хочешь устроиться становись им.
On 13.02.2013 10:22, qxWork wrote:
> Удачи вам не встретить придурка, которому очень нравится зарплата, и он > что-то делает, но явно не так, как Вы ожидали, нанимая его.
Показательный ответ. Я так понимаю, ты озвучивал политику на вашей
конторе при найме сотрудников?
Здравствуйте, Vzhyk, Вы писали:
V>Интересно, сколько раз одно и тоже повторять. Просто попросите V>рассказать, что именно человек делал, как и почему так, а не иначе.
Смешно то, что в этом случае процент отсева будет даже больше. Ибо большинство соискателей в ответ на этот вопрос будут говорить что то подобное — я разрабатывал программы на языка А пользуясь технологиями Б С и Д. Разрабатывание заключалось в кодировании по техзаданию бизнес логики и формочек, в лоб, строго по тому, как описывалось в туториоле без малейшей попытки это как то упростить и автоматизировать. Плюс занимался тем, что писал тесты, причем писал очень много тестов, вплоть до того, что писал тесты не сеттеры и геттеры. Вершиной трудовой деятельности и показателем квалификации является момент, когда он обнаружил, что в коде какой то нехороший человек неправильно переопределил хешкод, из за чего все страшно глючило, а также какой то нехороший человек неправильно выбрал структуры данных, из за чего все тормозило.
Здравствуйте, elmal, Вы писали:
E>Смешно то, что в этом случае процент отсева будет даже больше.
Так важно не количество, а качество. Если на 2 "новых" отсеянных быдлокодера (которого взяли бы при другой процедуре) будет приходиться один принятый новый опытный разработчик (которого отсеяли бы при другой процедуре), разве это плохо?
On 13.02.2013 11:45, elmal wrote:
> Смешно то, что в этом случае процент отсева будет даже больше. Ибо > большинство соискателей в ответ на этот вопрос будут говорить что то > подобное — я разрабатывал программы на языка А пользуясь технологиями Б > С и Д. Разрабатывание заключалось в кодировании по техзаданию бизнес > логики и формочек, в лоб, строго по тому, как описывалось в туториоле > без малейшей попытки это как то упростить и автоматизировать. Плюс > занимался тем, что писал тесты, причем писал очень много тестов, вплоть > до того, что писал тесты не сеттеры и геттеры. Вершиной трудовой > деятельности и показателем квалификации является момент, когда он > обнаружил, что в коде какой то нехороший человек неправильно > переопределил хешкод, из за чего все страшно глючило, а также какой то > нехороший человек неправильно выбрал структуры данных, из за чего все > тормозило.
Ну вот прекрасная характеристика навыков, умений и стиля работы
человека. Это 80-90% работы типичной програмерской конторы.
Дальше если человек доволен такой работой, все можно его брать на кучу
рутинных работ, где он будут четко все делать, как сказали без
проявления лишней инициативы.
Если же ему такая работа не нравилась, он сам расскажет почему и чем он
чочет заняться, дальше можно принимать решение, нужен ли вам такой
человек, который пол-года год будут вникать в тему и возможно принесет
большую пользу в будущем.
Если вам такой человек не нужен не берете, нужен берете. В чем проблема?
А процент отсева? И что? Рынок програмерский переполнен раб силой. Если
не предлагать 40000 в Москве (как пример всем понятный), то никаких
проблем найти подходящего.
З.Ы. Неужели вам не встречались люди с другим подходом к програмиссткой
работе. Я например так, как описано выше работать не могу (могу, елси
очень надо несколько недель, месяц, но не более — дальше вызывает
тошноту) и не работаю — увольняюсь и было бы очень хорошо, если бы об
этом еще на собеседовании или в вакансии писали. Раньше такая традиция
была — писали, например, "поддержка кода". Сейчас она издохла. Все ищут
звезд, собеседуют непонять на что, в итоге рутинная поддержка говнокода.
Здравствуйте, Vzhyk, Вы писали:
V>Показательный ответ. Я так понимаю, ты озвучивал политику на вашей V>конторе при найме сотрудников?
Нет, я озвучивал свое мнение. Точно также как я абсолютно убежден, что существует множество проектов, в которые человек, не способный "отсортировать гномиков" не подходит.
Здравствуйте, Abalak, Вы писали:
A>Сеньера уже за выслугу лет дают? В любом случае 3 года — максимум мидл.
Сейчас же такое время — куча талантов . В 20 юниор, в 22 мидл, в 23 сеньер. В 24 тим и тех лид, в 25 ПМ аль вообще какой директор. Далее в 27 снова мидл, уже в другой конторе. А в 30 на помоечку, ибо снова юниор .
Здравствуйте, nile, Вы писали:
N>Но утверждать, что все корпорации целенаправленно набирают только тупых болванчиков — это идиотизм. Цель любой компании — извлечение прибыли. Прибыль извлекается благодаря успешной конкуренции. А конкуренция обеспечивается качественными продуктами (и маркетингом, да), которые разрабатывают программисты.
Просто такие корпорации могут себе позволить отбирать лучших, но среди студентов, а потом неспеша его растить у себя. В итоге получаем дешёвого специалиста, дешёвого, т.к. после ВУЗа он стоит не много, лет через пять его требования возрастут, которого можно обучать под себя. При этом если он способный, то можно обучать более эффективно, чем это было бы на стороне и обучать только своим задачам, что при правильном подходе тоже выгоднее. Как у них реализовано, хз.
Если платить нормально, постоянно вдалбливать, что работать у нас это честь, то человек так до пенсии доработает. А если ещё и нагружать его маловостребованными на рынке задачами, то точно доработает.
Здравствуйте, Mystic, Вы писали:
M>У меня другие оценки спецов Там, где требуется составление новых алгоритмов, поднятие новых идей, там есть челлендж, там работать интересно и таки да, нужно понимание работы кирпичиков — читай временные сложности.
Это всё надо знать и понимать, но не помнить наизусть.
И в каждой конкретной задаче очень тщательно выбирать эти кирпичики, и перепроверять их сложность, а не полагаться на свою память.
Здравствуйте, nile, Вы писали:
N>Я приведу вам другой пример. Чтобы сдать на права, вы выучили ПДД, готовились к экзамену. N>Вы имеете 10 лет водительского стажа, и вроде бы нет необходимости подтверждать, что вы хороший водитель и знаете ПДД.
Забавно, но значительная часть опытных водителей не сдаст на права без подготовки. Просто многие формальные правила забываются, а используется практический опыт.
N>Но при приеме на работу таксистом вас просят объяснить поведение в конкретных ситуациях, руководствуясь ПДД.
Зачем ты упрощаешь задачу?
Здравствуйте, alzt, Вы писали:
N>>Но при приеме на работу таксистом вас просят объяснить поведение в конкретных ситуациях, руководствуясь ПДД. A>Зачем ты упрощаешь задачу?
Что я упростил? Не спрашивают каноническое доказательство теоремы. Спрашивают аргументированное решение задачи, для которого требуется алгоритмический background.
Здравствуйте, nile, Вы писали:
N>Так никто ж не спорит, что можно спокойно водить, ни разу в жизни не открывая ПДД. N>Но для опытного водителя не составит труда потратить пару недель на систематизацию базовых ПДД, ведь так? Опыт тут только поможет лучше понять их, переосмыслить.
Зачем? Если это будут требовать все работодатели, то наверное и потратит 2 недели перед устройством на работу. Только это никак не поможет на работе.
А так систематизация — это отдельный труд, не каждый способен обощить и систематизировать свой труд. Те кто подобные вещи делают, обычно книжки пишут, инструкции составляют, всякие руководства для начинающих. Но подобные вещи не сильно помогают их коллегам, которые имеют большой опыт, но не умеют проделывать подобной работы.
Для примера в момент развития авиации были лётчики асы, и от них требовалось обощить свой опыт и как-то систематизировать его, чтобы новеньким было легче. Не знаю все ли справлялись, но потом этот труд использовался для обучения молодых, у которых нет опыта.
N>А работодателю будет проще, оперируя стандартными терминами, определить уровень соискателя.
Не будет ему проще, он тоже ПДД не знает.
Здравствуйте, nile, Вы писали:
N>>>Но при приеме на работу таксистом вас просят объяснить поведение в конкретных ситуациях, руководствуясь ПДД. A>>Зачем ты упрощаешь задачу? N>Что я упростил?
Объяснить поведение проще (даже руководствуясь ПДД), чем вспомнить ПДД.
А на экзамене часто вообще забавные вопросы есть. Плюс всякие вещи, типы "под прикрытием трамвая" использовать нельзя.
Здравствуйте, Vzhyk, Вы писали:
>> и какие вопросы нужно задавать кандидату чтобы проверить эти факты? V>Интересно, сколько раз одно и тоже повторять. Просто попросите V>рассказать, что именно человек делал, как и почему так, а не иначе.
Ну вот занимался он автоматизацией бухгалтерии. я предментной области не знаю, архитектуру он не разрабатывал (следовательно за нее не отвечает), да и разглашать ничего не может. ну и о чем мы поговорим?
Здравствуйте, lollipop, Вы писали:
C>>и какие вопросы нужно задавать кандидату чтобы проверить эти факты? L> сертификаты можно показать,
у меня есть парочка, бумажка означающа что человек хоть что-то знает. нам нужны сениоры. L> а трудовые книжки в россии ещё не отменили.
ну допустим посмотрю я в трудовую книжку. увижу 10 лет стажа и что? он мог балду пинать все 10 лет. L>Я незнаю я не HR потому и создал ветку так как не являюсь проф. проходителем интервью.
просто хотелось конструктивной критики. L> И вопросы со 2 ого курса универа меня поразили.
меня обычно поражает то сколько людей не могут ответить на такие вопросы. L>если честно я сторонник тестового задания
хм. я отказываюсь их делать обычно. L>и испытательного срока.
On 13.02.2013 19:45, cvetkov wrote:
> Ну вот занимался он автоматизацией бухгалтерии. я предментной области не > знаю, архитектуру он не разрабатывал (следовательно за нее не отвечает), > да и разглашать ничего не может. ну и о чем мы поговорим?
Что за бред про разглашать не может. Даже если для ФСБ что делал, есть
то, что можешь рассказывать, а есть то, что не можешь. ДЛя рограммиста
же не требуется рассказывать, какие методы слежки он применял, для него
требуется рассказать, что именно он в програмерской части делал и как и
почему.
Если же чел сразу же прикрывается НДА, то идет лесом, потому как точно
ничего не делал.
On 13.02.2013 19:45, cvetkov wrote:
> меня обычно поражает то сколько людей не могут ответить на такие вопросы.
А если я у тебя чего из ТВ спрошу, что на втором курсе проходили? Или
матана?
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях.
Потому что, на удивление, многие её не знают И дело даже не в мелочах и тонкостязх, а так вот, по-большому: когда выбрать хеш-контейнер, а когда — отсортированный, например.
L> Навеяно тем что на последнем интервью начали спрашивать реализации стандартных коллекций ну и временные сложности алгоритмов. на моё удивление я всё же помню принцип работы сортировок ,поиска . Даже помню реализацию TreeMap. Однако не помню реализацию hashmap)
С реализациями тут вот ведь какая сложность: рассказать принцип — это одно. Зная, о чём вообще говоришь, рассказать не сложно. Реальные же реализации на много сложнее получаются, потому что приходится учитывать кучу мелочей, каких-то оптимиздингов. ИМХО, второе спрашивать перебор, если опять же речь не идёт о какой-то специфической вакансии, где вам придётся именно что реализовывать разные контейнеры.
L> Вобщем вопрос такой. спрсите у меня всё это сразу посе вуза) я бы ответил без вопросов. Даже с временными сложностями. Но вот как то быть полезным фирме врят ли бы смог) Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных. Но вот непомню я к примеру сколько будет временная сложность сортировки по Хоару. Непомню точную реализацию Hashmap . Скажите мне теперь в нормальной конторе делать нечего?
Как минимум, отсутствие таких знаний кажется странным (с учётом того, что требуется не именно что "точная" реализация, а сам принцып Hashmap) у опытного программиста. Как раз студенту, мне кажетя, можно простить того, что он не вызубрил материал. Но понять, как можно проработать пять например и более лет и не знать про то, на сколько быстрая сортировка выгоднее пузырька… Это расписано, кстати, в большущем количестве самой разнообразной профессиональной литературе: вы не читаете книги по программированию или читаете их по диагонале? Это [обычно] указано в документации, например List::Sort() — вы не читаете документацию? Как так получается, что эта информация ускользает от вас, не запоминается? Это и кажется странным.
Во-вторых, знания эти совсем не так бесполезны, как может показаться. Ну разве что вы вообще никогда не используете коллекции (а многие, учтите, используют, поэтому могут и требовать эти знания). Есть множество практических задач, в которых требуется выбрать из имеющихся (допустим, в стандартной библиотеке) какой-нить контейнер. Неужели вы будете читать документацию к каждому контейнеру / каждому методу контейнера прежде чем сделать выбор? Нет: зная, как этот контейнер будет использоваться и как устроены стандартные контейнеры делается выбор. Часто даже тут оказывается не просто решить, если стандартных контейнеров много :о)) а не имея минимальной теоритической подготовки, так совсем глухо выйдет :о(
Собеседуя, обычно про контейнеры обязательно спрашивал — ну очень подозрителоьно, когда таких знаний нет. Так же у нас вот в проекте очень широко используются различные словари/множества/списки и другие операции над данными, поэтому сказать, что спрашивал я что-то не имеющее отношение к работе я про себя не могу :о)
Help will always be given at Hogwarts to those who ask for it.
On 13.02.2013 20:20, _FRED_ wrote:
> L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл > спрашивать университетскую ерунду на собеседованиях. > > Потому что, на удивление, многие её не знают
Надеюсь, что проддвижение студней в манагеры в итоге приведет отрасль к
кризису и заставить ее от них зачистить.
> если опять же речь не идёт о какой-то специфической вакансии, где вам > придётся именно что реализовывать разные контейнеры.
А потом дрова АМД начинают сдуру отъедать всю память, просто выделять и
все и в итоге зависать.
> у опытного программиста. Как раз студенту, мне кажетя, можно простить > того, что он не вызубрил материал.
Но это нельзя простить опытному програмеру, он то обязан вызубрить все
теоретические сказки.
> Но понять, как можно проработать пять > например и более лет и не знать про то, на сколько быстрая сортировка > выгоднее пузырька…
То есть вам нужен чел, который за 5 лет только это и понял и не понял,
что не надо лепить свои велосипеды с квадратными колесами, если уже
сделаны и много с крыглыми?
> Во-вторых, знания эти совсем не так бесполезны, как может показаться. Ну > разве что вы вообще никогда не используете коллекции (а многие, учтите, > используют, поэтому могут и требовать эти знания).
Вы же требуете их писать в вашем коде, а не использовать.
> Собеседуя, обычно про контейнеры обязательно спрашивал — ну очень > подозрителоьно, когда таких знаний нет.
Таких это каких? 100% уверен, что четкого ответа у тебя не будет. Все и
закончиться, "вот таких".
Здравствуйте, Vzhyk, Вы писали:
V>З.Ы. Неужели вам не встречались люди с другим подходом к програмиссткой V>работе. Я например так, как описано выше работать не могу (могу, елси V>очень надо несколько недель, месяц, но не более — дальше вызывает V>тошноту) и не работаю — увольняюсь и было бы очень хорошо, если бы об V>этом еще на собеседовании или в вакансии писали. Раньше такая традиция V>была — писали, например, "поддержка кода". Сейчас она издохла. Все ищут V>звезд, собеседуют непонять на что, в итоге рутинная поддержка говнокода.
Такие люди не только встречались но они необходимы в команде. Ну я конечно по своему опыту сужу.
Более того для команды потеря такого человека — это проблема.
Именно поэтому ему будет позволено чуть больше вольностей ну и попытки удержать итд.
Но именно из всего этого следует то, что таких людей в команде не должно быть много. Не все по крайней мере.
Нужны и те, кто будут с радостью делать работу, от которой первых тошнит.
Зато первые будут делать ту работу, которую вторые не могут сделать при всем желании.
Все сбалансировано. Нужны и те и другие и одни не могут без других.
Но вторых нужно больше. Как минимум их больше нужно нанимать с учетом текучки. Их то никто удерживать не будет.
И по понятным причинам им проще пройти собеседование.
А вот если все таки уволился(после всех попыток со стороны компании его удержать) человек из первой категории(описанной Вами)
то новому кандидату на эту позицию на собеседовании достается зато потом — соответственно.
Я конечно не уверен, что это очень существенная причина некоторой юниор-ориентированности собеседований.
Но как минимум упомянуть о ней стоит. Тем более что этот аспект еще не затрагивали.
On 13.02.2013 21:33, robin_of_the_wood wrote:
> А вот если все таки уволился(после всех попыток со стороны компании его > удержать) человек из первой категории(описанной Вами) > то новому кандидату на эту позицию на собеседовании достается зато потом > — соответственно.
Причем, если приходит на собеседования человек, подобный уволившемуся,
то такое собеседование он не проходит, а проходят из другой категории.
Причина то понятна — страх ответсвенности. Нужно взять кого-то ого-го, а
как его взять не знают. Кроме того кажется, что эти ого-го знают все
учебники наизусть, а в реальности совсем не так, такие наобоорот
учебники знают хуже тех, кто просто сидит и кодит, что сказали.
В итоге взять того, кого нужно не могут и плачутся о том, что
квалифицированных кадров не хватает. А с другой стороны, скажем так,
"творчыя адзiнкi" не могут найти работу.
Ну и понятно, вытекающие из этого срачи тут.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, Mystic, Вы писали:
E>Итого мне уже интересно, как радикс сорт может иметь нелинейную сложность ?
Я бы попросил написать линейную реализацию
[quote]
template <class RandomAccessIterator, class Compare>
void radix_sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
[/quote]
Но в целом для меня это хороший повод поговорить о смысле жизни и вообще, понять, разбирается ли кандидат в этом вопросе. Может быть у него можно поучиться? А может просто нахватался. Но поправил, что у radix-сортировка в общем виде сложность таки O(kN), и k не всегда константа.
Здравствуйте, Vzhyk, Вы писали:
V>Временные сложности — это всего-лишь три строчки таблички:
Это не поможет посчитать сложность чего нетабличного
V>(кстати, ну ка скажи основание логарифма)
>> Ну а часто проблема в том, что на место кнопкодавов ищут креативных >> специалистов, на место системных программистов ищут гуру в ООП тонкостях >> C++ и т. д. А потом возникает когнитивный диссонанс. V>Или как тут выше один кадр для софта для конференций (аудио, видео) ищет V>системщиков я детальными знаниями внутренностей осей. Потом понятно V>какой софт выходит. Почему так ищет, понятно, сам начинал когда-то V>системщиком и уверен, что это альфа и омега программимрования.
Здравствуйте, Vzhyk, Вы писали:
V>Причем, если приходит на собеседования человек, подобный уволившемуся, V>то такое собеседование он не проходит, а проходят из другой категории. V>Причина то понятна — страх ответсвенности. Нужно взять кого-то ого-го, а V>как его взять не знают. Кроме того кажется, что эти ого-го знают все V>учебники наизусть, а в реальности совсем не так, такие наобоорот V>учебники знают хуже тех, кто просто сидит и кодит, что сказали. V>В итоге взять того, кого нужно не могут и плачутся о том, что V>квалифицированных кадров не хватает. А с другой стороны, скажем так, V>"творчыя адзiнкi" не могут найти работу. V>Ну и понятно, вытекающие из этого срачи тут.
Ну у меня по-разному бывало. Причем сильно.
Запомнилось собеседование у двух молодых румяных и очень довольного вида парней.
Казалось что сам факт попадания в собеседователи их очень радовал.
Так вот они не спросили абсолютно ничего про проекты, которых с десяток тогда уже у меня было.
А было и совсем по-другому.
Когда все собеседование проходило в форме беседы на тему задач и проблем моих проектов.(Вы кстати описывали подобный подход довольно детально)
И акцент как и в Вашем описании ставился именно на "почему"(Кстати как в этой дискуссии уже замечали я не отвечал "так шеф приказал" потому как принимал активное участие во многих задач. И возможно поэтому беседа была интересной)
Причем между фраз задавались и несколько вопросов по языку и по командной работе и по процессу разработки.
Но все это как-то не портило атмосферы именно интересной беседы на технические темы.
До сих пор помню позитивное настроение от процесса(результат то еще был не известен)
Вот такие вот разные были ситуации.
И я сейчас, вспоминая эти случаи, думаю что кроме всего прочего в первом случае парни скорее всего проводили свое первое собеседование а во втором случае у человека был немалый опыт а возможно даже талант.
Здравствуйте, Vzhyk, Вы писали:
V>On 13.02.2013 12:58, qxWork wrote:
>> Нет, я озвучивал свое мнение. V>То есть тебя к собеседованиям на оной конторе не допускают?
С чего бы?
Здравствуйте, elmal, Вы писали:
E>Мне уже интересно что я должен читать про временные сложности. А то я кажется не то читаю . Меня вот как то спросили, а какова сложность наиболее быстрой сортировки из тех, которую я знаю. Я ответил линейная. Сказали что гоню. Я говорю что могу доказать, смотрите radix sort.
Да , запросто может быть линейной и инплейсовой, например сортируем односвязный список байтов. Также очевидно линейной будет "counting sort".
Единственное "Но" эта сложность линейная но с амортизацией. Например накладные расходы на радикс для сортировки десятка значений могут быть больше чем сортировка пизирьком.
Здравствуйте, SkyDance, Вы писали:
V>>А потом дрова АМД начинают сдуру отъедать всю память, просто выделять и V>>все и в итоге зависать.
SD>Ладно б дрова, а то ведь — настроечная утилита.
... представляющая собой окно с тремя кнопками. Тут даже эпитет про руки из зеппы не подходит
On 13.02.2013 22:38, qxWork wrote:
>>> Нет, я озвучивал свое мнение. > V>То есть тебя к собеседованиям на оной конторе не допускают? > С чего бы?
Тогда ты вредишь конторе ибо проводишь собеседования вопреки политики
конторы.
On 14.02.2013 2:33, SkyDance wrote:
> Ладно б дрова, а то ведь — настроечная утилита. К дровам отношения не имеет.
Если бы. В двухмониторной конфигурации поднимаешь rdp к себе же и все.
Несколько минут, наверное sleep унутрях у них где-то в синхронизации, и
все — память кончилась.
А чего стоит отъедание 5% экрана от TV и установка бредового разрешения
там и единственный способ исправить ставить их угребищную утилиту
управления дровами и то не во всех версиях ее это возможно.
Про нерабочий OpenCL уже молчу, но зато небось все там сходу собственные
контейнеры ваяют, чуть что.
Здравствуйте, Vzhyk, Вы писали:
V>Тогда ты вредишь конторе ибо проводишь собеседования вопреки политики V>конторы.
Политика конторы заключается в том, чтобы не мешать успешным проектам, так что я ей только помогаю.
On 14.02.2013 10:53, qxWork wrote:
> Политика конторы заключается в том, чтобы не мешать успешным проектам, > так что я ей только помогаю.
Да нет, отсевая опытных, ты именно что мешаешь. Просто у вас достаточно
крепкое ядро, которое раньше набрали, на нем и держитесь.
Здравствуйте, elmal, Вы писали:
V>>Интересно, сколько раз одно и тоже повторять. Просто попросите V>>рассказать, что именно человек делал, как и почему так, а не иначе. E>Смешно то, что в этом случае процент отсева будет даже больше.
Вообще меня искренне удивляет количество людей на форуме искренне считающих, что по рассказу о том, что человек делал можно определить его квалификацию.
например я сейчас наблюдаю пару десятков программистов квалификации от "кандидат на увольнение" до "способен в одиночку поднять сложный проект". они все работают над одним проектом и рассказывать о том, что они делали будут очень похоже. Причем тот самый кандидат на увольнение раскажет красочнее и убедительнее всех.
Здравствуйте, genre, Вы писали:
G>например я сейчас наблюдаю пару десятков программистов квалификации от "кандидат на увольнение" до "способен в одиночку поднять сложный проект". они все работают над одним проектом и рассказывать о том, что они делали будут очень похоже. Причем тот самый кандидат на увольнение раскажет красочнее и убедительнее всех.
Рассказать то расскажет, но будет плавать в деталях почему сделал именно так и не иначе. Ему можно навскидку — а почему б не сделать вот именно так (предложить свой вариант) ? Или спросить какие проблемы были, как пришли к этому решению и тому подобное. Не расскажет достоинства и недостатки текущего решения, и не сможет предложить новое, более правильное с высоты своего текущего опыта решение. Ведь никто не рьязывает верить на слово, если человек скажет что это именно он там движок поисковых запросов Гугла текущий написал. А спросить о деталях, чем не устраивал старый, как пришли к новому — тут уже тот, кто этим реально не занимался и только сбоку стоял, ни хрена не сможет.
Здравствуйте, elmal, Вы писали:
E>Рассказать то расскажет, но будет плавать в деталях почему сделал именно так и не иначе. E>Ему можно навскидку — а почему б не сделать вот именно так (предложить свой вариант) ? Или спросить какие проблемы были, как пришли к этому решению и тому подобное. Не расскажет достоинства и недостатки текущего решения, и не сможет предложить новое, более правильное с высоты своего текущего опыта решение. Ведь никто не рьязывает верить на слово, если человек скажет что это именно он там движок поисковых запросов Гугла текущий написал. А спросить о деталях, чем не устраивал старый, как пришли к новому — тут уже тот, кто этим реально не занимался и только сбоку стоял, ни хрена не сможет.
еще раз. есть команда работает над одним проектом. все в курсе, что и как делается. на уровне дизайна (обсуждения), на уровне кода (ревью). все он сможет, все решения принимались при нем, во всех обсуждениях он принимал участие, код он смотрел и ревьювил. Знания о том, что как и почему в одном проекте у всех примерно одинаково и рассказ об этом зависит больше от коммуникативных способностей конкретно человека, чем от его умения писать хороший код.
Здравствуйте, genre, Вы писали:
G>еще раз. есть команда работает над одним проектом. все в курсе, что и как делается. на уровне дизайна (обсуждения), на уровне кода (ревью). все он сможет, все решения принимались при нем, во всех обсуждениях он принимал участие, код он смотрел и ревьювил. Знания о том, что как и почему в одном проекте у всех примерно одинаково и рассказ об этом зависит больше от коммуникативных способностей конкретно человека, чем от его умения писать хороший код.
Если он так все хорошо понимает и знает, во всем участвовал, значит он знает предмет не хуже других членов команды. А коммуникативные способности это еще и дополнительный плюс. Интервьюер правильно сделает, что выберет его.
А если он только делал вид, что работает, а на деле халтурил, то либо это выявится на вопросах в ходе собеседования, либо уже в процессе испытательного срока (а может и позже). Ну что поделаешь, не бывает идеальных решений. Нужно выбирать меньшее зло.
Здравствуйте, nile, Вы писали:
N>Если он так все хорошо понимает и знает, во всем участвовал, значит он знает предмет не хуже других членов команды. А коммуникативные способности это еще и дополнительный плюс. Интервьюер правильно сделает, что выберет его.
Знать предмет и быть способным написать хороший код это разные вещи, разве это не очевидно?
Вот еще пример, я когда-то консультировал другую команду, делавшую проект очень похожий на тот в котором мне доводилось учавствовать, но на другом языке. Я тебя уверяю, я в красочных подробностях расскажу тебе о всех решениях, что принимались в том проекте. Но ни строчки нормального кода на том языке не напишу.
N>А если он только делал вид, что работает, а на деле халтурил, то либо это выявится на вопросах в ходе собеседования, либо уже в процессе испытательного срока (а может и позже). Ну что поделаешь, не бывает идеальных решений. Нужно выбирать меньшее зло.
Да на каких таких вопросах это выявится? Рассказывает тебе человек почему сдизайнили так, а не иначе, проблемы которые были преодолены. Как ты из этого всего поймешь, что проблемы преодолевал сосед справа, а дизайнил сосед слева?
Про испытательный срок тут уже все сказали. И уволить не так уж просто, да и понят не всегда возможно.
Здравствуйте, genre, Вы писали:
G>Про испытательный срок тут уже все сказали. И уволить не так уж просто, да и понят не всегда возможно.
Волков бояться — в лес не ходить. Давайте вообще никого не будем на работу брать, а вдруг он нам не понравится и придется его увольнять, а это геморно.
Ведь нет 100% гарантии что сработаемся. Вдруг трудолюбивый да конфликтный. А вдруг коммуникабельный, но лентяй. А вдруг...
Люди не роботы. Надо просто отсекать распространенные случаи, а экзотику оставить для погрешности.
On 14.02.2013 13:52, genre wrote:
> Причем тот самый кандидат на увольнение > раскажет красочнее и убедительнее всех.
Нет, просто ты не умеешь слушать. Ты как тест, надо поставить правильные
птички и ты удовлетворишься.
On 14.02.2013 15:05, genre wrote:
> еще раз. есть команда работает над одним проектом. все в курсе, что и > как делается. на уровне дизайна (обсуждения), на уровне кода (ревью). > все он сможет, все решения принимались при нем, во всех обсуждениях он > принимал участие, код он смотрел и ревьювил. Знания о том, что как и > почему в одном проекте у всех примерно одинаково и рассказ об этом > зависит больше от коммуникативных способностей конкретно человека, чем > от его умения писать хороший код.
Жесть. Ну не может такого быть. Ты просто не в курсе деталей проекта,
поэтому он тебе и кажется одним сполошным пятном. Вот ты точно не
расскажешь, если попросить.
On 14.02.2013 15:11, nile wrote:
> А если он только делал вид, что работает, а на деле халтурил, то либо > это выявится на вопросах в ходе собеседования,
Да ну, плывут такие сходу, чуть поглубже копнешь, обычно заканчивается
"ну вот так вот сделали", а почему не знает.
Здравствуйте, Vzhyk, Вы писали:
>> Причем тот самый кандидат на увольнение >> раскажет красочнее и убедительнее всех. V>Нет, просто ты не умеешь слушать. Ты как тест, надо поставить правильные V>птички и ты удовлетворишься.
ты можешь не утруждать себя ответами мне. твое мнение мне известно и совершенно не интересно.
Здравствуйте, nile, Вы писали:
G>>Про испытательный срок тут уже все сказали. И уволить не так уж просто, да и понят не всегда возможно. N>Волков бояться — в лес не ходить. Давайте вообще никого не будем на работу брать, а вдруг он нам не понравится и придется его увольнять, а это геморно. N>Ведь нет 100% гарантии что сработаемся. Вдруг трудолюбивый да конфликтный. А вдруг коммуникабельный, но лентяй. А вдруг...
ну то есть по сути вопроса возражений больше нет?
N>Люди не роботы. Надо просто отсекать распространенные случаи, а экзотику оставить для погрешности.
ясно дело. только так и непонятно почему предлагается не отсекать людей не способных решить простейшие задачи по специальности.
Здравствуйте, genre, Вы писали:
G>ясно дело. только так и непонятно почему предлагается не отсекать людей не способных решить простейшие задачи по специальности.
Лучше сделать проще. Нам кто нужен? Сильный программист. Соответственно в переговорной ставим штангу, и всем, кто не способен выжать 150 килограмм — no hire! А то ведь и тот, кто в состоянии что угодно решить — он же может лениться. А тут четкая уверенность что человек не лентяй, ибо поддерживает себя в хорошей форме.
Здравствуйте, genre, Вы писали:
G>ну то есть по сути вопроса возражений больше нет?
По сути не сушествует идеального подхода.
Знание базовых алгоритмов не гарантирует, что собеседуемый является хорошим работником. Это всего лишь гарантирует, что он знает базовые алгоритмы. Сможет ли он применить их в реальной жизни — вопрос открытый. Ориентируется ли он в реальных задачах, зачастую нечетко сформулированных — далеко не факт.
Большой опыт участия в сложных проектах не гарантирует, что собеседуемый является хорошим кодером. Это всего лишь гарантирует, что у него хороший кругозор и он владеет предметной областью на экспертном уровне (ну т.е. может посоветовать, выбрать правильное направление, но при этом может выдать некачественный код).
Какой выход? Надо комбинировать оба подхода.
1. Обсудить предыдущий опыт в деталях
2. Предложить тестовое задание, и обсудить его решение, с написанием кода. Но задание необязательно должно быть академическим и алгоритмическим. Это вполне может быть и реальная задача из предстоящего проекта.
3. Собеседование проводят несколько человек. На что не обратит внимание один, заметит другой. В комплексе получим более-менее объективную картину.
Собственно, многие крупные конторы действуют именно по этому принципу.
Здравствуйте, nile, Вы писали:
N>По сути не сушествует идеального подхода. N>Знание базовых алгоритмов не гарантирует, что собеседуемый является хорошим работником. Это всего лишь гарантирует, что он знает базовые алгоритмы. Сможет ли он применить их в реальной жизни — вопрос открытый. Ориентируется ли он в реальных задачах, зачастую нечетко сформулированных — далеко не факт.
ну я и не утверждаю, что знание базовых вещей что-то гарантирует. тут в другую сторону — незнание базовых вещей говорит, что скорее всего с человеком что-то не так. даже не незнание, а неспособность решить какие-то простейшие задачи.
N>Большой опыт участия в сложных проектах не гарантирует, что собеседуемый является хорошим кодером. Это всего лишь гарантирует, что у него хороший кругозор и он владеет предметной областью на экспертном уровне (ну т.е. может посоветовать, выбрать правильное направление, но при этом может выдать некачественный код).
N>Какой выход? Надо комбинировать оба подхода. N>1. Обсудить предыдущий опыт в деталях N>2. Предложить тестовое задание, и обсудить его решение, с написанием кода. Но задание необязательно должно быть академическим и алгоритмическим. Это вполне может быть и реальная задача из предстоящего проекта. N>3. Собеседование проводят несколько человек. На что не обратит внимание один, заметит другой. В комплексе получим более-менее объективную картину.
Здравствуйте, Vzhyk, Вы писали:
:
>> меня обычно поражает то сколько людей не могут ответить на такие вопросы. V>А если я у тебя чего из ТВ спрошу, что на втором курсе проходили? Или V>матана?
не проблема, точных формулировок я может и не вспомню, но поддержать разговор смогу.
но это к делу не относится, мы спрашиваем вопросы относящиеся к специализации и имеющие, хоть и косвенное, но отношение к исполняемым обязанастям.
Здравствуйте, Vzhyk, Вы писали:
>> Ну вот занимался он автоматизацией бухгалтерии. я предментной области не >> знаю, архитектуру он не разрабатывал (следовательно за нее не отвечает), >> да и разглашать ничего не может. ну и о чем мы поговорим? V>Что за бред про разглашать не может. Даже если для ФСБ что делал, есть V>то, что можешь рассказывать, а есть то, что не можешь. ДЛя рограммиста V>же не требуется рассказывать, какие методы слежки он применял, для него V>требуется рассказать, что именно он в програмерской части делал и как и V>почему.
ну NDA разные бывают. а по поводу первых пунктов возражения есть? V>Если же чел сразу же прикрывается НДА, то идет лесом, потому как точно V>ничего не делал.
ну я пошол
Здравствуйте, Vzhyk, Вы писали:
V>Да нет, отсевая опытных, ты именно что мешаешь. Просто у вас достаточно V>крепкое ядро, которое раньше набрали, на нем и держитесь.
Спасибо, что глаза открыл. Я-то мучался, отчего ж мы еще держимся...
On 14.02.2013 19:32, cvetkov wrote:
> не проблема, точных формулировок я может и не вспомню, но поддержать > разговор смогу.
Ну-ну. Главное верить. Ну например, расскажи мне о EM алгоритме, а
иначе, если не знаешь, как ты им пользоваться будешь. Ладно упрощу,
расскажи мне алгоритм Витерби. И т.д. Просто в отличие от многих
недоманагеров тут я подобной глупостью никогда не страдал.
> но это к делу не относится, мы спрашиваем вопросы относящиеся к > специализации и имеющие, хоть и косвенное, но отношение к исполняемым > обязанастям.
А это вопросы непосредственно по работе, а не косвенно.
Здравствуйте, genre, Вы писали:
G>еще раз. есть команда работает над одним проектом. все в курсе, что и как делается. на уровне дизайна (обсуждения), на уровне кода (ревью). все он сможет, все решения принимались при нем, во всех обсуждениях он принимал участие, код он смотрел и ревьювил. Знания о том, что как и почему в одном проекте у всех примерно одинаково и рассказ об этом зависит больше от коммуникативных способностей конкретно человека, чем от его умения писать хороший код.
Так брать надо. Если человек понимает не только в своей области ответственности, но и во всём проекте, регулярно делает ревью сам и подвергается, видел хороший дизайн, работал в организации с хорошо поставленными процессами, да ещё и коммуникабельный.
Непонятно, кто вам нужен.
Во многих местах можно наблюдать, что архитектуры системы как таковой нет, кто чем занимается никто не знает и разобраться в коде, кроме самого автора никто не может. Код никого не волнует, поэтому о кодревью никто не слышал. Ничего рассказать о проекте человек не сможет, зато сможет описать как сам делал велосипедный контейнер, который чуть лучше стандартного, но имеет много багов.
Здравствуйте, Vzhyk, Вы писали:
V>Жесть. Ну не может такого быть. Ты просто не в курсе деталей проекта, V>поэтому он тебе и кажется одним сполошным пятном. Вот ты точно не V>расскажешь, если попросить.
Напомнило эпизод с английским. В школе ещё сдавал экзамен по английскому языку, там зачем-то должна была приехать какая-то проверка, которая проверяет не столько меня, но и главным образом учителя. Если всё будет совсем плохо, то и ученикам поставят оценки ниже.
И учитель говорит нам — вы главное поувереннее отвечайте, если не знаете ничего по билету, рассказываете просто что знаете, всё равно в коммиссии все немецкий учили.
Здравствуйте, alzt, Вы писали:
A>Так брать надо. Если человек понимает не только в своей области ответственности, но и во всём проекте, регулярно делает ревью сам и подвергается, видел хороший дизайн, работал в организации с хорошо поставленными процессами, да ещё и коммуникабельный. A>Непонятно, кто вам нужен.
понимает по всем проекте может быть от принимал все ключевые решения, до наблюдал как другие принимали эти решения
делает ревью — от находит кучу ошибок до просто долго смотрит в чужой код лишь бы ничего не делать
видел хороший дизайн — в слове видел слишком много ошибок. должно быть "делал".
ну и тд.
меня даже радует, что так много людей придерживаются мнения, что этого достаточно. Это дает мне шанс на то, что все программисты обладающие перечисленными выше качествами, но при этом категорически не умеющие думать, решать задачи и писать хороший код рано или поздно скопятся где-то вокруг тебя в вжика, а мне повезет работать с нормальными людьми.
Здравствуйте, genre, Вы писали:
G>видел хороший дизайн — в слове видел слишком много ошибок. должно быть "делал". G>ну и тд.
Проблема в том, что весьма мало людей просто видели хороший дизайн и хороший код, не то чтоб это все делать. В результате будут искренне убеждены, что то, что у них сейчас есть — оно великолепно, и они превосходные специалисты. Они может даже и видели, но не смогли отличить хороший дизайн от плохого. Ибо если видел хороший дизайн — будешь потом стремиться сам его повторить, а то и сделать лучше того, что видел. Если же не видел такого, то пока сможешь поставить перед собой подобную планку — пройдет лет 20-30, и ты хоть обчитайся вводных книжек по базовым алгоритмам и деталям каких то технологий, хоть наизусть это все выучи — все равно так и не научишься нормально дизайнить и писать нормальный код.
Здравствуйте, genre, Вы писали:
G>меня даже радует, что так много людей придерживаются мнения, что этого достаточно. Это дает мне шанс на то, что все программисты обладающие перечисленными выше качествами, но при этом категорически не умеющие думать, решать задачи и писать хороший код рано или поздно скопятся где-то вокруг тебя в вжика, а мне повезет работать с нормальными людьми.
Мы обсуждаем сферических коней в вакууме. Где бы найти этих гениальных лентяев, которые так хорошо разбираются в предмете, при этом ничего не делая.
Если человек сам ничего не делал, то это все равно вскроется, если копнуть глубже (и при условии, что интервьюер ориентируется в теме).
Если интервьюер не может определить уровень компетентности соискателя, может проблема в интервьюере и он сам не может понять, кто ему нужен?
Здравствуйте, Vzhyk, Вы писали:
V>On 14.02.2013 19:32, cvetkov wrote:
>> не проблема, точных формулировок я может и не вспомню, но поддержать >> разговор смогу. V>Ну-ну. Главное верить. Ну например, расскажи мне о EM алгоритме
Хороший вопрос, поддерживаю
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Здравствуйте, elmal, Вы писали:
E>Проблема в том, что весьма мало людей просто видели хороший дизайн и хороший код, не то чтоб это все делать. В результате будут искренне убеждены, что то, что у них сейчас есть — оно великолепно, и они превосходные специалисты. Они может даже и видели, но не смогли отличить хороший дизайн от плохого. Ибо если видел хороший дизайн — будешь потом стремиться сам его повторить, а то и сделать лучше того, что видел. Если же не видел такого, то пока сможешь поставить перед собой подобную планку — пройдет лет 20-30, и ты хоть обчитайся вводных книжек по базовым алгоритмам и деталям каких то технологий, хоть наизусть это все выучи — все равно так и не научишься нормально дизайнить и писать нормальный код.
бесспорно, "видел" лучше чем "не видел". но "видел" хуже чем "делал".
в этом же форуме многие склонны между последними ставить знак равенства.
N>Если человек сам ничего не делал, то это все равно вскроется, если копнуть глубже (и при условии, что интервьюер ориентируется в теме).
насколько глубже?
что конкретно надо спрашивать у человека, который рассказывает, что работал в таком-то большом проекте, за последние полгода сделал такие-то фичи.
On 15.02.2013 14:17, genre wrote:
> насколько глубже? > что конкретно надо спрашивать у человека, который рассказывает, что > работал в таком-то большом проекте, за последние полгода сделал такие-то > фичи.
Вот и спрашивать про эти фичи. Пойми меня интересует не его
деятельность, а только то что он сделал, как и почему.
А глубже? До тех пор пока не объяснит в деталях. Знаю тему, хорошо, не
знаю, еще лучше, будет объяснять до тех пор, пока не пойму. Если не
сможет объяснить что он сделал, как и почему пойдет лесом — зачем такие
работники, которые не понимают, что делают. Мы же не кубометры грунта
выдаем на гора.
Здравствуйте, genre, Вы писали:
N>>Если человек сам ничего не делал, то это все равно вскроется, если копнуть глубже (и при условии, что интервьюер ориентируется в теме).
G>насколько глубже? G>что конкретно надо спрашивать у человека, который рассказывает, что работал в таком-то большом проекте, за последние полгода сделал такие-то фичи.
Спросите про проблемы, которые были на проекте.
Про нерешенные спросите. Почему не решили. Что перепробовали. Почему именно это.
Про те что решали-решили. Опять же что пробовали, почему выбрали именно конкретный вариант.
И активность человека и его вклад и его роль очень сильно прояснятся.
Здравствуйте, robin_of_the_wood, Вы писали:
___>Спросите про проблемы, которые были на проекте. ___>Про нерешенные спросите. Почему не решили. Что перепробовали. Почему именно это. ___>Про те что решали-решили. Опять же что пробовали, почему выбрали именно конкретный вариант. ___>И активность человека и его вклад и его роль очень сильно прояснятся.
еще раз. есть команда, есть проект, все в курсе всего. в курсе решаемых в данный момент задач, проблем итд. нормальная командная работа.
то есть на все перечисленные выше вопросы ответ у всех примерно один, отличие в умении формулировать.
а уровень программистов — радикально разный. но пока на уровень кода не опустишься — не поймешь этого.
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях. L> Навеяно тем что на последнем интервью начали спрашивать реализации стандартных коллекций ну и временные сложности алгоритмов. на моё удивление я всё же помню принцип работы сортировок ,поиска . Даже помню реализацию TreeMap. Однако не помню реализацию hashmap) L> Вобщем вопрос такой. спрсите у меня всё это сразу посе вуза) я бы ответил без вопросов. Даже с временными сложностями. Но вот как то быть полезным фирме врят ли бы смог) Сейчас когда за плечами куча сданных проектов чувствуються силы и понимание. Есть пару сертификатов международно признанных. Но вот непомню я к примеру сколько будет временная сложность сортировки по Хоару. Непомню точную реализацию Hashmap . Скажите мне теперь в нормальной конторе делать нечего?
Странный какой-то вопрос.
Вообще-то знание сложности алгоритмов/контейнеров стандартной библиотеки — это базовые знания, типа жи/ши, как-то даже неудобно это обсуждать
Как же ты тогда сможешь сделать обоснованный выбор того или иного контейнера/алгоритма, если не основываясь на их сложности?
Как ты сможешь сказать, чем хороша и чем плоха хеш-таблица и как ее качество зависит от качества хеш-функции, если ты не знаешь, как она устроена?
У меня бывали в подчинении такие вот сотрудники (и при первой же возможности мы от них избавились, ессно), тоже с сертификатами и "кучей сданных проектов за плечами", которые писали код типа
for (int i=0; i<strlen(s); ++i)
s[i] = to_upper(s[i]);
(Надеюсь, ты видишь проблемы в обоих примерах? Если да, то ты, наверное, все-таки имеешь представление о сложности)
Так вот у них тоже на собеседовании были проблемы с тем, чтобы оценить сложность, но их взяли как раз с такой формулировкой ("Ну а че, люди приятные и опыт большой").
Ну и у нас года три ушло на подчистку того, что они наговнокодили за год, потому что кодили они быстро и много (самый феерический случай — скрипт, работавший 6 часов, после переписывания стал работать 15 минут).
Профессиональный программер должен думать о многих вещах одновременно.
В частности, при написании кода нужно постоянно думать о
1) сложности по времени и памяти того, что ты пишешь;
2) устойчивости кода к исключениям (особенно важно в С++);
3) (если многопоточное исполнение) о гонках и блокировках.
Это все должно крутиться у тебя в бэкграунде, прямо пока ты пишешь код, а не так что ты вначале наколбасил гору кода, а потом стал думать (если вспомнил), а какая же получилась сложность. Это должна быть профессиональная привычка.
Здравствуйте, genre, Вы писали:
G>понимает по всем проекте может быть от принимал все ключевые решения, до наблюдал как другие принимали эти решения
Обычно людям неинтересно смотреть как другие принимают решения. Если человек что-то знает, то он точно не в стороне был.
G>делает ревью — от находит кучу ошибок до просто долго смотрит в чужой код лишь бы ничего не делать
Нет таких людей, которые просто смотрят в код. Лучше на рсдн потрындеть.
Если делал ревью, то уже плюс. При постоянных ревью кучи ошибок не будет.
И здесь ещё плюс, что его код тоже ревьюрится.
G>видел хороший дизайн — в слове видел слишком много ошибок. должно быть "делал".
Сделать что-то хорошее, ни разу не видев как делают хорошо, довольно сложно.
Если человек не видел хороших дизайнов, но "делал" их, то у меня подозрение, что он переоценивает свою поделку.
Здравствуйте, genre, Вы писали:
G>бесспорно, "видел" лучше чем "не видел". но "видел" хуже чем "делал". G>в этом же форуме многие склонны между последними ставить знак равенства.
Если брать архитектора системы, то желательно чтобы он и делал тоже. Но, хорошие архитектуры живут долго. Можно устроиться в фирму, поработать там 3-6 лет, а дизайн архитектуры существенно не поменяется. Поэтому у человека не будет возможности сделать что-то самому, а вот посмотреть как другие делали — пожалуйста.
А вот во всяких студенческих компаниях, где архитектуры как таковой просто нет, там да, у каждого есть возможность сделать что-то, а потом рассказывать как это было хорошо, а в этом время очередной переписывальщик делает свой хороший дизайн архитектуры.
Здравствуйте, elmal, Вы писали:
G>>видел хороший дизайн — в слове видел слишком много ошибок. должно быть "делал". G>>ну и тд. E>Проблема в том, что весьма мало людей просто видели хороший дизайн и хороший код, не то чтоб это все делать. В результате будут искренне убеждены, что то, что у них сейчас есть — оно великолепно, и они превосходные специалисты.
Хуже всего, если они не имея нормального опыта прочтут про паттерны проектирования, и будут считать, что у них идеальный дизайн ПО.
Здравствуйте, genre, Вы писали:
G>еще раз. есть команда, есть проект, все в курсе всего. в курсе решаемых в данный момент задач, проблем итд. нормальная командная работа. G>то есть на все перечисленные выше вопросы ответ у всех примерно один, отличие в умении формулировать. G>а уровень программистов — радикально разный. но пока на уровень кода не опустишься — не поймешь этого.
Умение сформулировать тоже очень, и очень важно. Если человек не способен устно выражаться и объяснять что к чему, значит он и мысли свои нормально сформулировать не может, и не может работать в команде (где ведется совместная работа и обсуждение). А значит и в коде у него потом ничего не разберешь. Будет шифровка в стиле
if (((i++) % 20) >> 5) return true;
А ораторское искусство тут не так важно, т.к. идет техническая дискуссия и обсуждение технических деталей.
Кроме вопросов по проекту полезно проверить знание ООП и паттернов (без фанатизма, просто для проверки кругозора).
Стиль кода тоже важен, конечно, но как раз его несложно натренировать, если с остальным все хорошо. Ввести соглашение о коде, в крайнем случае настроить IDE чтобы она не компилировалась при несоответствии.
И настаиваю, что пример слишком абстрактный и маловероятный. Все умеет, только ленивый. Как лень проверить на собеседовании? Или так умело показывает что все умеет, но на самом деле не умеет. Ну так задай пару вопросов за пределами комфортной зоны. Если он такой молодец, что наизусть выучил все обсуждения, детально изучил код коллег (и при этом сам ничего не делал, потому что ленивый!!! а все запоминать не лень было???), а думать и кодить не научился, то при первом же вопросе за пределами его зубрежки он посыпется.
Здравствуйте, genre, Вы писали:
G>еще раз. есть команда, есть проект, все в курсе всего. в курсе решаемых в данный момент задач, проблем итд. нормальная командная работа. G>то есть на все перечисленные выше вопросы ответ у всех примерно один, отличие в умении формулировать. G>а уровень программистов — радикально разный. но пока на уровень кода не опустишься — не поймешь этого.
Да, есть команда.
И каждый в ней делает свои задачи.
Несомненно все кое-что(что именно может сильно отличаться в разных командах) знают про задачи всех остальных.
Но именно кое-что. Все они знают именно про свои задачи.
Один делал ресерч и в результате выбрал одно из опробованных им решений.
А другой добавлял поле на форму.
Не будут их ответы одинаковыми никак.
Но это я конечно описал только частный случай из своей практики.
Могу предположить что бывают команды где все добавляют поля на формы. Там скорее всего у всех ответы будут одинаковые
On 15.02.2013 14:36, genre wrote:
> еще раз. есть команда, есть проект, все в курсе всего. в курсе решаемых > в данный момент задач, проблем итд. нормальная командная работа. > то есть на все перечисленные выше вопросы ответ у всех примерно один,
Конечно нет. Буду пытаться тебе объяснить на упрощенных аналогия. есть
бригада каменьшиков — они кирпичи кладут, только оддни углы, а другие
плоскости под веревочку. Так и здесь, все в общем-то в курсе, но каждый
делает конкретные свои задачи и вполне может рассказать, что именно он
сделал, ка ки почему. А если не может, то 90%, что ничего не делал, а
только участвовал и 10%, что говорить не умеет. Что один, что второй
вариант плохих работников.
Здравствуйте, alzt, Вы писали:
G>>понимает по всем проекте может быть от принимал все ключевые решения, до наблюдал как другие принимали эти решения A>Обычно людям неинтересно смотреть как другие принимают решения. Если человек что-то знает, то он точно не в стороне был.
Ну я уже давно избавился от подобного идеализма. Чего и тебе советую.
G>>делает ревью — от находит кучу ошибок до просто долго смотрит в чужой код лишь бы ничего не делать A>Нет таких людей, которые просто смотрят в код. Лучше на рсдн потрындеть.
Ага. Именно. потрындел на рсдн полдня, а отметил, что ревью делал.
A>Если делал ревью, то уже плюс. При постоянных ревью кучи ошибок не будет. A>И здесь ещё плюс, что его код тоже ревьюрится.
Ну ты как собеседующий о результатах этого ревью никогда не узнаешь.
G>>видел хороший дизайн — в слове видел слишком много ошибок. должно быть "делал". A>Сделать что-то хорошее, ни разу не видев как делают хорошо, довольно сложно. A>Если человек не видел хороших дизайнов, но "делал" их, то у меня подозрение, что он переоценивает свою поделку.
Не понимаю этого логического перехода. Речь о том, что из подобной беседы на собеседовании очень сложно узнать делал человек или видел.
Здравствуйте, nile, Вы писали:
G>>еще раз. есть команда, есть проект, все в курсе всего. в курсе решаемых в данный момент задач, проблем итд. нормальная командная работа. G>>то есть на все перечисленные выше вопросы ответ у всех примерно один, отличие в умении формулировать. G>>а уровень программистов — радикально разный. но пока на уровень кода не опустишься — не поймешь этого.
N>Кроме вопросов по проекту полезно проверить знание ООП и паттернов (без фанатизма, просто для проверки кругозора).
то есть твои вопросы по проекту не касаются дизайна (а то есть ооп и паттернов в том числе)? тогда я вообще не понимаю, какие выводы ты можешь сделать из общего разговора о выполненных проектах.
конечно должны быть вопросы и про ооп и про паттерны. но если ты с этим согласен, тогда мне решительно непонятно почему в один ряд с этим не становятся вопросы про алгоритмы. это точно такая же часть работы программиста как и паттерны.
N>Стиль кода тоже важен, конечно, но как раз его несложно натренировать, если с остальным все хорошо. Ввести соглашение о коде, в крайнем случае настроить IDE чтобы она не компилировалась при несоответствии.
стиль кода в смысле расстановки скобочек меня вообще не интересует. а вот стиль кода в смылсе, непример, разбиения на классы проверить невозможно не опускаясь на уровень кода.
N>И настаиваю, что пример слишком абстрактный и маловероятный. Все умеет, только ленивый. Как лень проверить на собеседовании? Или так умело показывает что все умеет, но на самом деле не умеет.
Вот я не понимаю, как из того, что человек рассказывает о сделанном делается вывод, что он это умеет. Вон зайди в автораздел. Там каждый второй рассказывает о конструкции двигателей, досконально в деталях, разбирая что хорошо и что плохо. Можно ли доверить им конструирование нового?
N>Ну так задай пару вопросов за пределами комфортной зоны. Если он такой молодец, что наизусть выучил все обсуждения, детально изучил код коллег (и при этом сам ничего не делал, потому что ленивый!!! а все запоминать не лень было???), а думать и кодить не научился, то при первом же вопросе за пределами его зубрежки он посыпется.
Вот именно поэтому на собеседовании предлагается не только рассказать о старом, но и сделать что-то новое, чтобы выйти за пределы зубрежки.
Здравствуйте, robin_of_the_wood, Вы писали:
___>Да, есть команда. ___>И каждый в ней делает свои задачи.
___>Несомненно все кое-что(что именно может сильно отличаться в разных командах) знают про задачи всех остальных. ___>Но именно кое-что. Все они знают именно про свои задачи.
ну если у тебя команда с крайне жестким распределением обязанностей, то, да, ответы будут разными. но большинство команд все-таки стремится к обратному.
___>Один делал ресерч и в результате выбрал одно из опробованных им решений. ___>А другой добавлял поле на форму. ___>Не будут их ответы одинаковыми никак.
когда первый сделал ресерч, он рассказал о результатах команде, что ресерчилось, как, почему, какие результаты, почему сделан выбор именно в пользу выбранного потому что работать с этой технологией предстоит всем. и если через полгода оба придут к тебе на собеседование то выявить автора будет очень сложно. ну например потому, что когда тебе человек ответит "да я не помню уже таких мелочей, полгода назад было" ты не поймешь не помнит ли он или не знал никогда
Здравствуйте, alzt, Вы писали:
A>Если брать архитектора системы, то желательно чтобы он и делал тоже. Но, хорошие архитектуры живут долго. Можно устроиться в фирму, поработать там 3-6 лет, а дизайн архитектуры существенно не поменяется. Поэтому у человека не будет возможности сделать что-то самому, а вот посмотреть как другие делали — пожалуйста. A>А вот во всяких студенческих компаниях, где архитектуры как таковой просто нет, там да, у каждого есть возможность сделать что-то, а потом рассказывать как это было хорошо, а в этом время очередной переписывальщик делает свой хороший дизайн архитектуры.
ну я все-таки про дизайн, а не про архитектуру. архитектор это штучный товар. а дизайнить приходится каждому.
On 15.02.2013 15:22, genre wrote:
> ну я все-таки про дизайн, а не про архитектуру. архитектор это штучный > товар. а дизайнить приходится каждому.
Не хочу оскорбить, но сразу чувствуется профессионал в ИБД.
Здравствуйте, jazzer, Вы писали:
J>(Надеюсь, ты видишь проблемы в обоих примерах? Если да, то ты, наверное, все-таки имеешь представление о сложности)
Здесь проблема не в сложности. Первый метод — там фикс будет в одной строчке и профайлером эта проблема исправится на ура. А вот во втором примере — там все очень серьезно. Ибо нарвались на неленивого копипастера. Соответственно он там такого понаделает, что потом его творчество хрен когда исправишь. Более того, будет постоянно срывать сроки. И там потом придется вообще все переписывать, затратив огромное количество ресурсов. Так вот — проверки на знание алгоритмов, всяких сложностей и т.д абсолютно не позволят распознать копипастера. А взять копипастера — это просто капец всему, за ним настолько нужно следить, что проще самому всегда все делать.
Здравствуйте, genre, Вы писали:
___>>Да, есть команда. ___>>И каждый в ней делает свои задачи.
___>>Несомненно все кое-что(что именно может сильно отличаться в разных командах) знают про задачи всех остальных. ___>>Но именно кое-что. Все они знают именно про свои задачи.
G>ну если у тебя команда с крайне жестким распределением обязанностей, то, да, ответы будут разными. но большинство команд все-таки стремится к обратному.
Да, у меня в команде ресерч не каждому делать поручали.
Ну а стремиться — дело нужное и правильное.
___>>Один делал ресерч и в результате выбрал одно из опробованных им решений. ___>>А другой добавлял поле на форму. ___>>Не будут их ответы одинаковыми никак.
G>когда первый сделал ресерч, он рассказал о результатах команде, что ресерчилось, как, почему, какие результаты, почему сделан выбор именно в пользу выбранного потому что работать с этой технологией предстоит всем. и если через полгода оба придут к тебе на собеседование то выявить автора будет очень сложно. ну например потому, что когда тебе человек ответит "да я не помню уже таких мелочей, полгода назад было" ты не поймешь не помнит ли он или не знал никогда
В теории все так и есть.
А на практике я помню чего я ресерчил 10 лет назад и НИКОГДА не поверю что это можно забыть за год даже.
А вот забыть про то, что кто-то когда-то расказывал про какие-то там ресерчи когда я тут со своей формой мучался — вот тут без вопросов.
У меня был случай когда с прошлой работы новые люди попавшие на бывший мой проект звонили и расспрашивали про проект.
Я им говорю "Так из моей команды ведь остались в Вашей фирме люди работать. У них спросите"
А они отвечают "Спрашивали. Они уже не помнят ничего"
А я помню до сих пор и тот проект и все его проблемы.
И это совсем не потому что у меня память хорошая
Здравствуйте, robin_of_the_wood, Вы писали:
___>В теории все так и есть. ___>А на практике я помню чего я ресерчил 10 лет назад и НИКОГДА не поверю что это можно забыть за год даже.
а в моей практике человек делавший ресерч может много помнить про принятое решение, потому что его пришлось использовать и очень мало про откинутые варианты. что логично.
On 15.02.2013 15:54, robin_of_the_wood wrote:
> Я им говорю "Так из моей команды ведь остались в Вашей фирме люди > работать. У них спросите" > А они отвечают "Спрашивали. Они уже не помнят ничего" > А я помню до сих пор и тот проект и все его проблемы.
Они скорее всего тоже помнять, но на той конторе отношения такие, что
никто и никому ничего говорить не должен, тем более помогать.
Не ты один, я тоже в такой ситуации оказывался.
Здравствуйте, genre, Вы писали:
___>>А на практике я помню чего я ресерчил 10 лет назад и НИКОГДА не поверю что это можно забыть за год даже.
G>а в моей практике человек делавший ресерч может много помнить про принятое решение, потому что его пришлось использовать и очень мало про откинутые варианты. что логично.
Тут я с Вами согласен.
Но те, кто только что-то слышали про тот ресерч, едва ли вспомнят о нем вообще.
Оно им даром не надо было. Они свои задачи делали и лишними проблемами голову не забивали. Что тоже весьма логично.
Но при этом они будут 10 лет помнить кто перебрал лишнего на корпоративе и безобразничал
Здравствуйте, Vzhyk, Вы писали:
V>Они скорее всего тоже помнять, но на той конторе отношения такие, что V>никто и никому ничего говорить не должен, тем более помогать. V>Не ты один, я тоже в такой ситуации оказывался.
В том конкретном случае — маловероятно.
Но подходец "Я это две недели ковырял — пусть и они помучаются" встречался.
Слава богу не часто
Здравствуйте, robin_of_the_wood, Вы писали:
___>Тут я с Вами согласен. ___>Но те, кто только что-то слышали про тот ресерч, едва ли вспомнят о нем вообще. ___>Оно им даром не надо было. Они свои задачи делали и лишними проблемами голову не забивали. Что тоже весьма логично.
они потом с результатами этого ресерча работали. так что обычно в теме.
Здравствуйте, genre, Вы писали:
G>они потом с результатами этого ресерча работали. так что обычно в теме.
То, что они с результатами работают — факт.
А вот, то что они помнят(знают, интересуются) откуда этот результат взялся — из первого совершенно не следует. Хотя и вполне возможно.
Люди обычно не склонны усложнять свою жизнь.
Да, есть конечно любознательность и все такое.
Но в любом случае спорить особо не буду.
Ваш случай возможен а кому и как часто встречается — это уже как карта ляжет.
Свой случай я тоже не рассматриваю как наиболее вероятный и уж тем-более едитственно верный.
Просто его стоит упомянуть среди массы других вариантов.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, jazzer, Вы писали:
J>>(Надеюсь, ты видишь проблемы в обоих примерах? Если да, то ты, наверное, все-таки имеешь представление о сложности) E>Здесь проблема не в сложности.
Именно в ней. Человек просто не думает, как будет выполняться то, что он пишет.
E>Первый метод — там фикс будет в одной строчке и профайлером эта проблема исправится на ура.
Фикс в ДНК. Вернее, в том, что люди, не имеющие проблем с оценкой сложности кода, такую глупость не будут писать и без профайлера.
Опять же, по опыту других сотрудников, у которых не было проблем на собеседовании — нет проблем и с их кодом.
E>А вот во втором примере — там все очень серьезно. Ибо нарвались на неленивого копипастера. Соответственно он там такого понаделает, что потом его творчество хрен когда исправишь. Более того, будет постоянно срывать сроки. И там потом придется вообще все переписывать, затратив огромное количество ресурсов. Так вот — проверки на знание алгоритмов, всяких сложностей и т.д абсолютно не позволят распознать копипастера. А взять копипастера — это просто капец всему, за ним настолько нужно следить, что проще самому всегда все делать.
Копи-паста тут — полбеды, если человек понимает, какой эффект его копипаста будет иметь.
Разворачивание цикла вручную — это ведь тоже копи-паста, в общем-то.
Даже оставляя за рамками оптимизацию двойного цикла — ведь достаточно было бы даже закешировать в первой строчке тела цикла ссылку на найденный в мапе объект и дальше копи-пастить присваивание внутрь этой найденной ссылки — уже будет работать на 2 порядка быстрее, так вместо 100 сеансов поиска будет всего один.
А здесь пример именно не думания о том, что происходит.
И это выясняется на собеседовании элементарно, когда просишь человека оценить сложность алгоритма, который он написал — у нормального программера ответ будет готов сразу, потому что он об этом думал параллельно с написанием кода (равно как и о том, что будет в случае исключений — это тоже очень хорошо видно на тестовых задачах прямо на собеседовании).
И поэтому я прошу всех, кто ругает задачи на собеседовании, задуматься — а как еще оценить кандидата и отсеять копи-пастеров и прочих бездумно кодящих? У всех ведь резюме примерно одинаково выглядит, у всех опыт за плечами, куча проектов и базвордов.
Поймите простую вещь — по резюме все кандидаты одинаковые.
Резюме злостного копипстера ничем не отличается от резюме нормального вдумчивого программера.
Как распознать, если не давать заданий? (NB я не имею в виду задачи про гномиков и сам их никогда не задаю, я имею в виду задачи, позволяющие оценить стиль программистского мышления)
Здравствуйте, jazzer, Вы писали:
J>И поэтому я прошу всех, кто ругает задачи на собеседовании, задуматься — а как еще оценить кандидата и отсеять копи-пастеров и прочих бездумно кодящих? У всех ведь резюме примерно одинаково выглядит, у всех опыт за плечами, куча проектов и базвордов.
Элементарно. Дать соискателю вот такой код, и пусть рассказывает что в нем плохо и как его улучшить, а то и показывает. Очень быстро и эффективно. Гораздо это лучше, чем тест на умение компилировать в уме с ответами что выведется. J>Резюме злостного копипстера ничем не отличается от резюме нормального вдумчивого программера.
Отличается. У копапастера резюме однозначно будет круче .
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, jazzer, Вы писали:
J>>И поэтому я прошу всех, кто ругает задачи на собеседовании, задуматься — а как еще оценить кандидата и отсеять копи-пастеров и прочих бездумно кодящих? У всех ведь резюме примерно одинаково выглядит, у всех опыт за плечами, куча проектов и базвордов. E>Элементарно. Дать соискателю вот такой код, и пусть рассказывает что в нем плохо и как его улучшить, а то и показывает. Очень быстро и эффективно. Гораздо это лучше, чем тест на умение компилировать в уме с ответами что выведется.
Неа. Это проверка его умения ревьюить код — полезная и выявляющая грамотного человека, но не гарантирующая, что он будет думать точно так же в процессе написания кода.
А когда просишь человека написать простейший код прямо на бумажке, то сразу очень хорошо видно, о чем человек думает (тем более что практически все кандидаты проговаривают то, что делают, видимо, чтоб не создавалось впечатление, что они молчат, потому что чего-то не знают). И если человек в процессе написания кода произносит вещи типа "вот тут мы применим такой поиск, потому что то-то и то-то и скорость будет такая", "а если тут вылетит исключение, то оно состояние объекта не порушит, а вот этот деструктор подберет все, что надо" — у них обычно и код получается качественным сразу.
И вот таких надо брать, это высший сорт, с ними потом не нужно будет нянчиться, а ревью их кода — одно удовольствие потом.
А другие, которые этого не делают в процессе, почти всегда рожают не особо хороший код, и дальше делятся на две категории — когда ты говоришь им, что видишь в их коде проблемы, они либо находят их (твой случай выше, можно брать, если нет кандидатов высшего сорта — у них есть потенциал для роста в высший сорт), либо не находят вообще (не надо брать).
J>>Резюме злостного копипстера ничем не отличается от резюме нормального вдумчивого программера. E>Отличается. У копапастера резюме однозначно будет круче .
Совсем не факт. В одном и том же проекте могут работать и копи-пастер, и нормальный, которому приходилось за копипастером убирать. А в резюме у них будет одно и то же.
Круче всех резюме у контракторов — количество выполненных проектов зашкаливает. Это особенно за пределами России распространено.
Здравствуйте, Vzhyk, Вы писали:
>> не проблема, точных формулировок я может и не вспомню, но поддержать >> разговор смогу. V>Ну-ну. Главное верить.
Можно както подробнее формулировать мысли. Я "ну-ну" не понимаю. V>Ну например, расскажи мне о EM алгоритме, а V>иначе, если не знаешь, как ты им пользоваться будешь.
Ни как не буду применять. Это не моя предметная область.
Но поговорить об этом смог бы спокойно, если ты мне объясниш предметную область и формулировку проблемы.
И эти алгоритмы не относятся ко 2 курсу института, так что я не понимаю к чему ты его привел. V> Ладно упрощу, расскажи мне алгоритм Витерби.
Т.е. мы тут имеем дело с тяжелой формой телепатического фейла? Вы заранее считаете что я не знаком с не самыми хитрыми алгоритмами? И не нужны мне ваши одолжения. V>И т.д. Просто в отличие от многих недоманагеров тут я подобной глупостью никогда не страдал.
Я так понимаю вам очень хочется перейти на личности в этом обсуждении? >> но это к делу не относится, мы спрашиваем вопросы относящиеся к >> специализации и имеющие, хоть и косвенное, но отношение к исполняемым >> обязанастям. V>А это вопросы непосредственно по работе, а не косвенно.
существуют разные предметные области, это не моя. была бы моя. спрашивал бы эту фигню.
Здравствуйте, genre, Вы писали:
G>когда первый сделал ресерч, он рассказал о результатах команде, что ресерчилось, как, почему, какие результаты, почему сделан выбор именно в пользу выбранного потому что работать с этой технологией предстоит всем. и если через полгода оба придут к тебе на собеседование то выявить автора будет очень сложно. ну например потому, что когда тебе человек ответит "да я не помню уже таких мелочей, полгода назад было" ты не поймешь не помнит ли он или не знал никогда
Ты какую-то абсурдную ситуацию в качестве примера приводишь.
Если у сотрудника получалось незаметно бездельничать (ну или читать чужой код вместо написания собственного), то при нормальной организации процесса это тут же обнаружилось бы, т.к. результата его работы нет.
Ты приводишь пример того, как каждый рассказывает о своих результатах, ресерчах и т.п. Что рассказывает своим коллегам твой сферический лентяй? Как он клево посидел на рсдн? Или как он поковырялся в чужом коде? Или он все-таки сам что-то накодил, и оно очень говенного качества (что также не могут не замечать коллеги, если код шарится)?
Долговременная работа без результатов возможна только если в проекте бардак. А в этом случае не будет он знать и понимать, кто что делал и каких результатов добился. И архитектура в таком проекте будет хреновая, и много необдуманного кода. Не сможет он тебе аргументированно расписать, как все было хорошо и правильно сделано.
Короче твой пример описывает какую-то невероятную ситуацию, и обсуждать ее нет смысла. А если такая ситуация и будет 1 на 100, то пофиг на нее.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, SkyDance, Вы писали:
V>>>А потом дрова АМД начинают сдуру отъедать всю память, просто выделять и V>>>все и в итоге зависать.
SD>>Ладно б дрова, а то ведь — настроечная утилита.
L>... представляющая собой окно с тремя кнопками. Тут даже эпитет про руки из зеппы не подходит 0
Если я правильно помню, оно на шарпе написано, не?
Здравствуйте, Vzhyk, Вы писали:
>> Но понять, как можно проработать пять >> например и более лет и не знать про то, на сколько быстрая сортировка >> выгоднее пузырька… V>То есть вам нужен чел, который за 5 лет только это и понял и не понял, V>что не надо лепить свои велосипеды с квадратными колесами, если уже V>сделаны и много с крыглыми?
Ты вообще читаешь, что тебе пишут? Речь о стандартных контейнерах (которые "много и с круглыми"), и о том, как выбрать из них подходящий под данную задачу. Как ты можешь сделать обоснованный выбор, если не знаешь их базовых свойств и сложности операций?
>> Во-вторых, знания эти совсем не так бесполезны, как может показаться. Ну >> разве что вы вообще никогда не используете коллекции (а многие, учтите, >> используют, поэтому могут и требовать эти знания). V>Вы же требуете их писать в вашем коде, а не использовать.
Речь шла о стандартных контейнерах и алгоритмах.
>> Собеседуя, обычно про контейнеры обязательно спрашивал — ну очень >> подозрителоьно, когда таких знаний нет. V>Таких это каких? 100% уверен, что четкого ответа у тебя не будет. Все и V>закончиться, "вот таких".
Таких — таких — это о которых шла речь выше, там все написано более чем четко
Здравствуйте, alzt, Вы писали:
A>Просто такие корпорации могут себе позволить отбирать лучших, но среди студентов, а потом неспеша его растить у себя.
Во всех компаниях есть два параллельных потока приема — new grads (студенты) и experienced (профессионалы).
К ним применяются совершенно разные требования (и платятся совершенно разные зарплаты).
И речь идет о том, как не промахнуться, набирая профессионала.
On 15.02.2013 20:25, jazzer wrote:
> Ты вообще читаешь, что тебе пишут? ... Как ты можешь сделать обоснованный выбор, если не > знаешь их базовых свойств и сложности операций?
Я тебя по постам здесь уважал как специалиста, но фразой выше ты меня
убил. Где ваши хрюши находят таких безграмотных, дворников с улицы
приводят что-ли? Я не видел ни одного программиста за 20 лет работы,
которые не знал вышеследующего. (Вот только не надо о сферических
слониках в вакууме)
> Таких — таких — это о которых шла речь выше, там все написано более чем > четко
Ч.Т.Д.
On 15.02.2013 20:21, jazzer wrote:
> Если я правильно помню, оно на шарпе написано, не?
Оооо, а что есть разница на чем писать очень плохо?
Или на плюсах ты можешь писать без утечек, на на шарпе нет?
On 15.02.2013 20:32, jazzer wrote:
> И речь идет о том, как не промахнуться, набирая профессионала.
Если не стрелять из лука, то и промахиваться не будешь.
Здравствуйте, jazzer, Вы писали:
L>>... представляющая собой окно с тремя кнопками. Тут даже эпитет про руки из зеппы не подходит 0
J>Если я правильно помню, оно на шарпе написано, не?
Здравствуйте, Vzhyk, Вы писали:
V>On 15.02.2013 20:25, jazzer wrote:
>> Ты вообще читаешь, что тебе пишут? ... Как ты можешь сделать обоснованный выбор, если не >> знаешь их базовых свойств и сложности операций? V>Я тебя по постам здесь уважал как специалиста, но фразой выше ты меня V>убил. Где ваши хрюши находят таких безграмотных, дворников с улицы V>приводят что-ли? Я не видел ни одного программиста за 20 лет работы, V>которые не знал вышеследующего. (Вот только не надо о сферических V>слониках в вакууме)
Индусы (буквально). Тысячи их. И у всех хорошие резюме, хоть на стенку вешай.
Ну и ТС тоже вон жалуется, что помнил "вышеследующее" только сразу после универа, а сейчас не помнит, не?
Здравствуйте, Vzhyk, Вы писали:
V>On 15.02.2013 20:32, jazzer wrote:
>> И речь идет о том, как не промахнуться, набирая профессионала. V>Если не стрелять из лука, то и промахиваться не будешь.
Банан большой, а кожура еще больше.
На этом обмен банальностями можно закончить, я думаю?
Здравствуйте, nile, Вы писали:
N>Ты какую-то абсурдную ситуацию в качестве примера приводишь. N>Если у сотрудника получалось незаметно бездельничать (ну или читать чужой код вместо написания собственного), то при нормальной организации процесса это тут же обнаружилось бы, т.к. результата его работы нет.
какое упорное желание прочитать не то, что написано, а то что хочется.
я не писал про "бездельничать", я писал про качество кода. ты же не будешь спорить, что программисты пишут код разного качества?
так вот оценить именно это самое качество подобным собеседованием невозможно.
J>Странный какой-то вопрос. J>Вообще-то знание сложности алгоритмов/контейнеров стандартной библиотеки — это базовые знания, типа жи/ши, как-то даже неудобно это обсуждать J>Как же ты тогда сможешь сделать обоснованный выбор того или иного контейнера/алгоритма, если не основываясь на их сложности? J>Как ты сможешь сказать, чем хороша и чем плоха хеш-таблица и как ее качество зависит от качества хеш-функции, если ты не знаешь, как она устроена?
Неудобно когда приходишь устраиваться на вакансию, где подчеркивается знание OOD, а тебе предлагают вспомнить жЫ-шЫ для любителя алгоритмов. Неудобно, когда любитель задавать задачки про гномиков, не может вспомнить, что за SOLID(про то, что принципов больше, чем 5 — лучше не заикаться) — это действительно неудобно. А потом у таких любителей алгоритмов получаются макароны кода, при поддержки которого возникают прямые ассоциации с работой сантехника.
Я даже не говорю про то, что еще в ВУЗе насмотрелся на то, как люди просто не понимали OOD, при этом обладая отличными навыками алгоритмизации.
J>В частности, при написании кода нужно постоянно думать о
Думать о чем-то надо тогда, когда есть соответствующие ограничения. Если их нет — то это пустая трата времени.
Здравствуйте, integ21hurra, Вы писали:
I>Неудобно когда приходишь устраиваться на вакансию, где подчеркивается знание OOD, а тебе предлагают вспомнить жЫ-шЫ для любителя алгоритмов. Неудобно, когда любитель задавать задачки про гномиков, не может вспомнить, что за SOLID(про то, что принципов больше, чем 5 — лучше не заикаться) — это действительно неудобно. А потом у таких любителей алгоритмов получаются макароны кода, при поддержки которого возникают прямые ассоциации с работой сантехника. I>Я даже не говорю про то, что еще в ВУЗе насмотрелся на то, как люди просто не понимали OOD, при этом обладая отличными навыками алгоритмизации.
Один вопрос всего: позиция, где подчеркивается знание ООД, предполагает написание кода? Или это чисто для архитекторов в высокой башне из слоновой кости, а код должны писать чернь, рабы-кодеры?
Здравствуйте, genre, Вы писали:
E>>Смешно то, что в этом случае процент отсева будет даже больше.
G>Вообще меня искренне удивляет количество людей на форуме искренне считающих, что по рассказу о том, что человек делал можно определить его квалификацию.
Мне хватает 15 минут общения с человеком, чтобы понять, что он из себя представляет как специалист. Не ошибался ни разу.
J>Ты вообще читаешь, что тебе пишут? Речь о стандартных контейнерах (которые "много и с круглыми"), и о том, как выбрать из них подходящий под данную задачу. Как ты можешь сделать обоснованный выбор, если не знаешь их базовых свойств и сложности операций?
О, сколько я повидал пассажиров, некоторых даже с masters in CS, в совершенстве освоивших тонкости устройства стартных контейнеров и посему делавших такой обоснованый выбор, что код приходилось отправлять прямиком в помойку.
зазубрить О большие может самый распоследний дятел. Для того, чтобы создавать качественный продукт, нужен в первую очередь здравый смысл и аналитические способности.
Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, jazzer, Вы писали:
J>>Ты вообще читаешь, что тебе пишут? Речь о стандартных контейнерах (которые "много и с круглыми"), и о том, как выбрать из них подходящий под данную задачу. Как ты можешь сделать обоснованный выбор, если не знаешь их базовых свойств и сложности операций?
L>О, сколько я повидал пассажиров, некоторых даже с masters in CS, в совершенстве освоивших тонкости устройства стартных контейнеров и посему делавших такой обоснованый выбор, что код приходилось отправлять прямиком в помойку.
Т.е. они выбирали контейнер неправильно, несмотря на то, что знали его устройство до тонкостей?
L>зазубрить О большие может самый распоследний дятел. Для того, чтобы создавать качественный продукт, нужен в первую очередь здравый смысл и аналитические способности.
Ну вот потэому я и прошу кандидатов пописать код на листочке прямо при мне. И потом обсудить его. Сразу видно, есть эти способности или нет.
И когда просишь оценить большое О написанного кода, очевидно, зазубренные О тут не пройдут.
Здравствуйте, jazzer, Вы писали:
L>>О, сколько я повидал пассажиров, некоторых даже с masters in CS, в совершенстве освоивших тонкости устройства стартных контейнеров и посему делавших такой обоснованый выбор, что код приходилось отправлять прямиком в помойку. J>Т.е. они выбирали контейнер неправильно, несмотря на то, что знали его устройство до тонкостей?
Да нет, контейнер как раз выбрали правильно, по крайней мере с точки зрения набора операций над ним. Вот только решение задачи оказалось неправильным в корне. Потому что исходили из "мы знаем о контейнерах все, щас выберем, рассортируем и найдем", да вот только увидеть, что существовало решение задачи, не требующего ни поиска, ни сортировки, ни, собственно контейнера, ниасилили. А дальше уже пошел снежный ком. Грубо говоря, решили не исходную проблему, а другую, ту, которую умели решать. а потом попытались натянуть сами знаете что на глобус. И так стопицот раз.
J>Один вопрос всего: позиция, где подчеркивается знание ООД, предполагает написание кода? Или это чисто для архитекторов в высокой башне из слоновой кости, а код должны писать чернь, рабы-кодеры?
Нагуглить алгоритм поиска — это 2 минуты, а вот нагуглить идеальную архитектуру конкретной программной системы не получится. Мало того, большинство задач будут связаны вовсе не с изобретением велосипедов по стандартным алгоритмам.
В рамках хорошего кода важна его сопровождаемость, а вовсе не знание стандартных алгоритмов, поэтому даже если человек ошибется с выбором и это критично скажется, то это можно будет легко найти и исправить.
Здравствуйте, landerhigh, Вы писали:
L>И так стопицот раз.
Ну хорошо, и как ты предлагаешь таких отсеивать? Задачками про гномиков?
Ну и, чтоб два раза не вставать — сотрудник, который выберет с самого начала правильное решение (ты, например) — будут у него проблемы с оценкой сложности контейнеров/алгоритмов?
Здравствуйте, integ21hurra, Вы писали:
I>А потом у таких любителей алгоритмов получаются макароны кода, при поддержки которого возникают прямые ассоциации с работой сантехника.
Зачастую макароны получаются у тех кто не разбирается в алгоритмах/контейнерах
Знание алгоритмов/контейнеров не говорит о том, что у человека плохо с дизайном. Зато наоборот, если программист не в состоянии осилить их, то вряд ли он сможет осилить и дизайн
J>>В частности, при написании кода нужно постоянно думать о I>Думать о чем-то надо тогда, когда есть соответствующие ограничения. Если их нет — то это пустая трата времени.
Если изначально использовались premature pessimized решения, то при росте системы некоторые из них могут выстрелить, причём это может произойти в неудобном месте, например на стороне клиента. А это выливается в целую цепочку "траты времени": письмо в support, ticket, assignment, локализация и решение проблемы + для решения возможно понадобится частичный рефакторинг, новый билд + отправка клиенту.
Что бы всего этого избежать, достаточно было немного подумать, а не тупо давить button'ы.
I>Нагуглить алгоритм поиска — это 2 минуты, а вот нагуглить идеальную архитектуру конкретной программной системы не получится.
Если не знать про более оптимальное решение, или про то, что уже есть реализация нужного алгоритма, то может и не возникнуть желание нагуглить.
Например:
1) O( ln N ) поиск — это нормально? "Ну вроде да — общая сложность O(N ln N) — приемлемо".
А вот если знать о готовом решении, либо знать "как его придумать" — посмотреть на паттерны во входных данных — то поиск будет O(1), и общая сложность O(N), да и памяти требуется в разы меньше.
2) Нужно применить некоторую операцию попарно к элементов двух range'ей, а потом с-reduce-ить их результаты. Если не знать про существование inner_product ("А что, и такой есть?") — то и получатся макароны. И google тут ничем не поможет.
I>Мало того, большинство задач будут связаны вовсе не с изобретением велосипедов по стандартным алгоритмам.
Многие задачи решаются путём комбинирования стандартных контейнеров и алгоритмов
При "правильном" дизайне, этот самый дизайн не будет требовать времени намного больше чем непосредственно реализация новых фич/решение задач.
Здравствуйте, integ21hurra, Вы писали:
J>>Один вопрос всего: позиция, где подчеркивается знание ООД, предполагает написание кода? Или это чисто для архитекторов в высокой башне из слоновой кости, а код должны писать чернь, рабы-кодеры?
I>Нагуглить алгоритм поиска — это 2 минуты, а вот нагуглить идеальную архитектуру конкретной программной системы не получится. Мало того, большинство задач будут связаны вовсе не с изобретением велосипедов по стандартным алгоритмам.
I>В рамках хорошего кода важна его сопровождаемость, а вовсе не знание стандартных алгоритмов, поэтому даже если человек ошибется с выбором и это критично скажется, то это можно будет легко найти и исправить.
Сорри, что значит — нагуглить? Оно все — поиск, или там контейнер Ну нагуглится тебе 20 алгоритмов — и как ты будешь выбирать, не имея навыков оценки сложности и, как следствие, оценки применимости данного алгоритма/контейнера в данных условиях? Согласись, понимание сложности стандартных контейнеров и алгоритмов — это все-таки базовые вещи.
Ну и немалая часть архитектуры — это организация данных, т.е. контейнеры и связанные с ними алгоритмы.
Здравствуйте, integ21hurra, Вы писали:
I>В рамках хорошего кода важна его сопровождаемость, а вовсе не знание стандартных алгоритмов, поэтому даже если человек ошибется с выбором и это критично скажется, то это можно будет легко найти и исправить.
Встречал людей которые пишут хорошую архитектуру , они все знали базовые алгоритмы и разбирались в сложности. Хдается мне , это не спроста.
EP>Знание алгоритмов/контейнеров не говорит о том, что у человека плохо с дизайном. Зато наоборот, если программист не в состоянии осилить их, то вряд ли он сможет осилить и дизайн
Если человек не помнит на собеседовании конкретный алгоритм, то это никак не говорит о том, что он не в состоянии его осилить.
EP>Что бы всего этого избежать, достаточно было немного подумать, а не тупо давить button'ы.
Эта вина кого угодно, но не рядового программиста. Тем более, если столько стадий между клиентом и исполнителем, то можно хотя бы одну стадию code review предусмотреть.
Здравствуйте, integ21hurra, Вы писали:
EP>>Знание алгоритмов/контейнеров не говорит о том, что у человека плохо с дизайном. Зато наоборот, если программист не в состоянии осилить их, то вряд ли он сможет осилить и дизайн I>Если человек не помнит на собеседовании конкретный алгоритм, то это никак не говорит о том, что он не в состоянии его осилить.
разговор шёл про хэш-таблицу, стандартные контейнеры.
Вообще-то знание сложности алгоритмов/контейнеров стандартной библиотеки — это базовые знания, типа жи/ши, как-то даже неудобно это обсуждать
...
Как ты сможешь сказать, чем хороша и чем плоха хеш-таблица и как ее качество зависит от качества хеш-функции, если ты не знаешь, как она устроена?
Как можно "не помнить на собеседовании" хэш-таблицу, map или например vector? Даже если "подчеркивается знание OOD"? Что можно на-OOD-шить без таких базовых знаний?
J>>В частности, при написании кода нужно постоянно думать о I>Думать о чем-то надо тогда, когда есть соответствующие ограничения. Если их нет — то это пустая трата времени. EP>>Что бы всего этого избежать, достаточно было немного подумать, а не тупо давить button'ы. I>Эта вина кого угодно, но не рядового программиста.
Так это был ответ на выделенное жирным.
Да, и я считаю что "рядовой" программист тоже должен думать
I>Тем более, если столько стадий между клиентом и исполнителем, то можно хотя бы одну стадию code review предусмотреть.
Ты говоришь что думать нужно при "соответсвующих ограничениях", а не всегда. При таком подходе код с квадратичным поиском может пройти это code review — "а что, сейчас ведь всего 10 элементов?".
Или ты имеешь ввиду, что ревьювер должен думать, а программист нет?
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, landerhigh, Вы писали:
L>>И так стопицот раз.
J>Ну хорошо, и как ты предлагаешь таких отсеивать? Задачками про гномиков?
Про отсеивать отвечу поговоркой — "кто долго жену выбирает, тому кривая достается".
Задача интервьювера — подобрать наиболее подходящего сотрудника для выполнения данной работы. А то ведь отсеять можно и Кнута и Страуструпа, было бы желание.
J>Ну и, чтоб два раза не вставать — сотрудник, который выберет с самого начала правильное решение (ты, например) — будут у него проблемы с оценкой сложности контейнеров/алгоритмов?
У меня таких проблем не бывает. Я не делаю из алгоритмов идола. Это просто инструмент, при работе с которым не зазорно и в справочник подсмотреть, благо справочинков этх дофига. Более того, хороший инженер — это тот, кто строит из себя ходячую энциклопедию, а тот, кто проверяет и перепроверяет в том числе самого себя, и не полагается на остаточные знания.
Другое дело, что нужно понимать, что такое алгоритмическая сложность. Но проблема в том, что действительно понимают это очень немногие.
Вот типичный пример — для решения абстрактной задачи в вакууме можно применить алгоритм с O(1), а можно с O(N). Для абстрактной задачи в вакууме выбор очевиден. Теперь переходим от абстрактной задачи к конкретной. И вот тут уже далеко не до всех доходит, что O(N) может оказаться предпочтительнее.
Здравствуйте, landerhigh, Вы писали:
L>Про отсеивать отвечу поговоркой — "кто долго жену выбирает, тому кривая достается". L>Задача интервьювера — подобрать наиболее подходящего сотрудника для выполнения данной работы. А то ведь отсеять можно и Кнута и Страуструпа, было бы желание.
Ну так с задачей вроде ни у кого проблем нет (кроме Вжика), мы тут процесс обсуждаем — что именно должен делать интервьюер и как, чтобы задачу выполнить.
С учетом того, что "данная работа" всегда подразумевает написание кода.
Ты сам как интервью проводишь? Поделись.
J>>Ну и, чтоб два раза не вставать — сотрудник, который выберет с самого начала правильное решение (ты, например) — будут у него проблемы с оценкой сложности контейнеров/алгоритмов?
L>У меня таких проблем не бывает. Я не делаю из алгоритмов идола. Это просто инструмент, при работе с которым не зазорно и в справочник подсмотреть, благо справочинков этх дофига. Более того, хороший инженер — это тот, кто строит из себя ходячую энциклопедию, а тот, кто проверяет и перепроверяет в том числе самого себя, и не полагается на остаточные знания.
Оно, конечно, так, но если под стандартной библиотекой понимать библиотеку объема STL, то это весьма маленький объем и помнить его не составит труда ни для кого. Это гораздо меньше, чем таблица умножения чисел в пределах десятка, которую мы учим наизусть в школе, тогда когда Кнут/Кормен соответствуют таблице умножения чисел в пределах сотни.
L>Другое дело, что нужно понимать, что такое алгоритмическая сложность. Но проблема в том, что действительно понимают это очень немногие.
Вот-вот.
L>Вот типичный пример — для решения абстрактной задачи в вакууме можно применить алгоритм с O(1), а можно с O(N). Для абстрактной задачи в вакууме выбор очевиден. Теперь переходим от абстрактной задачи к конкретной. И вот тут уже далеко не до всех доходит, что O(N) может оказаться предпочтительнее.
Вот именно для этого я прошу людей оценить сложность написанного ими на бумажке кода. Это сразу отделяет зубрил от сёкарей.
EP>Как можно "не помнить на собеседовании" хэш-таблицу, map или например vector? Даже если "подчеркивается знание OOD"? Что можно на-OOD-шить без таких базовых знаний?
Там выше было про особенности реализации и алгоритмы, а вовсе не про знание их существования. Помнить об этом можно в одному случае — если вы очень внимательно читали непосредственную реализацию или документацию перед собеседованием. Есть еще люди с феноменальной памятью, но ими можно пренебречь.
EP>Да, и я считаю что "рядовой" программист тоже должен думать
Про "Думать" было сказано в контексте ограничений. Можно во главу угла ставить поддерживаемость кода и порой это будет противоречить другим принципам — в том числе и тому, что код не будет оптимизированным с точки зрения затрат памяти или проц. времени.
Да и мы давно уже не в СССР, у любой фирмы есть собственник — нужно ему, чтобы код соответствовал — пусть ставит соответствующим образом задачи.
EP>Ты говоришь что думать нужно при "соответсвующих ограничениях", а не всегда. При таком подходе код с квадратичным поиском может пройти это code review — "а что, сейчас ведь всего 10 элементов?". EP>Или ты имеешь ввиду, что ревьювер должен думать, а программист нет?
Code review — один из инструментов донести стиль кодирования, принятые стандарты до новичка. Люди могут годами работать в проектах по искривленным RAPID-технологиям, где об оптимизации вообще не думают. Лучше иметь гибкого человека, который может научиться, чем человека-зубрилку, да и первые более приятны в общении.
Здравствуйте, jazzer, Вы писали:
L>>Задача интервьювера — подобрать наиболее подходящего сотрудника для выполнения данной работы. А то ведь отсеять можно и Кнута и Страуструпа, было бы желание. J>Ну так с задачей вроде ни у кого проблем нет (кроме Вжика),
Строго говоря, я согласен с Вжиком в том, что в последнее время что-то стало модно скорее отсеивать, нежели искать сотрудников. Даже на примере соседнего отдела в моей конторе. Более того, сейчас есть практика сбора негатива, когда цель собеседований — собрать подтверждение тому, что "никого не найти".
J>мы тут процесс обсуждаем — что именно должен делать интервьюер и как, чтобы задачу выполнить. J>С учетом того, что "данная работа" всегда подразумевает написание кода. J>Ты сам как интервью проводишь? Поделись.
Разговор по резюме и по душам. В зависимости от настроения — пара задачек на устное обсуждение.
J>>>Ну и, чтоб два раза не вставать — сотрудник, который выберет с самого начала правильное решение (ты, например) — будут у него проблемы с оценкой сложности контейнеров/алгоритмов?
L>>У меня таких проблем не бывает. Я не делаю из алгоритмов идола. Это просто инструмент, при работе с которым не зазорно и в справочник подсмотреть, благо справочинков этх дофига. Более того, хороший инженер — это тот, кто строит из себя ходячую энциклопедию, а тот, кто проверяет и перепроверяет в том числе самого себя, и не полагается на остаточные знания. J>Оно, конечно, так, но если под стандартной библиотекой понимать библиотеку объема STL, то это весьма маленький объем и помнить его не составит труда ни для кого. Это гораздо меньше, чем таблица умножения чисел в пределах десятка, которую мы учим наизусть в школе, тогда когда Кнут/Кормен соответствуют таблице умножения чисел в пределах сотни.
Ну-ка, ну-ка, ты когда последний раз использовал set_intersection? Способ применения и сложность set_difference сходу вспомнишь? Уверен, что знаешь, какой минимальный оверхед имеет std::string в используемой у вас реализации STL?
L>>Другое дело, что нужно понимать, что такое алгоритмическая сложность. Но проблема в том, что действительно понимают это очень немногие. J>Вот-вот.
L>>Вот типичный пример — для решения абстрактной задачи в вакууме можно применить алгоритм с O(1), а можно с O(N). Для абстрактной задачи в вакууме выбор очевиден. Теперь переходим от абстрактной задачи к конкретной. И вот тут уже далеко не до всех доходит, что O(N) может оказаться предпочтительнее.
J>Вот именно для этого я прошу людей оценить сложность написанного ими на бумажке кода. Это сразу отделяет зубрил от сёкарей.
Здравствуйте, landerhigh, Вы писали:
L>Ну-ка, ну-ка, ты когда последний раз использовал set_intersection?
Три месяца назад. Правда это был не STL, а Boost.Range — но там только в сахаре отличие. (да и range'вая версия внутри вызывает std::...)
L>Способ применения и сложность set_difference сходу вспомнишь?
Да — два входных range'а, OutputIterator + опционально предикат упорядочивания.
Эти операции работают только с отсортированными range'ами, следовательно сложность линейная от общего числа элементов.
L>Уверен, что знаешь, какой минимальный оверхед имеет std::string в используемой у вас реализации STL?
Код собирается на {5 последних версиях MSVC, трёх GCC}x{x32,x64(там где есть)} + возможно в будущем CLang (как источник дополнительных warnings/errors) — в таких условиях запоминать какие-то конкретные особенности реализации, если в целом работает приемлемо, тем более для строк, которые используются не в critical path — не рационально.
Здравствуйте, genre, Вы писали:
G>Вообще меня искренне удивляет количество людей на форуме искренне считающих, что по рассказу о том, что человек делал можно определить его квалификацию. G>например я сейчас наблюдаю пару десятков программистов квалификации от "кандидат на увольнение" до "способен в одиночку поднять сложный проект". они все работают над одним проектом и рассказывать о том, что они делали будут очень похоже. Причем тот самый кандидат на увольнение раскажет красочнее и убедительнее всех.
Предлагаю провести следственный эксперимент, посадить нескольких кандидатов на увольнение и нескольких "в одиночку" за гномиков и сортировки и посмотреть корреляцию между гномиками и работой.
On 16.02.2013 13:55, genre wrote:
> я не писал про "бездельничать", я писал про качество кода. ты же не > будешь спорить, что программисты пишут код разного качества?
А формулировку разного качества мы сможем от тебя получить?
А то знаешь, в общем случае, что качественнее, белаз или мерседес?
On 16.02.2013 16:57, landerhigh wrote:
> Мне хватает 15 минут общения с человеком, чтобы понять, что он из себя > представляет как специалист. Не ошибался ни разу.
Это потому, что ты отвечаешь за свои действия и осознаешь их
последствия. Противоположная же сторона просто боится, часто даже не
понимая чего и поэтому пытаются прикрыться всякими бумажками,
регламентами и т.п.
On 16.02.2013 17:18, jazzer wrote:
> Т.е. они выбирали контейнер неправильно, несмотря на то, что знали его > устройство до тонкостей?
Тебя это удивляет. Очень много есть людей, которые при достаточно
объемных знаниях делают неправильный выбор. Обычно это уже становиться
понятно еще в институтах, глядя на студентов вокруг.
Неужели у вас небыло отличников, которые не могли и строки кода написать
или сделать хоть какую-то работу самостоятельно (кроме той, что в
методичке расписана)?
З.Ы. Я так понимаю, что ситуацию, когда правильного выбора контейнера
вообще не существует и в течении развития программы он должен меняться
здесь уже можно даже не упоминать.
On 16.02.2013 17:47, landerhigh wrote: > говоря, решили не исходную проблему, а другую, ту, которую умели решать. > а потом попытались натянуть сами знаете что на глобус. И так стопицот раз.
Это естественно при собеседовании в виде экзамена. Это как из древнего
анекдота про экзамен про рыб.
On 16.02.2013 19:14, Evgeny.Panasyuk wrote:
> Если не знать про более оптимальное решение, или про то, что уже есть > реализация нужного алгоритма, то может и не возникнуть желание нагуглить. > Например: > 1) O( ln N ) поиск — это нормально? "Ну вроде да — общая сложность O(N > ln N) — приемлемо". > А вот если знать о готовом решении, либо знать "как его придумать" — > посмотреть на паттерны во входных данных — то поиск будет O(1), и общая > сложность O(N), да и памяти требуется в разы меньше. > 2) Нужно применить некоторую операцию попарно к элементов двух range'ей, > а потом с-reduce-ить их результаты. Если не знать про существование > inner_product ("А что, и такой есть?") — то и получатся макароны. И > google тут ничем не поможет.
Вот эти два пункта очень показательны.
Эти пункты говорят о том, что человек очень плохо учился в институте по
фундаментальным дисциплинам и даже не в курсе скалярного произведения.
Мне становиться понятно, что проиходит. Похоже проблема в образовании.
Большинство местных ВУЗов скатились к уровню ПТУ, в лучшем случае
техникума и просто готовят программистов и не более, тех, кому дали 2-3
языка программирования, типичные контейнеры, немного ООП (понятно все
это на уровне "мертвых" знаний).
Когда я учился в БГУ — программирование — это был самый мусор,
фактически его изучали, как инструмент и не более. Основное это были
фундаментальные курсы и курсы прикладной математики. А программирование
— это лабы делали.
On 16.02.2013 19:23, jazzer wrote:
> Ну и немалая часть архитектуры — это организация данных, т.е. контейнеры > и связанные с ними алгоритмы.
Упс. Ты не сталкивался с задачами, где алгоритмы — это основное и не
элементарные по сортировке данных, а гораздо сложнее?
On 16.02.2013 21:58, minorlogic wrote:
> Встречал людей которые пишут хорошую архитектуру , они все знали базовые > алгоритмы и разбирались в сложности. Хдается мне , это не спроста.
Какое это имеет отношение к собеседованию, озвученному в самом начале
топика?
Здравствуйте, Vzhyk, Вы писали:
V>On 16.02.2013 17:18, jazzer wrote:
>> Т.е. они выбирали контейнер неправильно, несмотря на то, что знали его >> устройство до тонкостей? V>Тебя это удивляет. Очень много есть людей, которые при достаточно V>объемных знаниях делают неправильный выбор. Обычно это уже становиться V>понятно еще в институтах, глядя на студентов вокруг. V>Неужели у вас небыло отличников, которые не могли и строки кода написать V>или сделать хоть какую-то работу самостоятельно (кроме той, что в V>методичке расписана)?
Не, я физик, у нас большинство таких "отличников" на 1-2 курсе вылетели.
Не помню ни одного, с кем дошел до 6-го курса, который бы не владел материалом. Кроме разве что спортсменов, которых деканат не выгонял чисто за их спортивные успехи, но это не та проблема, которую мы тут обсуждаем — они вряд ли смогли бы похвастаться знанием подноготной контейнеров.
Ну да не суть. Допустим, есть опасность нанять зубрилу, который ничего не соображает, но все помнит. Как насчет обратного — пришел человек, не способен ответить на элементарные вопросы по хеш-таблицам или иным стандартным контейнерам, но при этом способен в реальной работе все грамотно выбирать и обосновывать? Вот как-то не верится
V>З.Ы. Я так понимаю, что ситуацию, когда правильного выбора контейнера V>вообще не существует и в течении развития программы он должен меняться V>здесь уже можно даже не упоминать.
В контексте интервью — пожалуй. Хотя, конечно, можно продумать вопрос, чтоб человек подобрал контейнер для начальных условий, а потом при изменившихся требованиях сменил его на другой. Спасибо за идею.
On 17.02.2013 0:52, Evgeny.Panasyuk wrote:
> Как можно "не помнить на собеседовании" хэш-таблицу, map или например > vector? Даже если "подчеркивается знание OOD"? Что можно на-OOD-шить без > таких базовых знаний?
Все. Потому как эти примитивы всего-лишь облегчают работу, но не делают
ее за программиста. Еще недавно прекрасно без них обходились, а когда
было нужно реализовывали дерево или хеш сами. Про вектор уже и говорить
не буду.
Но, поняттно, если они есть, то лучше ими пользоваться и опять же лучше
библиотечными, а не своими велосипедами с квадратными колесами. то бишь,
объясняю, используешь стандартный контейнер, делаешь задачу, если нужно
профилиоруешь, если нужно убираешь узкие места (чаще всего отнюдь не
контейнеры), если нужно менять контейнер, меняешь. Посчитал, сколько
если и я еще несколько если не дописал.
Теперь вопрос: Вы в большинстве своих решаемых задач проходите все эти если?
> Ты говоришь что думать нужно при "соответсвующих ограничениях", а не > всегда. При таком подходе код с квадратичным поиском может пройти это > code review — "а что, сейчас ведь всего 10 элементов?".
А ты уверен, что их там будет больше? Во сколько раз больше? Ты не
забыл, что означает большое O?
Очень часто, когда нужна сортировка всего 3-5 элементов.
On 17.02.2013 3:25, landerhigh wrote:
> Вот типичный пример — для решения абстрактной задачи в вакууме можно > применить алгоритм с O(1), а можно с O(N). Для абстрактной задачи в > вакууме выбор очевиден. Теперь переходим от абстрактной задачи к > конкретной. И вот тут уже далеко не до всех доходит, что O(N) может > оказаться предпочтительнее.
Читая ответы здесь, я тоже прихожу к такому выводу.
On 17.02.2013 15:46, landerhigh wrote:
> Строго говоря, я согласен с Вжиком в том, что в последнее время что-то > стало модно скорее отсеивать, нежели искать сотрудников. Даже на примере > соседнего отдела в моей конторе. Более того, сейчас есть практика сбора > негатива, когда цель собеседований — собрать подтверждение тому, что > "никого не найти".
Это логично, если людей хватает, но нужно рассказывать начальству сказки
про много работы. Сам таким занимался и также народ прокидывал, правда
не столь тупым методом. Нынче достаточно чела глубже копнуть, что делал,
большинство уплывают — они же к собеседованию-экзамену готовятся, а на
работах делают то, что им сеньор расписал.
> J>Вот именно для этого я прошу людей оценить сложность написанного ими > на бумажке кода. Это сразу отделяет зубрил от сёкарей.
А это вообще бред. Профайлер в зубы и вперед, за недельку чел. обычно
мозги включает и делает так, как нужно.
On 17.02.2013 16:45, Evgeny.Panasyuk wrote:
> Код собирается на {5 последних версиях MSVC, трёх GCC}x{x32,x64(там где > есть)} + возможно в будущем CLang (как источник дополнительных > warnings/errors) — в таких условиях запоминать какие-то конкретные > особенности реализации, если в целом работает приемлемо, тем более для > строк, которые используются не в critical path — не рационально.
А почему это нельзя спросить у тебя на собеседовани? Не ответишь же. А
собеседователь только вчера это ковырял.
Мне теперешняя шиза с собеседования начала напоминать древнюю
i+++++++++++++++++++++....
On 18.02.2013 11:04, jazzer wrote:
> V>Неужели у вас небыло отличников, которые не могли и строки кода написать > V>или сделать хоть какую-то работу самостоятельно (кроме той, что в > V>методичке расписана)? > > Не, я физик, у нас большинство таких "отличников" на 1-2 курсе вылетели.
Ясно, ты учился в супер-пупер вузе лучшей в мире страны и с тобой
учились одни Энштейшы. Я здесь не путаюсь тебя обсуждать, просто это
вытекает из твоей фразы выше.
> Ну да не суть. Допустим, есть опасность нанять зубрилу, который ничего > не соображает, но все помнит. Как насчет обратного — пришел человек, не > способен ответить на элементарные вопросы по хеш-таблицам
Ну, например, я их никогда не использовал в своей работе вообще за 20
лет. Ну не нужны они были ни разу.
И сортировки никогда не писал сам, а нет помню "пузырек" в школе. У меня
шватало всегда более сложных задач, чем собственные велосипеды лепить.
Да и SVM (support vector machine) я тоже сам не реализовывал, я
использовал libSVM.
Как я понимаю, такой человек как я вам категорически не подходит. Я
никогда не пишу то, что можно не писать, а пишу только то, что
необходимо, ну не сделал еще никто.
> или иным > стандартным контейнерам, но при этом способен в реальной работе все > грамотно выбирать и обосновывать? Вот как-то не верится
Да я уже понял. Так понимаю, что при наличии выбора нужно выбирать
всегда O(1), вне зависимости от задачи?
> В контексте интервью — пожалуй. Хотя, конечно, можно продумать вопрос, > чтоб человек подобрал контейнер для начальных условий, а потом при > изменившихся требованиях сменил его на другой. Спасибо за идею.
Ну тогда тебе и еще одна идея, если данные можно отсортировать один раз
и потом использовать, то пофиг нам на скорость сортировки в общем
случае. Если твоя прога стартанет раз в несколько лет в течение 5-10 мин
(или даже нескольких часов), то всем это до барабана, а если она будет
делать сортировку постоянно, то это уже может быть плохо.
З.Ы. Извини, но физфак, это не математика, заметно.
Здравствуйте, Vzhyk, Вы писали:
>> Ты говоришь что думать нужно при "соответсвующих ограничениях", а не >> всегда. При таком подходе код с квадратичным поиском может пройти это >> code review — "а что, сейчас ведь всего 10 элементов?". V>А ты уверен, что их там будет больше? Во сколько раз больше?
Нет, не уверен, но использовать future-proof решение — это дело нескольких строчек. Даже если выстреливать будут только 10% мест — времени на устранение потребуется гораздо больше.
V>Ты не забыл, что означает большое O?
Нет, не забыл. Недавно даже повторял определение
V>Очень часто, когда нужна сортировка всего 3-5 элементов.
И что ты предлагаешь делать в этом случае? Разбрасывать adhoc мини-сортировки по всему коду?
Здравствуйте, Vzhyk, Вы писали:
L>>>Уверен, что знаешь, какой минимальный оверхед имеет std::string в используемой у вас реализации STL? >> Код собирается на {5 последних версиях MSVC, трёх GCC}x{x32,x64(там где >> есть)} + возможно в будущем CLang (как источник дополнительных >> warnings/errors) — в таких условиях запоминать какие-то конкретные >> особенности реализации, если в целом работает приемлемо, тем более для >> строк, которые используются не в critical path — не рационально. V>А почему это нельзя спросить у тебя на собеседовани? Не ответишь же. А V>собеседователь только вчера это ковырял.
Почему нельзя? Можно — отвечу так же как и выше. Адекватный собеседователь не будет к этому цепляться.
Мне почему-то как раз такие и попадались
Здравствуйте, Evgeny.Panasyuk, Вы писали:
V>>А почему это нельзя спросить у тебя на собеседовани? Не ответишь же. А V>>собеседователь только вчера это ковырял.
EP>Почему нельзя? Можно — отвечу так же как и выше. Адекватный собеседователь не будет к этому цепляться. EP>Мне почему-то как раз такие и попадались
Здравствуйте, Vzhyk, Вы писали:
>> говоря, решили не исходную проблему, а другую, ту, которую умели решать. >> а потом попытались натянуть сами знаете что на глобус. И так стопицот раз. V>Это естественно при собеседовании в виде экзамена.
On 18.02.2013 14:30, Evgeny.Panasyuk wrote:
> Нет, не уверен, но использовать future-proof решение — это дело > нескольких строчек.
За подобное нужно руки таким програмером отрубать, что бы больше ни
строчки кода написать не могли. Не надо никаких future-proof — это
чистое вредительство.
> И что ты предлагаешь делать в этом случае? Разбрасывать adhoc > мини-сортировки по всему коду?
Жесть. Все-таки падение уровня русских программистов жуткое.
On 18.02.2013 14:39, Evgeny.Panasyuk wrote:
> Почему нельзя? Можно — отвечу так же как и выше. Адекватный > собеседователь не будет к этому цепляться.
Это зависит от того, чему адекватность ты оцениваешь.
Здравствуйте, Vzhyk, Вы писали:
V>>>Очень часто, когда нужна сортировка всего 3-5 элементов. >> И что ты предлагаешь делать в этом случае? Разбрасывать adhoc >> мини-сортировки по всему коду? V>Жесть. Все-таки падение уровня русских программистов жуткое.
Ну давай, блесни своим уровнем — что ты предлагаешь делать в выделенных условиях (придуманных тобой)? Есть 5 элементов, нужно отсортировать — твои действия?
On 18.02.2013 15:45, landerhigh wrote:
> Если бы это на собеседовании было... если бы.
Нет, это все после, а на собеседовании проверили теоретические знания, а
потом, это пусть уже тот, кому этого теоретика подсунут пусть разгребается
On 18.02.2013 16:12, Evgeny.Panasyuk wrote:
> Ну давай, блесни своим уровнем — что ты предлагаешь делать в выделенных > условиях (придуманных тобой)? Есть 5 элементов, нужно отсортировать — > твои действия?
Не собираюсь я тут блескать — это раз.
Два, использую стандартный sort.
Три, если это будет узким местом, тогда и буду думать. Возможно можно
будет вообще убрать эту сортировку, потом спрошу у гугла, а дальше
использую то, что лучше всего мне подойдет из всех его предложений и
моих ограничений.
Здравствуйте, Vzhyk, Вы писали:
V>>>>>Очень часто, когда нужна сортировка всего 3-5 элементов.
>>>>И что ты предлагаешь делать в этом случае? Разбрасывать adhoc >>>>мини-сортировки по всему коду?
V>>>Жесть. Все-таки падение уровня русских программистов жуткое.
>> Ну давай, блесни своим уровнем — что ты предлагаешь делать в выделенных >> условиях (придуманных тобой)? Есть 5 элементов, нужно отсортировать — >> твои действия?
V>Два, использую стандартный sort.
Тогда прокомментируй подчёркнутое высказывание выше.
Здравствуйте, Vzhyk, Вы писали:
V>On 16.02.2013 19:23, jazzer wrote:
>> Ну и немалая часть архитектуры — это организация данных, т.е. контейнеры >> и связанные с ними алгоритмы. V>Упс. Ты не сталкивался с задачами, где алгоритмы — это основное и не V>элементарные по сортировке данных, а гораздо сложнее?
Сталкивался, конечно, только при чем тут архитектура? Есть весьма замысловатые алгоритмы даже на простых массивах.
Здравствуйте, Vzhyk, Вы писали:
V>On 18.02.2013 11:04, jazzer wrote:
>> V>Неужели у вас небыло отличников, которые не могли и строки кода написать >> V>или сделать хоть какую-то работу самостоятельно (кроме той, что в >> V>методичке расписана)? >> >> Не, я физик, у нас большинство таких "отличников" на 1-2 курсе вылетели. V>Ясно, ты учился в супер-пупер вузе лучшей в мире страны и с тобой V>учились одни Энштейшы. Я здесь не путаюсь тебя обсуждать, просто это V>вытекает из твоей фразы выше.
Ну дык, "самый лучший институт в СССР" (с)
Но отсев на первых двух курсах действительно был большим, а про 6-й курс я уже сказал.
V>И сортировки никогда не писал сам, а нет помню "пузырек" в школе. У меня V>шватало всегда более сложных задач, чем собственные велосипеды лепить.
Кто говорит о том, что их надо писать?! Ну кроме тебя, конечно.
V>Да и SVM (support vector machine) я тоже сам не реализовывал, я V>использовал libSVM. V>Как я понимаю, такой человек как я вам категорически не подходит. Я V>никогда не пишу то, что можно не писать, а пишу только то, что V>необходимо, ну не сделал еще никто.
Ты почему-то все время подменяешь предмет обсуждения.
Мы тут говорим о том, что человек, не зная характеристик своих инструментов, не сможет выбрать правильный.
А ты все время заворачиваешь разговор от выбора к написанию.
>> или иным >> стандартным контейнерам, но при этом способен в реальной работе все >> грамотно выбирать и обосновывать? Вот как-то не верится V>Да я уже понял. Так понимаю, что при наличии выбора нужно выбирать V>всегда O(1), вне зависимости от задачи?
Сорри, мне неприятно вести разговор в такой манере, когда ты молчаливо полагаешь, что я идиот, а я должен отбиваться от твоих нападок. Извини.
>> В контексте интервью — пожалуй. Хотя, конечно, можно продумать вопрос, >> чтоб человек подобрал контейнер для начальных условий, а потом при >> изменившихся требованиях сменил его на другой. Спасибо за идею. V>Ну тогда тебе и еще одна идея, если данные можно отсортировать один раз V>и потом использовать, то пофиг нам на скорость сортировки в общем V>случае. Если твоя прога стартанет раз в несколько лет в течение 5-10 мин V>(или даже нескольких часов), то всем это до барабана, а если она будет V>делать сортировку постоянно, то это уже может быть плохо.
Спасибо, К.О. Какое это отношение имеет к интервью?
V>З.Ы. Извини, но физфак, это не математика, заметно.
Я и не утверждал никогда, что я по образованию математик или программист.
Ну и смени тон на более уважительный, если хочешь продолжения общения.
Общение в текущем ключе меня категорически не устраивает.
Я не знаю, чем я вызвал такой поток личного негатива с твоей стороны, ибо не помню, чтоб я хоть раз отозвался о тебе неуважительно.
Но если я тебя так сильно раздражаю и ты не можешь со мной говорить иначе, давай просто прекратим.
Здравствуйте, genre, Вы писали:
A>>А вот во всяких студенческих компаниях, где архитектуры как таковой просто нет, там да, у каждого есть возможность сделать что-то, а потом рассказывать как это было хорошо, а в этом время очередной переписывальщик делает свой хороший дизайн архитектуры.
G>ну я все-таки про дизайн, а не про архитектуру. архитектор это штучный товар. а дизайнить приходится каждому.
Тогда мы о разных вещах. С дизайном как раз сталкивается не каждый.
Это либо гуи-разработчики в мелких фирмах (в крупных они тоже не занимаются дизайном внешнего вида), либо швец и жнец в одном лице в совсем мелких фирмах.
Или просто студенты, которые пока ещё никакую специализацию не получили, изучили формочки на элементарном уровне, и думают что они занимаются дизайном внешнего вида.
Здравствуйте, genre, Вы писали:
G>ну если у тебя команда с крайне жестким распределением обязанностей, то, да, ответы будут разными. но большинство команд все-таки стремится к обратному.
Это идеальный вариант для менеджера, что каждый может заменить каждого, такое очень редко где бывает.
Может быть все и стремятся, но у каждого программиста есть код, за который он отвечает, он может разбираться в некоторых частях проекта, а в остальных вообще ничего не понимать.
G>когда первый сделал ресерч, он рассказал о результатах команде, что ресерчилось, как, почему, какие результаты, почему сделан выбор именно в пользу выбранного потому что работать с этой технологией предстоит всем. и если через полгода оба придут к тебе на собеседование то выявить автора будет очень сложно.
Если собеседующий понимает о чём идёт речь, то вполне себе выявит.
Здравствуйте, Vzhyk, Вы писали:
V>З.Ы. Извини, но физфак, это не математика, заметно.
Конечно, не математика, а гораздо лучше. Но жаззер вроде физтеховец, так что с физ.факом ты пролетел .
Здравствуйте, alzt, Вы писали:
A>Тогда мы о разных вещах. С дизайном как раз сталкивается не каждый. A>Это либо гуи-разработчики в мелких фирмах (в крупных они тоже не занимаются дизайном внешнего вида), либо швец и жнец в одном лице в совсем мелких фирмах. A>Или просто студенты, которые пока ещё никакую специализацию не получили, изучили формочки на элементарном уровне, и думают что они занимаются дизайном внешнего вида.
какой нафиг дизайн формочек? я про тот дизайн который например ООД
Здравствуйте, alzt, Вы писали:
A>Это идеальный вариант для менеджера, что каждый может заменить каждого, такое очень редко где бывает. A>Может быть все и стремятся, но у каждого программиста есть код, за который он отвечает, он может разбираться в некоторых частях проекта, а в остальных вообще ничего не понимать.
ну допустим. то есть у любого работающего программиста есть части проекта в которых он так или иначе но разбирается.
я все равно совершенно не понимаю как ты собираешься отличать по рассказу об этих частях проекта определять технический уровень программиста.
Здравствуйте, genre, Вы писали:
G>ну допустим. то есть у любого работающего программиста есть части проекта в которых он так или иначе но разбирается. G>я все равно совершенно не понимаю как ты собираешься отличать по рассказу об этих частях проекта определять технический уровень программиста.
Выше мы не о техническом уровне, а о роли программиста в проекте. Но не велика разница.
А попробуй у коллег или подчинённых поспрашивать что-то о тех частях проекта, в которых ты хорошо разбираются, а они только слышали где звон. Не смогут они нормально рассказать. Причём некоторые, которые касались этих частей будут хоть что-то рассказывать, а остальные максимум общие слова.
Здравствуйте, alzt, Вы писали:
A>Выше мы не о техническом уровне, а о роли программиста в проекте. Но не велика разница.
изначально речь про собеседования идет.
A>А попробуй у коллег или подчинённых поспрашивать что-то о тех частях проекта, в которых ты хорошо разбираются, а они только слышали где звон. Не смогут они нормально рассказать. Причём некоторые, которые касались этих частей будут хоть что-то рассказывать, а остальные максимум общие слова.
Это не интересно. Ты попробуй поспрашивать о тех проектах в которых они до тебя учавствовали и про которые ты не в курсе. Вот наслушаешься.
Умение человека рассказывать о том в каких великих проектах он принимал участие сродни умениям того дедушки из анекдота. Который "и вы говорите". И совершенно не коррелирует с умением писать код.
Здравствуйте, nile, Вы писали:
N>Но утверждать, что все корпорации целенаправленно набирают только тупых болванчиков — это идиотизм. Цель любой компании — извлечение прибыли. Прибыль извлекается благодаря успешной конкуренции. А конкуренция обеспечивается качественными продуктами (и маркетингом, да),
Здравствуйте, lollipop, Вы писали:
L> Даже помню реализацию TreeMap. Однако не помню реализацию hashmap)
То есть, Вы говорите, что знаете, понимаете и помните RBT, со всеми фишками перебалансировки и тд, но забыли масив и два метода equals and hashCode, как то странно звучит учитывая то, что Вы написали, что Вы с опытом и не после универа, обычно студенты последних курсов знают красно-черную беду, а вот программисты больше склонны понимать хешмепы, ну это мое мнение.
Здравствуйте, lollipop, Вы писали:
L> Здравствуйте господа интервьюеры. Скажите какой принципиальный смысл спрашивать университетскую ерунду на собеседованиях.
Хорошие задачи которые помогают быстро разделить людей на тех кто "применяю, но уже не знаю почему" и "применяю, и могу объяснить почему".
хорошее CV и куча сданных проектов, это конечно круто, но без рекомендаций, почти не чего не стоят в данный момент, так как описывать на словах как они круты могут многие.
On 07.03.2013 11:26, Tourist wrote:
> Хорошие задачи которые помогают быстро разделить людей на тех кто > "применяю, но уже не знаю почему" и "применяю, и могу объяснить почему".
Корректнее будет "применяю, но уже не помню почему" и "применяю, и могу
объяснить почему".
Кстати здесь получается одно прикольное следствие: люди с очень большим
стажем 15 и больше пролетают, так как уже и не помнят, а проходят с
небольшим стажем 5-10.
Здравствуйте, Vzhyk, Вы писали:
V>Кстати здесь получается одно прикольное следствие: люди с очень большим V>стажем 15 и больше пролетают, так как уже и не помнят, а проходят с V>небольшим стажем 5-10.
Ну необязательно пролетают.
Во-первых, в специфических областях алгоритмы в чистом виде все-таки применяются. Не для любой задачи подойдет универсальный контейнер из стандартной библиотеки.
А во-вторых, освежить забытые знания проще, чем получить новые. Потратить месяцок на это дело и снова будто только закончил университет, да еще и с глубоким пониманием области применения теории на практике, всех джуниоров оставишь позади
On 07.03.2013 13:51, nile wrote:
> Потратить месяцок на это дело и снова будто только закончил университет, > да еще и с глубоким пониманием области применения теории на практике, > всех джуниоров оставишь позади
Ты все пытаешься телепатию включать про меня, не надо. Фигня выходит.
Обсуждать себя здесь у меня нет никакого желания. Кому надо, те и так
знают меня хорошо (и на этом форуме в том числе), кому не надо, те не знают.
Пост был в общем-то только с одной целью, показать, тем, кто не видит,
что у озвученного подхода выше есть такое следствие. Пост был о том, что
если конторе нужны опытные, то такими действиями она их отсекает, как
говорится ССЗБ. Если не нужны, то понятно, что пофиг кого брать и в этом
случае логично отбирать по неким теоретическим знаниям.
З.Ы. А с другой стороны, что делать на конторе дедушке, где нанимают детей.
Здравствуйте, nile, Вы писали:
N>Ну необязательно пролетают.
пролетают. Потом, правда, и проекты тоже нередко пролетают, когда вдруг оказывается, что программный продукт вовсе не алгоритмодрочерством делается.
N>Во-первых, в специфических областях алгоритмы в чистом виде все-таки применяются. Не для любой задачи подойдет универсальный контейнер из стандартной библиотеки.
Если не принимать во внимание хрестоматийный случай жгучего желания непременно изобрести собственный велосипед, то окажется, что таких областей исчезающе мало.
N>А во-вторых, освежить забытые знания проще, чем получить новые. Потратить месяцок на это дело и снова будто только закончил университет, да еще и с глубоким пониманием области применения теории на практике, всех джуниоров оставишь позади
Освежать неиспользуемые и, как правило, справочные данные? Это онанизм.
Для поиска решения неортодоксальной задачи все равно придется проводить исследования, а для типовых задач, коих 95%, достаточно стандартной библиотеки.
On 07.03.2013 14:33, landerhigh wrote:
> пролетают. Потом, правда, и проекты тоже нередко пролетают, когда /вдруг > /оказывается, что программный продукт вовсе не алгоритмодрочерством > делается.
Зато классный повод заказчика еще несколько лет доить.
Здравствуйте, Vzhyk, Вы писали:
V>On 07.03.2013 11:26, Tourist wrote:
V>Кстати здесь получается одно прикольное следствие: люди с очень большим V>стажем 15 и больше пролетают, так как уже и не помнят, а проходят с V>небольшим стажем 5-10.
стаж != знания
у людей скалероз чтоли? Обычно с возростом накапливается кругозор и знания наоборот, но если в одно ухо влетает, в другое вылетает, какой тогда смысл в этих 15 годах если человек не в состояние накапливать и применять эти знания.
Здравствуйте, Vzhyk, Вы писали:
V>Ты все пытаешься телепатию включать про меня, не надо.
Вовсе нет, мне твоя личность глубоко безразлична.
Я всего лишь хотел показать, что твое утверждение, что в указанных условиях специалист с 15-летним опытом выглядит хуже специалиста с 5-летним опытом, неправда. Многое зависит от опыта. Тут же не требуется доказательства теорем. Знание принципов построения HashMap и других структур данных уж точно не помешает, а в сложных ситуациях может пригодиться. И необязательно для изобретения велосипеда, а возможно для выбора между различными готовыми реализациями разных структур данных.
Можно писать на Java/C# не имея опыта работы на C++ и жить спокойно. Не понимать принципы организации памяти, сборщиков мусора, что они делают и зачем нужны. Но у тех, кто эти вещи понимает, при прочих равных расход памяти будет меньше, а система будет работать быстрее. Конечно нет смысла страдать излишней оптимизацией для простенькой нетребовательной к ресурсам системы, но для своих задач этот опыт очень важен.
Многое зависит от задачи. Если в твоей работе эти знания ни к чему, это еще не значит, что они вообще не нужны. Чтобы клепать формочки и строить не сильно нагруженные системы, писать сайтики — ну конечно не нужны алгоритмы. А для написания поисковых движков, распределенных систем и т.п. такие знания пригодятся. Другой вопрос, что такие знания несложно получить уже в тот момент, когда они действительно потребуются и незачем постоянно хранить их в голове. Я тут не делаю предположений о роде деятельности кого-либо, а просто привожу крайние наглядные примеры.
Здравствуйте, Tourist, Вы писали:
T>у людей скалероз чтоли? Обычно с возростом накапливается кругозор и знания наоборот, но если в одно ухо влетает, в другое вылетает, какой тогда смысл в этих 15 годах если человек не в состояние накапливать и применять эти знания.
Накапливаются используемые знания, забываются неиспользуемые. Хотя основы, конечно, остаются в голове. И если человек однажды узнал, как устроен HashMap, вряд ли когда-нибудь забудет о хэш-функции и коллизиях. Это не теоретизмы, а вполне реальные практически используемые вещи. А если "забыл", то скорее всего в свое время не понял.
On 07.03.2013 15:52, Tourist wrote:
> у людей скалероз чтоли? Обычно с возростом накапливается кругозор и > знания наоборот, но если в одно ухо влетает, в другое вылетает, какой > тогда смысл в этих 15 годах если человек не в состояние накапливать и > применять эти знания.
Знания наоборот — это как?
Такое впечатление, что ты восприниаешь свою память как накопитель на
жестких дисках и если диск сбоит меняешь.
On 07.03.2013 16:06, nile wrote:
> И если человек однажды узнал, как > устроен HashMap, вряд ли когда-нибудь забудет о хэш-функции и коллизиях. > Это не теоретизмы, а вполне реальные практически используемые вещи. А > если "забыл", то скорее всего в свое время не понял.
Это жесть, называется. За 20 лет мне оное не понадобилось ни разу,
вообще. А когда подобная функциональность нужна была, то втискивать ее в
имеющиеся контейнеры — это бред.
Здравствуйте, Vzhyk, Вы писали:
V>On 07.03.2013 15:52, Tourist wrote:
V>Такое впечатление, что ты восприниаешь свою память как накопитель на V>жестких дисках и если диск сбоит меняешь.
Я хочу сказать нет смысла гордиться своими 15 годами стажа в резюме и рассчитывать что потенциальные работодатели придут от этого в экстаз. Берут на работу за реальные знания которые ты готов принимать сразу, или за умения быстро входить для тебя новые области и в краткие сроки там становиться экспертом. А для этого, вы не поверите, нужно свои мозги время от времени тренировать, и память в том числе.
Если человек не уверено разговаривает о hash функциях, он либо ни когда достаточно с ними работал, либо у него проблемы с памятью. В обоих случаях это повод задуматься о нужности найма такого специалиста.
On 07.03.2013 16:32, Tourist wrote:
> Берут на работу за реальные знания которые ты готов принимать сразу, или > за умения быстро входить для тебя новые области и в краткие сроки там > становиться экспертом.
А краткие — это сколько?
Здравствуйте, Tourist, Вы писали:
T>у людей скалероз чтоли? Обычно с возростом накапливается кругозор и знания наоборот, но если в одно ухо влетает, в другое вылетает, какой тогда смысл в этих 15 годах если человек не в состояние накапливать и применять эти знания.
Иногда в работе не востребованы навыки написания говнокода на скорость, и не востребована поддержка говнокода. Да, открою секрет — иногда есть и такая работа. Иногда пишешь с нуля с использованием уже наработанных либ, либо в проектах код нормальный, и правка в одном месте не может повлечь необходимость затыкать в другом месте. В этом случае, уверяю, у тебя будет чем забить голову на работе, чем каждый день писать хешфункции вручную, каждый день вручную управлять памятью. А когда хешфункции, сортировки, обращения списков, поиск цикла в односвязном списке и тому подобное пишешь не каждый день, то голова забита совсем другими вещами! В приличных размерах проекте требуется помнить до черта всего, чтобы быстро в нем ориентироваться, а также чтоб не допускать там говнокода и не писать одно и тоже криво и 10 раз по разному.
Если проект написан нормально, то ты с багами типа дедлоков, неправильным порядком инициализации, тонкостями перегрузки и переопределения, и тому подобным — вообще не сталкиваешься, ибо таких багов в проекте нет! А вот когда ты сидишь в говнокоде, в котором постоянно вручную делаются синхронизации, и где постоянно чуть тронешь, и будет дедлок — вот тогда ты будешь думать не о задачах, которые требуется решать, а о примитивах синхронизации, тонкостями работы коллекций и тому подобном. Значит ли это, что опытный профессионал обязан код превращать в пазл, каждый день вручную писать хешфункции, чтоб не терять навыки прохождения собеседований у Туриста?
Опыт и квалификация — это не запоминание местоположения граблей. Опыт — это умение интуитивно избегать грабли, это привычка ходить без страха, это уверенность, что даже если ошибешься в выборе унитаза, то дом, который ты строишь, не порушится из за этого, и это всегда можно будет поправить.
Так что кругозор накапливается. И умение применять это все накапливается. И знания есть. И даже понимание почему делаешь именно так, а не иначе. Только это не те знания, которые требуются зубрить студенту с целью устроиться на первую работу.
Здравствуйте, elmal, Вы писали:
E>Здравствуйте, Tourist, Вы писали:
E>Так что кругозор накапливается. И умение применять это все накапливается. И знания есть. И даже понимание почему делаешь именно так, а не иначе. Только это не те знания, которые требуются зубрить студенту с целью устроиться на первую работу.
Ни кто и не ожидает, что кто то пишет сейчас свои hash функции или коллекции. Да этого и не требуется, важно что человек интересуется и знает как работает сторонние библиотеки, их плюсы и минусы, когда их стоит применять, а когда не стоит. А не просто использует, потому что "все" так делают в его проекте, или просто более умные люди до него заложили все основы, а он просто лабает код в сложившимся стиле. Причем, в этом нет не чего плохого,важно чтоб человек не разучился думать самостоятельно и мог объяснить, почему он так поступает. Причем ответ "так принято" мне лично не подходит.
Здравствуйте, Vzhyk, Вы писали:
V>А когда подобная функциональность нужна была, то втискивать ее в V>имеющиеся контейнеры — это бред.
Чтобы реализовать подобную функциональность, надо понимать принципы построения стандартных структур данных. Или ты заново изобретал Computer Science для решения таких задач, не имея представления о деревьях и списках?
Здравствуйте, Tourist, Вы писали:
T>Ни кто и не ожидает, что кто то пишет сейчас свои hash функции или коллекции. Да этого и не требуется, важно что человек интересуется и знает как работает сторонние библиотеки, их плюсы и минусы, когда их стоит применять, а когда не стоит. А не просто использует, потому что "все" так делают в его проекте, или просто более умные люди до него заложили все основы, а он просто лабает код в сложившимся стиле. Причем, в этом нет не чего плохого,важно чтоб человек не разучился думать самостоятельно и мог объяснить, почему он так поступает. Причем ответ "так принято" мне лично не подходит.
Итого, месье наизусть помнит константу на которую нужно умножать в случае, когда делаем сложную хешфункцию на основе простых? Прекрасно. Вот только практика показывает, что такое помнишь только по той причине, что это спрашиваешь на собеседованиях. Перестанешь такое спрашивать годика 2 — и уже будет у тебя это все гораздо хуже от языка отлетать, чем сейчас. Соответственно вопрос — если перестав это спрашивать (а также ходить по собеседованиям эти 2 года) ты несколько стал менее уверенным, значит ли это, что ты станешь хуже как специалист? И значит ли это, что тот, кто в данный момент спрашивает точно такие же вопросы, как ты — тот идеальный специалист, подходящий вам как нельзя лучше?
Человек может знать вместо ньюансов этих библиотек много чего еще, чего не знаешь ты. Причем очень важного именно на твоем проекте. И у которого тебе есть многому чего научиться, ибо на подобных проектах тот кандидат собаку съел. Зачем тебе на проекте 2 человека, который знает именно то, что знаешь ты? Тебе в команду нужен тот, у которого тебе есть чему поучиться, и который не знает многого того, что знаешь ты. В этом случае будет выгодно всем, команда будет более сбалансированной.
Да, кстати, а почему константа именно 31? Почему не 63? А если не прибавлять, а вычитать, то какая будет константа? Месье может ответить прямо сейчас сходу? А если не ответит — значит ли это, что месье ни хрена не разбирается в хешфункциях? Ибо, вообще то говоря, выбор хорошей хешфункции это весьма нетривиальная задача. Если дать структуры данных, сказать распределение — месье сможет подобрать оптимальную хешфункцию сходу, чтоб получить ускорение в несколько раз? Ведь тривиально подобными вопросами засыпать даже такого мастера по хешкодам, для которого это любимый вопрос на собеседовании.
On 07.03.2013 18:54, nile wrote:
> Чтобы реализовать подобную функциональность, надо понимать принципы > построения стандартных структур данных.
Дожились, уровень училища приравняли к ВУЗу — учиться лучше надо было.
Неужели ты думаешь, что все эти структуры — "божетсвенный дар" с Марса
вам зеленые человечки принесли.
On 07.03.2013 19:10, nile wrote:
> И сортировку ни разу самому не приходилось писать за 20 лет?
Нет, я не больной на голову, чтобы изобретать велосипеды с квадратными
колесами (хотя, вспомнил, лет 30 назад в школе "пузырек") — есть море
более интересных и сложных задач. Правда ни опредени, ни формы мне ваять
не пришлось ни разу и морды к базам данных тоже (ну гуй иногда немного
надо было).
Здравствуйте, Vzhyk, Вы писали:
V>Дожились, уровень училища приравняли к ВУЗу — учиться лучше надо было. V>Неужели ты думаешь, что все эти структуры — "божетсвенный дар" с Марса V>вам зеленые человечки принесли.
Я просто поражаюсь, какой бессмысленный бред рождает твой воспаленный мозг. Хорошо хоть сам понимаешь, что имеешь ввиду.
Здравствуйте, Vzhyk, Вы писали:
V>On 07.03.2013 14:33, landerhigh wrote:
>> пролетают. Потом, правда, и проекты тоже нередко пролетают, когда /вдруг >> /оказывается, что программный продукт вовсе не алгоритмодрочерством >> делается. V>Зато классный повод заказчика еще несколько лет доить.
Это да. Тут еще один тренд есть — преднамеренный завал собеседуемых для создания негативной картины. Типа никого не найти, все лохи чилийские и мы одни дартаньяны.
Здравствуйте, Tourist, Вы писали:
T>Здравствуйте, Vzhyk, Вы писали:
V>>On 07.03.2013 15:52, Tourist wrote:
V>>Такое впечатление, что ты восприниаешь свою память как накопитель на V>>жестких дисках и если диск сбоит меняешь.
T>Я хочу сказать нет смысла гордиться своими 15 годами стажа в резюме и рассчитывать что потенциальные работодатели придут от этого в экстаз. Берут на работу за реальные знания которые ты готов принимать сразу, или за умения быстро входить для тебя новые области и в краткие сроки там становиться экспертом. А для этого, вы не поверите, нужно свои мозги время от времени тренировать, и память в том числе.
Ну попробуй за краткое время стать экспертом, скажем, в Oracle