Поиск кандидата проходит в двух вариантах:
Первый - Нужен_срочно_работа_горит!!!
В этом случае, если собеседующий не совсем дурак, он будет руководствовать только одним вопросом - сможет ли данный кандидат выполнять необходимую работу. Количество вопросов при этом может быть минимальным, и, скорее всего, решение о найме было принято еще на основании резюме (если нужно поддерживать какой-нибудь сайт на Ruby, а перед вами человек, который 3 года занимался аналогичной работой - то что тут особо спрашивать)
Второй - Нужен, но не срочно
В этом случае, всех несет куда попало. Один начинал программирование с ассемблера - будет спрашивать про низкоуровневое программирование и устройство ПК (и найдет 100500 доводов, почему не зная этого нельзя вообще работать программистом), другой по образованию математик - будет задавать соответствующие вопросы, с соответствующими доводами, что какой программист без математики. Третий - ничего не умеет, попал в ИТ по знакомтсву - будет спрашивать по софт скилам, ведь кроме них, у самого собеседующего, ничего и нет. И так далее.
Пытаться логикой понять собеседования из второй группы - лишь тратить попросту время. Забейте.
Что важно: так это понимать, кем вы хотите стать, и развиваться в этом направлении.