Про технические собеседования
Ох... друзья, коллеги, не стоит пытаться обмануть и вытащить более высокий грейд на техническом собеседовании. Джун не может писать код на уровне сеньора, в итоге - теряют время обе стороны и кандидат и интервьюер.
Например, недавно был такой случай с кандидатом, претендующим на позицию сеньора:
Задание - написать минимум кода, который будет переворачивать зеркально любое слово. Кандидат пишет так: public static void mirrorWord() { String word = "Hello"; StringBuilder result = new StringBuilder(); for(int i = word.length() – 1; i > 0; i-) { result.append(word.charAt(i)); } sout(result); }
Комментарий интервьюера: Код работает, да, но он длинный и не ёмкий. А можешь в одну строку?
Ответ: не могу.
А я ждал такое: sout(new StringBuilder(word).reverse().toString()); - помимо того, что тот же самый код реализован в одну стоку, здесь ещё присутствует знания методов Java типа reverse(). Поэтому кандидату с его заявленным грейдом на сеньора был отказ.
Ещё примеры.
Задание: Напиши метод, который принимает строку и возвращает новую строку, где каждый символ повторяется дважды. Например, для строки "abc" метод должен вернуть "aabbcc".
Решение кандидата: public static String doubleCharacters(String input) { StringBuilder result = new StringBuilder(); for (char c : input.toCharArray()) { result.append(c); result.append(c); } return result.toString(); }
Кандидат использовал не оптимальное решение.
Оптимальное решение: public static String doubleCharacters(String input) { return input.replaceAll(".", "$0$0"); }
Анализ: Здесь используется встроенная функциональность регулярных выражений Java, что значительно сокращает длину кода и делает его более читаемым. Кандидат, знающий подобные трюки, показывает хорошее владение языком и внимание к деталям.
Задача на работу с коллекциями
Задание: Напиши метод, который удаляет дубликаты из списка целых чисел и сохраняет порядок оставшихся элементов.
Решение кандидата: public static List<Integer> removeDuplicates(List<Integer> list) { List<Integer> result = new ArrayList<>(); for (Integer num : list) { if (!result.contains(num)) { result.add(num); } } return result; }
Комментарий интервьюера: Решение работает, но оно неэффективно для больших списков. Можно ли предложить более оптимальный вариант? Кандидат не смог.
Оптимальное решение: public static List<Integer> removeDuplicates(List<Integer> list) { LinkedHashSet<Integer> set = new LinkedHashSet<>(list); return new ArrayList<>(set); }
Поэтому не стоит лгать в резюме, когда, например джун+ заявляет о себе, как сеньор и подобное, ну рил, не надо, теряют время обе стороны и впечатления остаются негативные.
· 18.03.2025
Про задачи заранее по-моему в т-банке и Касперском дают ссылку на приложение типо leetcode и ограниченное время решаешь и дальше общаются, все зависит от вашей компании, пока будешь собеседовать, кто-нибудь перехватит
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён
· 18.03.2025
Да-да, и в альфе также начали ))
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
ответ удалён