Пришла новость: гражданин Нигерии, программист, при попытке пройти пограничный контроль в аэропорту Джона Ф. Кеннеди в городе Нью-Йорк, США не смог выполнить два простейших задания пограничника:
- Расскажите, что такое абстрактный класс.
- Напишите на листе бумаги функцию проверки сбалансированности бинарного дерева.
Оправдывая свою некомпетентность, нигериец говорил, что у него был долгий и мучительный перелет из Африки. В результате его три часа продержали в обезьяннике, в течение которых связались с компанией, в которой он работает. Только когда компания поручилась, что им действительно нужен такой инженер, его пропустили. За три часа иностранец так и не отдохнул достаточно, чтобы ответить на эти вопросы.
В Америке, конечно, журналисты опять увидели нарушение прав афроамериканцев, трамповщину. Редакция нашего журнала придерживается такой точки зрения, что не важно, кто ты и какого цвета кожи, но важно, что ты умеешь и знаешь. Если на простые вопросы пограничника не можешь ответить, так и не стоит заявлять, что ты — программист. Напиши, «менеджер» в анкете и не позорься. Особенно, если вы из России или СНГ, потому что всех подозревают во вмешательстве в американские выборы-2016. В нашем случае неизвестно, что будет хуже: продемонстрировать компетентность в CS или притвориться идиотом.
Если вам интересен правильный ответ на вопрос про деревья, добро пожаловать под кат.
Это же элементарно. Следите за руками.
В Java Collections Framework есть только один класс бинарных деревьев поиска: TreeMap.
Этот класс реализует алгоритм самобалансирующегося красно-черного дерева. Таким образом, в Java не существует несбалансированных деревьев. Следовательно, правильный ответ:
public boolean isBalanced(TreeMap tree) { return true; }
Согласитесь, что для этого не требуется много времени и доступ в интернет. Вполне можно такие вещи оформить на белом листе писчей бумаги ручкой, без Stackoverflow.com. Ведь это самые основы!
Кроме того, на любом собеседовании на должность программиста нужно быть в первую очередь открытым человеком, стараться найти решение к любому вопросу, который задает интервьюер. Отговорки типа «я устал», «это сложно», «я не понимаю» — просто недопустимы. Лучше ответить: «простите, но, видимо, в настоящий момент я не подхожу на должность программиста в вашу компанию, но если меня доучить, то я засверкаю всеми искрами таланта».