Re[8]: Собеседование в Яndex
От: Axc  
Дата: 09.10.07 21:01
Оценка:
Здравствуйте, aik, Вы писали:

CC>>Это ж как так? Никакого STL. Даже CRT! Даже WinAPI и NTAPI нельзя???? И ОС под себя писать самому?


aik>Сначала — компилятор!


Сначала, все ж таки, — собрать компьютер (не будем углубляться в детали)
Re[5]: Комментарий про собеседование + тестируем Anatolix
От: oraz  
Дата: 09.10.07 21:06
Оценка:
Здравствуйте, Cyberax, Вы писали:

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


O>>Предлагаю участникам дискуссии, ради справедливости, "потестировать" господ из Яндекса (Anatolix et al) вопросами из своей

O>>области.
O>>Наверняка г-да из Яндекса знакомы с Berkeley DB и с Apache. Мои три вопроса такие:
C>Я не из Яндекса. Попробую ответить.

O>>1) Почему в BDB для кеша лучше использовать shared memory, а не mmap, которая используется там по умолчанию?

C>А без разницы. Если база не разделяется между процессами — то вообще пофиг, механизм в shm и mmap один и тот же (в Линуксе).

O>>2) В BDB в исходниках есть вставка ассемблерного кода, хотя в целом программа написана на С. Зачем она могла

O>>понадобиться? Разве средствами C/C++ нельзя было обойтись? Просьба в исходники не смотреть, так как вопрос на
O>>понимание проблем бд
C>Вероятно, кривые руки программистов или premature optimization (a.k.a. the root of all evil). Потому как PostgreSQL, MySQL и SQLite обходятся без ассемблера.

C>Заглянул в исходники BDB-4.6.21 — файл на ассемблере всего один, uts4_cc.s Еще ассемблерные вставки в mutex_int.h Используются для самодельных мьютексов, которые можно класть в shmem. Мда.


C>И уж к "проблемам БД" это никоим боком не относится.


O>>3) Пусть есть прикладная программа, подлинкованная к Apache в качестве модуля. Пусть она считает какую-то статистику

O>>и заносит данные в ту же BDB. Серверу в целом надо обрабатывать одновременно порядка 30000 соединений по 1000 запросов
O>>в секунду. Вопрос: какое значение MaxClients вы бы установили в конфиге Apache, чтобы сервер в целом справился с этой нагрузкой?
C>Ответ: выкинуть Апач или переделать приложение. Нафиг не надо использовать для статистики BDB с ее никакой конкуррентностью. Или проще запустить ее в отдельном потоке, куда будут перекачиваться записи статистики.

C>Вообще, идиотские вопросы. На второй так вообще без телепатии не ответить. В общем, пиши ещё.


Оценка: 3+
правильные ответы смотри в ответе Anatolix
1) не видишь разницы в shm и mmap
2) раз они такие идиоты почему их купил Oracle?
3) предложи выкинуть Apache компании Yahoo
http://public.yahoo.com/bfrance/radwin/talks/yapache-apachecon2005.htm
Re[3]: Собеседование в Яndex
От: aik Австралия  
Дата: 09.10.07 21:12
Оценка:
Здравствуйте, alvo, Вы писали:

A>3.Зря в Яндексе не уделяют внимание резюме соискателя. Не проводят беседу по его предыдущим местам работы, по опыту, какие задачи он решал. Профессионализм состоит из нескольких составляющих, главные из которых знание и опыт. Только тестируя знания претендента они упускают вторую составляющую профессионализма- опыт. Можно делать вывод отсюда. В ЯНДЕКСЕ ОТСУТСТВУЮТ ПРОФЕССИОНАЛЫ. А как они туда попадут, если кроме знаний на собеседовании больше ничего не проверяется, а знания- не единственный критерий профи? Это логический вывод, я не знаю как там реально.



Для того чтобы вывод обозвать логическим, у тебя исключительно мало информации.
Во1ых, неопытный человек сильно больше вопросов слажает, чем опытный. Это — не очевидно? Мне вопросов 40 задали, "задачек" было не более десятка.
Во2ых, резюме по большей части — откровенные подделки. Половина — железно, проверял лично. Это если по тексту. Если собеседовать — могут и наврать в лицо. Помню, мне соискатель заявил что он "контрибутил ntfs в ядро линукса", я написал тому, кто в ntfs.h (или как там его) был прописан создателем — "да, говорит, был такой, спросил "не помочь ли чем" и исчез".
В3их, их деятельность настолько отличается от прочего софтверного потока, что ну нафига им люди с опытом, к примеру, в D3D или ATL? Что толку в опыте, если человек не может применить алгоритм из stl, на котором весь яндекс живет?
Re[5]: Комментарий про собеседование + тестируем Anatolix
От: oraz  
Дата: 09.10.07 22:10
Оценка:
Здравствуйте, Anatolix, Вы писали:

O>>1) Почему в BDB для кеша лучше использовать shared memory, а не mmap, которая используется там по умолчанию?


A>1) Чтобы кэш был только в памяти, и не писался на диск(для этого imho memcached лучше подходит).


верно, с mmap могут быть проблемы с sync

O>>2) В BDB в исходниках есть вставка ассемблерного кода, хотя в целом программа написана на С. Зачем она могла

O>>понадобиться? Разве средствами C/C++ нельзя было обойтись? Просьба в исходники не смотреть, так как вопрос на
O>>понимание проблем бд

A>Без понятия. Обычно так работают с какими нибудь Atomic-ами без системного вызова. Много где видел собственные atomic-и реализованные как asm {lock: cmpxchg }. Еще это могут быть инструкции типа типа SSE которые компилятор написать внятно не может, а человек может. Есть некоторые сомнения, что без ассемблера таки совсем нельзя их написать. Я думаю можно, просто менее эффективно. Плюс BDB работает на многих системах, у части из них ассемблер разный. Сомневаюсь, что там есть универсальная вставка на ассемблере для всего.


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

O>>3) Пусть есть прикладная программа, подлинкованная к Apache в качестве модуля. Пусть она считает какую-то статистику

O>>и заносит данные в ту же BDB. Серверу в целом надо обрабатывать одновременно порядка 30000 соединений по 1000 запросов
O>>в секунду. Вопрос: какое значение MaxClients вы бы установили в конфиге Apache, чтобы сервер в целом справился с этой нагрузкой?

O>>а) 300

O>>б) 3000
O>>в) 30000
O>>г) другое

A>Для начала нужно все-таки сказать какой apache — 1.x или 2.x — вернее с тредами он или с процессами, т.к. второй вроде как и процессами умеет. Опять угадываю телепатически. Судя по классическому вопросу подразумевается классический ответ для первого апача с процессами. Расскажу для него.


A>Первый apache использует fork() для размножения, поэтому каждый apache это честный процесс. Соотвественно это приводит к тому, что тебя реально будет запущено столько же процессов с BDB сколько apache-ей расфоркано. Ставить в запредельное количество процессов я бы просто не стал, т.к. если каждый процесс например по 100M то много их просто не влезет. Возможно у BDB есть настройка с той самой shared memory которая позволяет это обходить(но я про нее не знаю), но тем не менее тысячи процессов я бы точно ставить не стал, даже если бы там никакой BDB не было.


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

A>Тем не менее я бы поверх такого apache поставил nginx или лайти, потому как 30000 клиентов и всего 1000 запросов в секунду клиентов все-таки предполагают keep-alive. Т.е. правильный ответ "другое". В этом случае количество процессов апача я бы подобрал "до упора" самого прогруженного ресурса системы, т.е. если они все только CPU жрут и нигде не блокируются — то про количеству ядер. Если памяти не хватает — по количеству памяти. Если на диске блокируются, то до 95% загрузки диска.

отличный ответ
естественно, ждал совета впереди поставить nginx etc
MaxClients: другое
чем меньше тем лучше
оптимально было бы конечно = 1
реално 20 — 30

Оценка 5 баллов. Жму лапу.

A>P.S. Куда я собеседование сдавал(и почему мне заранее не рассказали про проект )? Сдал? Какая зарплата ?


могу порекомендовать в рамблер
Re[5]: И я там был, мед-пиво пил
От: Изя Рнет Беларусь  
Дата: 09.10.07 22:34
Оценка:
Здравствуйте, pavel_turbin, Вы писали:


AZ>>Яндексом пользуюсь крайне редко, родной поисковик — Google. Инженеры в Google, возможно, более толковые, так как выдача мне нравится больше.


_>Ха ха ха.


_>Яндекс наверно единственная Российская IT компания конторая наровне конкурирует с Google,


Нэт.

Не конкурирует. И не наравне.

_> по крайней мере в .ru. Немногие в мире могут этим похвастаться, ибо их Google уже ... ням-ням.


Анекдот про Неуловимого Джо знаете?

Это не критика Яндекса, Яндекс — хорошая компания, одна из лучших в России, просто не тот масштаб и не тот рынок, как ни странно.
Re[3]: Собеседование в Яndex
От: Изя Рнет Беларусь  
Дата: 09.10.07 22:43
Оценка:
Здравствуйте, alvo, Вы писали:

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

R>>хотел бы несколько мыслей всем дать по поводу собеседований (в том числе и представителям Яндекс, раз у них кроме денег всё остальное плохо)

R>>1. не пускать на собеседования отмороженных технарей, особенно молодеж (лет до 30), так как в таком возрасте можно получить больше загибание пальцев (даже никак не проявляемое визуально), чем нормальное собеседование ("он пришел на собеседование-значит он лузер, а я провожу — значит я крут"). Собеседование должен проводить технически грамотный начальник и чем старше и выше по должности, тем лучше (желательно без комплексов неполноценности и обид на контору), желательно если это будет одаренный человек, конечно это редкость, но против древних римлян с их "равный видит равного" не попрешь.


R>>2. давать мегатесты по языку имеет смысл, но ничего не дает, так как человек просто не обязан держать в голове десятки мегабайт документации (инженер должен знать где найти информацию, но не должен пытаться её запомнить). По опыту скажу, что многие люди с которыми работал, не всегда могли адекватно выполнить задачу, несмотря на прекрасную память и знание языка с его ньюансами (видать в чем то другом всеж загвоздка, а не в побуквенном знании заворотов кишок конкретного продукта).


R>>3. Достаточно дать одну-две задачки на сообразительность и простую(!) задачку на написание кода на бумаге (без компьютера, но задача должна быть именно простая), что суммарно займет минимум времени и покажет очень хорошо возможности кандидата. Даже из написанной кандидатом программы Hello World (на бумаге и без компа) при анализе можно много почерпнуть.


R>>4. В целом кандидат дает гораздо больше информации о себе в процессе нетехнической беседы и рассматривать его как распечатку — себе в убыток. Лучше кофе попить и поговорить почему он вообще программированием занимается, чем узлы из классов давать.


A>Вы опередили меня. Хотел о том же самом написать. В таком же порядке.

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

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

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

A>2.Тестировать 2-3 часа олимпиадными задачками- один из самых плохих способов тестирования. Уже после первого часа активного обдумывания мозг начинает уставать и остальные задачки имеют мало шансов быть решенными. Ведь не зря же в школах, университетах занятия делают по 45 минут.


Не из самых плохих, но и не из хороших. Одна-две задачи, и хватит. Лучше одна, чем две.

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


Плохо проверяемо. Человек может наплести чего угодно. Единственное, что здесь можно оценить — это не путается ли пациент в показаниях

A>Можно делать вывод отсюда. В ЯНДЕКСЕ ОТСУТСТВУЮТ ПРОФЕССИОНАЛЫ. А как они туда попадут, если кроме знаний на собеседовании больше ничего не проверяется, а знания- не единственный критерий профи? Это логический вывод, я не знаю как там реально.


A>И отдельный совет от меня в пустоту (вряд ли кто из Яндекса будут читать и применять на практике этот совет):

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


Это хорошо звучит, но плохо согласуется с практикой. Надо искать и то, и другое. Потом взвешивать. Бывают такие слабые места, которые делают человека профнепригодным. И никакие сильные стороны не спасут.
Re[6]: Комментарий про собеседование + тестируем Anatolix
От: Cyberax Марс  
Дата: 09.10.07 22:58
Оценка:
Здравствуйте, oraz, Вы писали:

C>>Вообще, идиотские вопросы. На второй так вообще без телепатии не ответить. В общем, пиши ещё.

O>Оценка: 3+
O>правильные ответы смотри в ответе Anatolix
O>1) не видишь разницы в shm и mmap
Я знаю разницу, мне непонятно чем оно может быть принципиально, если БД не разделяется между приложениями.

O>2) раз они такие идиоты почему их купил Oracle?

Чтобы MySQL насолить (оно там в качестве одного из движков)

O>3) предложи выкинуть Apache компании Yahoo

O>http://public.yahoo.com/bfrance/radwin/talks/yapache-apachecon2005.htm
А Google'у для YouTube предложите выбросить Lighttpd.

Apache очень плохо подходит для нагрузок в 1000 соединений в секунду (знаю по опыту). Особенно, если включить keepalive — тогда поток может блокироваться клиентом до истечения keep-alive периода (15 секунд по умолчанию в Apache2, AFAIR). Lighttpd (и nginx, но с ним я не работал) используют неблокирующуюся асинхронную архитектуру, поэтому не страдают такими проблемами.
Sapienti sat!
Re[7]: Комментарий про собеседование + извинения за часть пу
От: Дм.Григорьев  
Дата: 09.10.07 23:46
Оценка: 94 (17) +5
Здравствуйте, Checkist82, Вы писали:

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


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


Копирайт общеизвестен, намёк я надеюсь понятен.

C>К настоящему моменту я имею пусть и небольшую, но твёрдую базу знаний в голове, за которую могу досконально отвечать.


А часто ли она тебе пригождается на практике, эта твоя твёрдая база знаний?




Программист должен:
1) Знать точку входа в справочную систему и адрес гугла;
2) Иметь эрудицию, минимально достаточную чтобы найти то, за чем он в эту справочную систему (гугл) полез.

Всё остальное к чёрту. Я частенько вспоминаю чей-то пост многолетней давности (тоже, кстати, касавшийся собеседований): когда программируешь на пяти языках одновременно, то забываешь не то что какие-то там тонкости языка, даже синтаксис цикла for. Лично у меня в голове уже настолько всё забито под завязку, что я мгновенно забываю даже те API, в которых разбирался и которые использовал буквально пять минут назад — мне проще скопипастить куски исходника пятиминутной давности.

Касаемо тонкостей языка, про которые так любят спрашивать на собеседованиях. Если писать нормальный читабельный код, то вспоминать про эти тонкости не приходится практически никогда. К примеру, за три года (или больше? не помню уже) программирования на PHP я аж целых два раза задавался вопросом, вызывается ли деструктор, если конструктор выбросил исключение. Оба раза я за пару минут писал тестовый пример, который удалял и забывал сразу же после внесения изменений в код. Работая на нескольких языках одновременно, начинаешь автоматически избегать диких и нетривиальных конструкций, просто мозги бережёшь. А в итоге код получается лучше во всех смыслах. За любой другой стиль нужно бить. И интервьюеров, спрашивающих всякую хрень, кстати тоже нужно бить. Завалил собеседование? Ну и хрен с ними, сами дураки. Лично я уже достаточно потратил своего времени на изучение никому не нужной хрени — и в школе, и в ВУЗе. Эрудиция — она конечно хорошее дело, но не настолько, чтобы трястись над ней и сдавать по ней экзамены.

По приоритетам. Я уверен, что изучать нужно в первую очередь макро-вещи (фреймворки, спецификации протоколов), а не микро (отдельные методы контейнеров). Потому что неправильно спроектированную архитектуру куда труднее исправить, чем неправильно выбранный контейнер под десяток элементов или какую другую мелочь, да ещё и привязанную к конкретному языку. Кроме того, изучать нужно то, что нужно для работы, а не для собеседований. Кому нужна твоя твёрдая база, кроме Яндекса, где (я так подозреваю) воюют за каждую долю процента производительности? Кстати, в выборе подходящего контейнера ничего особо сложного нет. А методы контейнеров есть в хелпах и в code completion. Так что попытка преподнести это как какое-то высшее знание — показатель глубокого ламерства. Однако же, можно, не зная многих тонкостей языка, даже многих азов, писать на нём достаточно сложные и работающие вещи. (Что сам я и делаю на JEE, не зная ни JLS, ни JSE, ни даже самого JEE, прочитав только про Hibernate; а потом буду читать про кеши и кластеры, а JLS и JSE опять подождут.)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[11]: Собеседование в Яndex
От: landerhigh Пират  
Дата: 09.10.07 23:48
Оценка: 3 (2)
Здравствуйте, Cyberax, Вы писали:

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

C>Все трое работают с постановкой задач, в той или иной степени.
По-разному работают. Задача архитектора состоит в том, чтобы перевести твою фразу "построить дом" на язык, понятный исполнителям. То есть вопрос, поставленный в стиле "Вы архитектор. Заказчик хочет дом" — корректный. Вопрос "заказчик хочет дом" — некорректный, ибо кандидат не знает, что у тебя на уме и вряд ли догадается спросить, в качестве кого он выступает.
L>>>>Так уж и в пользу? Уверен, что хороший программист вообще способен спросить "а какой тип наследования нужен"?
C>>>Я бы спросил У меня на собеседованиях люди тоже спрашивали уточнения на вопросы такого типа.
L>>Бред сивой кобылы. С какой стороны за молоток надо браться, тоже спрашивать?
C>Если бы задача была сформулирована как "взять молоток" — то да.
Эта... не надо задавать идиотских вопросов, чтобы не получать дурацких результатов. Лично мне и в голову не придет взять молоток каким-то другим способом, кроме правильного и уж точно никого спрашивать не буду.
L>>Фраза года. А читать резюме, стало быть, не надо?
L>>Было время, я тоже народ собеседовал. Всегда хватало 5-10 минут разговора по эпизодам из резюме, чтобы оценить степень знаний и адекватности человека.
C>Так читаю, куда же деться. Другое дело, что ОЧЕНЬ часто из резюме не очень понятен уровень использования технологий.
А если понятен? Опять же, если что-то непонятно, то вопрос "а расскажите о том, как Вы использовали Х на проекте Y в конторе Z". Потом можно спросить "А если бы Вы сейчас это опять делали, то что бы сделали по-другому и как?". Если кандидат не врун и не идиот, то через 5 минут в тебя будет достаточная картина его знаний и опыта.
C>>>Ну, у меня вопрос примерно так и будет звучать. Однако, судя по твоим высказыванием на просьбу "напишите простой пример использования for_each и bind1st" ты бы начал кричать, что тебя, программиста со стажем, заставляют делать простые задания.
L>>Во-первых, не надо додумывать за других.
C>Ну так будешь считать такой вопрос нормальным?
Нет. Ибо не гарантирует, что человек просто за 10+ собеседований не вызубрил этот вопрос. Кроме того, человек мог никогда вообще не использовать bind1st, отдавая предпочтение самописным функторам (кстати, это могло быть и требование дизайна).
L>>В-третьих, если после моего кратенького (минут 10-15) рассказа о том, как именно и какие алгоритмы я лично использовал (вполне возможно, с иллюстрациями) меня попросят написать "пример for_each" или еще в таком духе, то интервью можно прекращать ввид неадеквата интервьюверов.
C>А может ты сначала напишешь простенький пример, а потом будем говорить подробнее о проектах? В Яндексе еще есть пре-тест на сайте, но у меня такого нет — так что хочется уж совсем начинающих кандидатов отсеивать сразу.
Ага, напишешь вам тут. Тут на паре собеседований написал "простенькие примеры" в две строчки, так их интервьюверы ниасилили
www.blinnov.com
Re[7]: Резюме.
От: Дм.Григорьев  
Дата: 09.10.07 23:57
Оценка: 33 (7) +3
Здравствуйте, Checkist82, Вы писали:

C>Когда мне сказали:"Парень ты ноль, при чём с издёвкой." (а сказали после того, как я два года отработал программистом и имел в багаже релиз ПО, используемого на реальных объектах), я стиснул зубы, закупил кофе и сидел после работы по ночам до полного одурения...


Иными словами, у тебя проблемы с самооценкой, парень. Ты оцениваешь свой уровень не по результатам своего труда, как программист, а по словам дядьки-экзаменатора, как студент. Рынок труда — это не ВУЗ, это welcome to real world, Neo, здесь ты с экзаменатором на равных (а может и выше) — и по правам, и по уровню знаний.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[3]: Комментарий про собеседование + извинения за часть пу
От: Guskov.Roman  
Дата: 10.10.07 00:28
Оценка: 4 (1)
Здравствуйте, Anatolix, Вы писали:

A>Значит судя по описанию собеседования одним из действующих лиц мог быть я. Того кого собеседовал тоже вроде опознал, но с вероятностью 90%. Мог бы назвать для чистоты эксперимента как тебя звали (можно только имя и дату собеседования).


A>Что я могу сказать:

A>1) Действительно собеседование в Яндексе начинается с технических вопросов которые идут достаточно долго. Да, наверное, это не правильно и собеседование нужно начинать с какого-нибудь полайтеса и вопросов о том чем занимался. Тем не менее если вероятность того, что человек просто не подойдет 90% то хочется все это подробно расказывать уже после того, как становится понятно, что человек банально умеет программировать. Возможно, вы правы что отсутствие интереса к собственной персоне выглядит враждебно, тем не менее он обычно появляется после нескольких хороших ответов.

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

A>Тем не менее мы сейчас подумаем и возможно решим с какого-нибудь 5-минутного вступления. Вдруг кому это важно.


A>2) Самопроизвольно перескакивать на "ты" это моя привычка. Так получилось, что во всех компаниях, где я работал принято обращаться на "ты" ко всем включая ген. директора. То что, нужно явно предлагать людям перейти на "ты" учту — буду так делать.


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


A>4) Тезис, что у человека нужно искать сильные стороны, а не слабые, он вообщем-то весьма верный. Собственно, обычно первый час собеседования мы пытаемся найти сильную сторону в виде знания одного языка программирования. Если мы его находим, то тогда начинаются все остальные поиски профессионализма. По поводу того, чтобы вообще не пускать программистов на собеседование, мысль конечно свежая, но хочется возможность дать человеку выбрать с кем работать. Плюс у меня все-таки есть сомнения, что любым количеством разговоров за жизнь можно определить у человека профессионализм. Если у есть подобный опыт организации собеседований исключительно HR-ами без технических вопросов вообще, я бы с удовольствием про это послушал.


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

A>Для кандидатов, которые хотят начать собеседование c HR-ом а не программистом, давайте договоримся, что вы напишите об этом явно ответом на приглашение. Для того, чтобы человек которому вы такое заявили не офигел, сошлитесь на меня или дайте ссылку на это сообщение ("вас сразу собеседовать, или вы с HR сначала поговорите?" ).


A>5) Мы действительно в России конкурируем с гуглем. Может быть действительно так же, как жигули конкурируют с фордом. Единственно, что жигули стоит меньше, а мы с гуглем оба оказываем услуги по нулевой цене.


A>6) Почему собеседования именно такие, а не другие? Потому, что у них цель не "нравится всем", а понять подходим мы с человеком друг другу или нет. Что мы не подходим человеку я легко готов услышать, бывает и такое. Что мы хотим от человека, я уже несколько раз говорил:

A>а) Знания языка программирования, который он считает основным. В том числе возможно некоторых неочевидных его особенностей, например, что в C++ есть исключения, и sizeof(long) может возвращать разное значение на разных платформах. Может быть, я что-то излишнее конечно спрашиваю, но вот такая у нас секта. Кстати кроме самого начала собеседования на тесте можно пользоваться документацией и поиском в инете (спрашиваете интервьюера — вам отвечают).
A>б) Что человек знает базовые алгоритмы. А именно: правильно может выбрать контейнер под задачу, и в общих чертах знает как он устроен или может это выдумать.
A>в) Что получив любую задачу, которая не является стандартной (не важно про поезда, лампочки, или проектирование поиска) он не впадет в полный ступор, а хотя бы с подсказками ее решит.
A>г) Что он способен написать код размером в 50 строк так чтобы он не упал, и потом провести над ним простейшую оптимизацию.
A>Мы что слишком много хотим?

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

Вообще стоит брать пример с немцев. У них это возведено в науку. И входит в обязательную программу обучения. Причем учат и как собеседования проводить, и как себя на собеседованиях вести. Приводятся реальные примеры, ( то есть видео, аудио ), как себя вести НЕ НАДО ! Все четко регламентировано, особенно это касается разных бумаг, бевербунгов ( резюме ), и проч.
Даже сдается специальный экзамен. При это собеседование само, вовсе не похоже " заранее подготовленные ответы, на заранее подготовленные вопросы " Гоняют на собеседовании будь здоров, очень любят нестандартные вопросы или вопросы с подводными камнями. ( Иногда не знаешь как на русском то ответить, а надо сформулировать на немецком ) Иногда ведется протокол, где фиксируется ход собеседования.
Я кстати по первой на тренировках часто попадал в такие комичные ситуации ( что говориться специально не придумаешь ), так что преподы ржали как кони. Один раз даже было стыдно на следующее занятие идти. Но это было из за не очень хорошего знания языка, и местных реалий.
Re[6]: Комментарий про собеседование + тестируем Anatolix
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 10.10.07 00:59
Оценка:
Здравствуйте, oraz, Вы писали:

O>отличный ответ

O>естественно, ждал совета впереди поставить nginx etc
O>MaxClients: другое
O>чем меньше тем лучше
O>оптимально было бы конечно = 1

Все-таки "оптимально = 1" было много лет назад и только для CPU-limited задач(Не с многопроцессорным/многоядерным сервером уже почти 4 года как не общался). Плюс блокировку на дисках, у которых prefetch может выгрести производительность на нескольких потоках буквально из ничего, и ранее никто не отменял.

O>реально 20 — 30


Для "сферической задачи в вакууме" соглашусь. Для конкретной можно сильно подбирать. У нас сейчас ~70. Кстати, могу заметить, что кроме nginx бывают еще буфера системы, которые у нас выкручены в 64K, а у упоминаемой Яхи в 400K, keep-alive это правда не дает.

O>Оценка 5 баллов. Жму лапу.


Ну вот, рассчитывал на 5+

A>>P.S. Куда я собеседование сдавал(и почему мне заранее не рассказали про проект )? Сдал? Какая зарплата ?


O>могу порекомендовать в рамблер


Спасибо, рекомендации в рамблер я думаю у меня и так есть — Игорю Сысоеву привет.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re[3]: Комментарий про собеседование + извинения за часть пу
От: pavel_turbin  
Дата: 10.10.07 01:41
Оценка: 1 (1) -1
Здравствуйте, Anatolix, Вы писали:

A>3) Вообще под "radix sort" подразумевается примерно следующее. Есть алгоритм radix_sort, который выполняет сортировку чисел за линейное время. Нужно написать этот алгоритм самому, и с его помощью обогнать стандартный std::sort. На твоей стороне, что std::sort он O(n*ln(n)). Против тебя, что константа у него хуже и на ноуте всего 1Gb памяти (т.е. бесконечно увелчивать размер массива в надежде, что перегонит не получится).


ну а если чел не справился?! Честно говоря, sort очень специфичная вещь:

1. ее проходят на первых порах программирования, для многих очень давно (15+ лет). Многое забыто. Вы бы еще пределы (lim x->0) из высшей математике вспомнили.
2. перформас sort-а в реальных задачах величина, часто безразличная, будь он хоть O(N*N), если у вас только 10 значений, то оптимизация ничего не даст.
3. даже если хочется оптимизировать, то многим людям нужно с задачей "пожить", т.е. обдумать все в деталях. Вот так сразу и в бой, прочел алгоритм и пытайся его обогнать -- это люди-герои.
4. задача оптимизация сорта далека от реальной. В жизни есть std::sort или что-то похожее и удовлетворительное. Для многих, задача "обогнать стандартный std::sort" изначально бессмысленна и следовательно дезмотивирует опытных парней.
Re[6]: Комментарий про собеседование + извинения за часть пу
От: witowd  
Дата: 10.10.07 01:50
Оценка: 5 (2)
Здравствуйте, LazyWorker, Вы писали:

A>>Сказать "Ok, до свидания. Мы подумаем и напишем вам что-нибудь, а вы пока сидите и ждите ответа"? Почему-то большая, часть людей честный отзыв о себе который imho большая роскошь, считают оскорблением.


LW>Мой последний пост в этой теме. Есть простота, которая хуже воровства. Например честно сказать некрасивой женщине — "Вы уродина, на что Вы претендуете"? Это пример абсолютно честного отзыва, вопрос считаете ли Вы это оскорблением? Хотели ли Вы услышать о себе честный отзыв от человека, которому Вы не симпатичны (например "толстый высокомерный тип от которого плохо пахнет")? Это большая роскошь или это оскорбление? Честный отзыв направленный на понижение самооценки человека и развитие его комплексов принесет больше вреда, чем пользы.


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

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

Один старый еврей очень давно написал:

"Кто хранит наставление, тот на пути к жизни, а отвергающий обличение -- блуждает.

[...]

Кто любит знание наставление, тот любит знание, кто ненавидит обличение, тот невежда.

[...]

кто внимает обличением, тот благоразумен.

[...]

Отвергающий наставление не радеет о своей душе, а кто внимает обличению, тот приобретает разум."
-- из Книги Притчей Соломоновых.

(N.B., на всякий случай, чтобы избежать нападок в попытке проталкивании религиозной пропаганды, замечу, что в богов не верю, в силу стойких материалистических взглядов
Re[3]: Собеседование vs портфолио?
От: Дм.Григорьев  
Дата: 10.10.07 03:37
Оценка: 3 (1) +1
Здравствуйте, Anatolix,

А вот интересно следующее. Если человек всю жизнь ишачит на дядю, то у него портфолио пусто. Ибо NDA. А если я, будучи фрилансером, сделал себе приличное портфолио, а затем решил устроиться на фирму (к примеру, в Яндекс ), могу ли я расчитывать на упрощение, сокращение или вообще даже полное избавление от технического собеседования?

Disclaimer. Сам я никуда устраиваться не собираюсь, так что вопрос задал любопытства ради.

Практически никто из заказчиков, выбирая фрилансера на биржах, не гоняет кандидатов по технологиям. Все смотрят портфолио. И дело не только в ламерстве заказчиков. Даже на всяких о-десках, где можно проходить автоматическую сертификацию по различным технологиям, отвечая на идиотические в большинстве своём вопросы (устаревшие и/или редко пригождающиеся на практике), всё равно портфолио и рейтинг фрилансера будут иметь гораздо больший вес. Потому что программирование, в конечном итоге — практическая дисциплина. Можно ни черта не знать и писать при этом работающий код, а можно и наоборот.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[4]: Комментарий про собеседование + извинения за часть пу
От: greenrat  
Дата: 10.10.07 03:53
Оценка:
Здравствуйте, pavel_turbin, Вы писали:

_>ну а если чел не справился?! Честно говоря, sort очень специфичная вещь:


_>1. ее проходят на первых порах программирования, для многих очень давно (15+ лет). Многое забыто. Вы бы еще пределы (lim x->0) из высшей математике вспомнили.

_>2. перформас sort-а в реальных задачах величина, часто безразличная, будь он хоть O(N*N), если у вас только 10 значений, то оптимизация ничего не даст.
_>3. даже если хочется оптимизировать, то многим людям нужно с задачей "пожить", т.е. обдумать все в деталях. Вот так сразу и в бой, прочел алгоритм и пытайся его обогнать -- это люди-герои.
_>4. задача оптимизация сорта далека от реальной. В жизни есть std::sort или что-то похожее и удовлетворительное. Для многих, задача "обогнать стандартный std::sort" изначально бессмысленна и следовательно дезмотивирует опытных парней.

Алгоритмы сортировки это хороший способ узнать понимает ли человек сложность по времени, памяти используемых алгоритмов. А это понимать нужно. Иначе очень часто можно встретить такой код — нужно добавить уникально N значений. Для этого используется вектор. И на каждое добавление пробегается весь вектор. Сложность, понятное дело, квадратичная. А потом кусок программы, который должен отрабатывать мгновенно тормозит минутами. И если не знать алгоритмов и, например, контейнеров stl которые их реализуют, то хрен полезешь в MSDN, RSDN читать про это. Просто написал и забыл. Не тестах сконало, а у клиентов через два года попа, причем последний год они жалуются, что все тормозит, но еще терпимо. Потом ставится VTune и ищется узкое место. А когда находится, то начинаются маты. И все это вместо того, чтобы изначально написать через set, либо через вектор, но оптимально.

Как сказал один из авторов книги Introduction to Algorithms (Charles E. Leiserson). Что нужно сделать чтобы стать опытным программистом? Правильно, нужно получить где-то 2 года опыта. А что нужно сделать чтобы стать гуру? Нужно получить 10 лет опыта, ну либо 2 года опыта и пройти курс Introduction to Algorithms...

P.S. Все вышесказанное мое imho. Для меня оно подтверждено опытом. Переубедить не удастся — можно не пытаться.
P.P.S. Собеседований не провожу, но если бы проводил, то в первую очередь отбирал бы по алгоритмам.
Re[6]: Комментарий про собеседование + извинения за часть пу
От: Andrei F.  
Дата: 10.10.07 03:59
Оценка: 7 (2) +1 -1
Здравствуйте, LazyWorker, Вы писали:

LW>Мой последний пост в этой теме. Есть простота, которая хуже воровства. Например честно сказать некрасивой женщине — "Вы уродина, на что Вы претендуете"? Это пример абсолютно честного отзыва, вопрос считаете ли Вы это оскорблением? Хотели ли Вы услышать о себе честный отзыв от человека, которому Вы не симпатичны (например "толстый высокомерный тип от которого плохо пахнет")? Это большая роскошь или это оскорбление? Честный отзыв направленный на понижение самооценки человека и развитие его комплексов принесет больше вреда, чем пользы.


Бред какой-то.
Если мне отказывают (неважно, на собеседовании или в других обстоятельствах), то я хочу знать — почему. И чем скорее, тем лучше. Это дает возможность исправить свои слабости или сделать вывод, что "такой работодатель мне самому нафиг не нужен". Когда у тебя нет обратной связи — у тебя нет возможности точно узнать, в чем твои слабые места.
Re[2]: Google vs Yandex
От: SergeyGotsulyak  
Дата: 10.10.07 04:54
Оценка:
AZ>Победил Google. Быстро обновился, хорошая релевантность. Результаты Яндекс совсем не радуют, выдача маловменяемая

Бывает, что Яндекс выдает более релевантные результаты, чем Гугл. Бывает. Но редко
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Комментарий про собеседование + извинения за часть пу
От: Геннадий Ванин Россия  
Дата: 10.10.07 05:36
Оценка: +2 -2 :)
Здравствуйте, Andrei F., Вы писали:
AF>Бред какой-то.
AF>Если мне отказывают (неважно, на собеседовании или в других обстоятельствах), то я хочу знать — почему. И чем скорее, тем лучше. Это дает возможность исправить свои слабости или сделать вывод, что "такой работодатель мне самому нафиг не нужен". Когда у тебя нет обратной связи — у тебя нет возможности точно узнать, в чем твои слабые места.

Антибред:
На 95%, что Вам не скажут истинную причину.
Например, от Вас плохо пахло. А Вы совсем загноитесь и завшивеете над учебниками, шлифуя синтаксис языка и алгоритмы сортировки

Ориентируйтесь на свои внутренние критерии и оценки, мотивации и логику.
Re[8]: и ещё раз про бред
От: Геннадий Ванин Россия  
Дата: 10.10.07 05:46
Оценка:
Здравствуйте, Andrei F., Вы писали:
AF>>Бред какой-то.
AF>>Если мне отказывают (неважно, на собеседовании или в других обстоятельствах), то я хочу знать — почему. И чем скорее, тем лучше. Это дает возможность исправить свои слабости или сделать вывод, что "такой работодатель мне самому нафиг не нужен". Когда у тебя нет обратной связи — у тебя нет возможности точно узнать, в чем твои слабые места.

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