Горе-программист

Пришла новость: гражданин Нигерии, программист, при попытке пройти пограничный контроль в аэропорту Джона Ф. Кеннеди в городе Нью-Йорк, США не смог выполнить два простейших задания пограничника:

  • Расскажите, что такое абстрактный класс.
  • Напишите на листе бумаги функцию проверки сбалансированности бинарного дерева.

Оправдывая свою некомпетентность, нигериец говорил, что у него был долгий и мучительный перелет из Африки. В результате его три часа продержали в обезьяннике, в течение которых связались с компанией, в которой он работает. Только когда компания поручилась, что им действительно нужен такой инженер, его пропустили. За три часа иностранец так и не отдохнул достаточно, чтобы ответить на эти вопросы.

В Америке, конечно, журналисты опять увидели нарушение прав афроамериканцев, трамповщину. Редакция нашего журнала придерживается такой точки зрения, что не важно, кто ты и какого цвета кожи, но важно, что ты умеешь и знаешь. Если на простые вопросы пограничника не можешь ответить, так и не стоит заявлять, что ты — программист. Напиши, «менеджер» в анкете и не позорься. Особенно, если вы из России или СНГ, потому что всех подозревают во вмешательстве в американские выборы-2016. В нашем случае неизвестно, что будет хуже: продемонстрировать компетентность в CS или притвориться идиотом.

Если вам интересен правильный ответ на вопрос про деревья, добро пожаловать под кат.

Это же элементарно. Следите за руками.

В Java Collections Framework есть только один класс бинарных деревьев поиска: TreeMap.

Этот класс реализует алгоритм самобалансирующегося красно-черного дерева. Таким образом, в Java не существует несбалансированных деревьев. Следовательно, правильный ответ:

public boolean isBalanced(TreeMap tree) {
    return true;
}

Согласитесь, что для этого не требуется много времени и доступ в интернет. Вполне можно такие вещи оформить на белом листе писчей бумаги ручкой, без Stackoverflow.com. Ведь это самые основы!

Кроме того, на любом собеседовании на должность программиста нужно быть в первую очередь открытым человеком, стараться найти решение к любому вопросу, который задает интервьюер. Отговорки типа «я устал», «это сложно», «я не понимаю» — просто недопустимы. Лучше ответить: «простите, но, видимо, в настоящий момент я не подхожу на должность программиста в вашу компанию, но если меня доучить, то я засверкаю всеми искрами таланта».