Пока не забыл — тут были разговоры о собесах и разных вопросах хитрых и пр.
Так вот в Израиле на собесах на синьерские позиции обязательно спрашивают про алгоритмы и структуры данных вопросы.
Но не банальные на знание готового алгоритма (такой фигней не страдают), а на понимание основ, или с подковыркой.
Например: в какой структуре данных хранить информацию о кораблях в игре “морской бой”, чтобы за время О(1) сразу отвечать на 3 вопроса —
1) попали в корабль или нет?
2) утопили корабль?
3) утопили последний корабль?
Напиши на доске примерный код или псевдокод функции, которая на вход берет координаты выстрела (х,у) и пользуется этой структурой чтобы вернуть ответ на эти 3 вопроса.
Или:
Напиши на доске простейшую реализацию соединений к базе данных (например) на любом ЯП (ConnectionPool) — только ключевой функционал хранения, взятия и освобождения соединений.
И далее вопросы идут по всем опасным местам твоей реализации.
Само собой к синтаксису не придираются, смотрят как ты думаешь, проектируешь и насколько свободно выражаешь свои идеи в коде.
Иногда вместо доски просят тут же закодить в редакторе что-то подобное или попроще таску, типа вытащить что-то из Facebook API и сохранить в файл.
На младшие позиции тоже спрашивают, просто вопросы полегче.
После этого обычно следует второй собес, т. н. System Design Interview — тут спрашивают больше про архитектуру, либо твоих проектов прошлых (и про них задают неудобные вопросы),
либо дают синтетическое задание похожее на то, чем занимается компания (типа в фейбуке бы дали “как бы ты спроектировал архитектуру новостной ленты”, в гугле “как бы ты реализовал google spreadsheets на клиенте”)
🎸🤘