Знаете, что общего у вопросов «Зачем нужен виртуальный деструктор?» и «Каким языком программирования вы бы стали и почему?». Их могут задать на собеседовании, если ты программист.
Но проблема в том, что джуниоры и так в массе своей выглядят на собесах как запуганные потеряшки, так еще эйчары лютуют в последнее время и спрашивают с них как с мидлов и сеньоров. Хотя ок, тут я преувеличиваю, ведь уже в 2011 году на Хабре гуляла повесточка в стиле «Джуниоры должны уметь делать примерно все и даже чуть больше».
Поэтому здесь я хочу рассказать о наболевшем: какие тесты проходят джуниоры, для чего они нужны и где их потренить. В общем, базово расскажу о том, как новичков проверяют на готовность вкатиться в АйТи.
Ситуационные
Ситуационные тесты — это, как правило, самый лайтовый этап на собеседовании. Здесь у тебя будут спрашивать про конкретные ситуации, в которые ты можешь попасть на работе, и как ты будешь их разруливать. Эйчары любят задавать подобные вопросы, т. к. они помогают оценить не только профессионализм кандидата, но также его лидерские качества, коммуникабельность и умение работать в команде.
В общем, ситуационные тесты нужны, чтобы проверить твои soft skills, о важности которых сейчас говорят почти все в айти.
Что могут спросить:
- Ваш коллега по команде попросил вас помочь ему завершить проект, но на это у вас нет времени. Что будете делать?
- Ваш клиент не удовлетворен работой, которую вы сделали. Как вы это решите?
- Вы заметили ошибку в работе коллеги, которая может повлиять на качество проекта. Ваши действия?
Логические
Тесты на логику — это способ оценить твои способности к аналитическому мышлению. И, если честно, именно с них у меня всегда подгорало больше всего. Все потому, что зачастую они не привязаны к чему-то конкретному, а порой и вовсе составляются по фану и поэтому не имеют правильного ответа. То есть их дают чисто ради того, чтобы посмотреть на твою реакцию и способ мышления.
Окей, конечно я преувеличиваю. Не все так плохо: иногда попадаются очень даже нормальные тесты, — все зависит от компании, в которую ты устраиваешься.
Вопросы могут задавать самые разные. Например:
- Существует ли закономерность в шаблоне: F, O, L, O, W, U, P, S?
- Какие числа продолжат последовательность: 1, 3, 8, 11, 14, …?
- У вас есть 5 сундуков, в одном из которых находится золото. Вам разрешено открыть только 2 сундука. Как найти сундук с золотом, используя указанное количество попыток?
Кстати, вот здесь собраны аж 75 задачек на логику конкретно для программеров. Что-то из этого точно попадется тебе хотя бы раз, потому что они очень популярные и эйчары любят их использовать. Хотя, мне кажется, что они не столько развивают логику, сколько помогают чувствовать себя увереннее, – ведь так ты понимаешь, что сделал все, чтобы не провалить собес.
И да, логические задачки — must have для тестировщиков. Обязательно потрень их, если фраза «Черный ящик» не ассоциируется у тебя с самолетами или криминалом, но ты все равно часто этим пользуешься.
- 🧩 5 интересных головоломок и задач, чтобы отвлечься от рутины и немного пошевелить извилинами (выпуск 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
Алгоритмические
Алгоритмические тесты – это возможность показать всем, что ты пишешь чистый и понятный код. Ну, или, доказать обратное и пойти тренить алгоритмы под звуки грустного тромбона (уи-уи-уи-уиии).
Вот что могут попросить сделать:
- Найти недостающий элемент в отсортированном массиве.
- Проверить наличие цикла в односвязном списке.
- Написать функцию, которая возвращает наибольшее число из массива целых чисел, не используя встроенные методы сортировки и поиска.
- Написать алгоритм поиска наибольшей возрастающей подпоследовательности в массиве.
- Реализовать сортировку выбором (Selection sort).
Если устраиваешься кодером – ни один собес не пройдет без них. Кстати, у «Библиотеки программиста» как раз есть курс «Алгоритмы и структуры данных», который помогает подготовиться к алгоритмическому собеседованию в крупные IT-компании.
Что по базе:
- 50 тестов на массивы, строки и прочее. Все самое нужное.
- FAQ по программированию и вопросы на все случаи жизни.
- Очень классный материал о том, как считерить и начать шарить за алгоритмы, не вникая в прикладную математику.
А проверить себя можно на самом proglib.io в разделе «Тесты», конкретно вот.
P.S.
Понятное дело, что все суперполезные материалы перечислить в одной статье просто невозможно, ведь в последнее время их расплодилось слишком много. И это хорошо!
Главная цель статьи – чтобы опытные айтишники выполнили простой алгоритм:
- Раскритиковали ее и сказали, что «вообще все не так».
- Поделились своим опытом в комментах.
Материалы по теме
- Задача о двойных фамилиях
- Задача о спрятанном решении
- Задача об острове хамелеонов
- Задача о фамилии Тьюринга
- Задача с собеседования + идеи проекта: «Время великих учёных»
- Задача о прогуливающихся джентльменах
- Задача о часах с одинаковыми стрелками,
- Задача о вирусе в колонии бактерий
- Задача о шести шахматных конях
- Задача о беглеце
- Python и динамическое программирование на примере задачи о рюкзаке
- Как ограбить банк? Логическая задача
- Собеседование и семь гномов: задачи с интервью в IT-компаниях
- Пара алгоритмических задач для успешного программиста: нарисовать змейку, выстроить зиккурат
Телеграм-каналы с вакансиями для IT-специалистов
- Вакансии по data science, анализу данных, аналитике, искусственному интеллекту @datajob
- Вакансии для java-разработчиков @javadevjob
- Вакансии по питону, Django, Flask @pydevjob
- Вакансии по фронтенду, джаваскрипт, React, Angular, Vue @jsdevjob
- Вакансии по C#, .NET, Unity @csharpdevjob
- Вакансии по C++ — си-плюс-плюс, cpp, Си, C, STL, Boost @cppdevjob
- Вакансии по Go @godevjob
- Вакансии по PHP, Symfony, Laravel @phpdevjob
- Вакансии для мобильных разработчиков @mobiledevjob
- Вакансии по DevOps & SRE @devopssjob
- Вакансии по QA тестированию @testerrjob
- Вакансии по информационной безопасности @hackdevjob
Что вам помогло подготовиться к первому собесу? Что спрашивали? И как вы выкрутились из ситуации?