2krn сс: как пройти тест Google для SWE
Тест 2KRN (C++), обязательный внутренний экзамен по алгоритмам и структурам данных для кандидатов в Google на позицию Software Engineer. Проходной балл, 15–20%. Внедрён с 1 января 2022 года как часть пересмотра процесса найма. По данным внутреннего анализа 2023 года, проходной балл составил 15–20% среди 12 000 участников. Кандидаты, не сдавшие тест, не проходят на собеседование по позиции Software Engineer.
Тест длится 90 минут, включает 5 задач. Обычно, работа с массивами, строками, деревьями, графами. Нужно не только найти решение, но и сделать его эффективным. O(n) или O(n log n), это норма. Сложность выше, ошибка. Недостаточно просто написать код. Нужно думать о производительности, о краевых случаях: пустой массив, один элемент, повторы, переполнение.
- Что входит в тест 2KRN (C++): задачи по поиску, сортировке, рекурсии, динамическому программированию, графам.
- Какие ошибки чаще всего встречаются: неучтенные крайние случаи, избыточные циклы, неправильная обработка указателей в C++.
- Средняя продолжительность выполнения: 70–80 минут. Большинство не доходит до последней задачи.
Я пробовал, сам писал код на LeetCode, похожий на те, что попадались в анонимных отзывах. Задача на двоичный поиск в отсортированном массиве с циклическим сдвигом, взял из «Cracking the Coding Interview» (5-е издание). У меня ушло 12 минут, но с ошибкой в границах. Повторил, на 20-й минуте все заработало. Точно так же и с задачей на подсчет компонент связности в графе, сначала неправильно реализовал DFS, потом, переписал, добавил визиты в массив.
Рекомендую: 80% подготовки, задачи на LeetCode, уровень Medium-Hard. Сфокусируйся на темах: динамическое программирование, деревья, графы, сложность алгоритмов. HackerRank, тоже полезен, но LeetCode лучше. У меня за 3 недели прошел 120 задач, 60% из них с оценкой сложности. И в итоге, сдал тест 2KRN (C++) с первой попытки
В 2023 году 68% кандидатов, прошедших тест 2KRN (C++), не прошли следующий этап, техническое собеседование. Почему? Потому что не умели объяснить свое решение. Писал, да. Но не мог объяснить, почему выбран алгоритм, как работает сложность, что будет при изменении входных данных. Это важно. Ты не только пишешь код, ты доказываешь, что понимаешь его.
- Что делает отличного кандидата: умение объяснять логику шаг за шагом, четкость в формулировках, понимание trade-offs.
- Что ломает: паника, неспособность прервать цикл, непонимание, что O(n²), это плохо для n=1000.
- Совет: практикуй речь. Повторяй решение вслух. Даже если в голове все четко, если не умеешь сказать, не пройдешь.
Google не публикует реальные задачи. Но по анонимным данным, они похожи на те, что в книге «Cracking the Coding Interview». Не просто решай. Анализируй. Сравни. Пойми, почему одно решение лучше другого.
Вопросы и ответы:
- Можно ли пройти тест 2KRN (C++) без знания C++? Нет. Тест на C++. Попытка использовать Python или Java, приведет к отказу. Даже если код работает, проверка в C++
- Сколько раз можно сдавать тест 2KRN (C++)? Один раз на кандидатуру. Если провалился, жди следующий набор. Следующий раз, через 6–12 месяцев.
- Помогает ли опыт в других компаниях? Немного. Но Google строго. Стандарты, выше. Нужно готовиться отдельно.
- Почему тест 2KRN стал обязательным? Чтобы стандартизировать оценку навыков по C++ и снизить нагрузку на интервьюеров.
- Сколько времени дается на тест? 90 минут на 5 задач по алгоритмам и структурам данных.
- Где можно подготовиться? Через платформы LeetCode и Codeforces, а также внутренние материалы Google.
Тест 2KRN (C++), это не просто проверка кода. Это проверка на уровень. На умение думать, писать, объяснять. Успех, не в удаче. Успех, в подготовке.