– Вообще-то это зависит от того, как данную коллекцию планируется использовать, – отвечаю я. – В принципе, в большинстве случаев удобнее ArrayList. Но, если, скажем, предполагается часто вставлять элементы в середину списка…
В глазах Алекса появляется интерес. Рассказываю про списки, понимая, что всё хорошо помню, словно только что программу писал. Алекс задаёт уточняющие вопросы. Переходим к HashMap. Объясняю его устройство, как это работает. Не подозревал в себе таких знаний. Дальше он спрашивает про множества. Про модификаторы доступа. Про то, как сделать класс неизменяемым. Про синхронизацию.
– Ну, хорошо, – говорит он. – А можете прямо сейчас программу написать?
– На бумажке?
– Ну да, – пожимает он плечами. – А что?
– Да ничего. На компьютере эффективнее. Но это же интервью.
– Ну, напишите мне программу, которая решает систему линейных уравнений.
– А коэффициенты откуда брать?
– Сделайте с клавиатуры ввод.
Мне кажется немного глупым писать это всё на бумажке. Но старательно реализую метод Гаусса. Кажется, он удовлетворён. Ищет, к чему придраться, но не находит.
– Ладно, – говорит он. – А с Юниксом у вас как?
– Нормально, – отвечаю я.
– Если бы у вас была вот такая табличка в текстовом файле, и вам нужно было бы просуммировать в ней вот эту колонку для тех строк, где тут встречается a или b, вы бы как это сделали?
– Ну, много способов есть, – отвечаю я. – Я бы, наверно, использовал awk. Примерно вот так…
Продолжаем в том же духе. Вспоминаем SQL, Perl, Groovy. Потом его заносит в теорию вероятностей. Мне любопытно, имеет ли это отношение к вакансии, на которую они меня рассматривают, но я терпеливо решаю задачку про бракованные детали.
– Ok, – говорит неожиданно Алекс. – Do you have any hobbies?
– Yes, – отвечаю я. – I like to write. Actually I have started to write a book.
– What is it about?
– It’s a sort of fairy tale, – объясняю я, – about a small boy from a village who wanted to find a way to a sea.
Ни черта себе. Я что, знаю английский?
– Достаточно, – говорит Алекс. – Давайте я задам вам небольшую логическую задачку, а пока вы решаете, позову ещё пару людей.
Он объясняет мне условие задачи и выходит из комнаты. Я сижу, уставившись в листочек. В принципе, понятно. Пробую визуализировать условие. Рисую табличку. Ну, так ещё понятнее.
В комнату входят двое. Алекса среди них нет. Есть полноватая девушка в очках и зелёном костюме из пиджака и юбки, а также коротко стриженый круглолицый румяный мужчина немного старше меня.
– Здравствуйте, – говорит он. – Антон.
– Юля, – представляется девушка.
– Хармс, – говорю я. – То есть, Владимир.
Они переглядываются.
– А вы что делаете? – спрашивает Антон, присаживаясь на место Алекса. Юля садится сбоку.
– Вот, задачу решаю про лошадей. Решил. Вот схема забегов.
Объясняю решение. Похоже, он не очень слушает.
– А вы на джаве программировать умеете? – спрашивает Юля.
– Ну да, – отвечаю я, хотя вдруг у меня снова закрадываются сомнения.
– Какие коллекции знаете?
Опять перечисляю все эти интерфейсы, реализации, наследников. Немного заикаюсь. Слова «интерфейс SortedSet» даются мне с трудом.
– А вот если бы вам нужно было в программе использовать список, вы бы что выбрали – ArrayList или LinkedList?
Я чувствую, что начинаю потеть. Видимо, Алексу что-то не понравилось в моих ответах, и они решили меня подловить. Не вполне уверенно рассказываю то же самое второй раз. А может, эта Юля – переодетый Алекс? Нет, не похоже.
Юля повторяет практически дословно вопросы Алекса про множества и неизменяемые классы. Я отвечаю. Потом она говорит:
– Ну, хорошо. А прямо сейчас программу написать сможете?
– Смогу.
– Напишите мне программу, которая решает систему линейных уравнений.
– А коэффициенты с клавиатуры вводить? – уточняю я.
– Ну, пусть так.
Я переворачиваю листок с лошадями:
– Вот.
– Это что? – пугается Юля, хватаясь за свои очки.
– Метод Гаусса.
– А откуда он у вас готовый?
– Меня только что молодой человек об этом же спрашивал. Алекс. Я ему уже показывал.
Юля и Антон переглядываются.
– Интересно, что он ещё спрашивал, – говорит Антон. – Вы посидите пока тут.
Они выходят. Сижу, скучаю. Рисую от нечего делать график нормального распределения. Через пару минут они возвращаются вчетвером – Алекс, Юля, Антон и ещё какой-то молодой паренёк, худенький, маленький, суетливый. Как его зовут, мне не сообщают. Ему не хватает стула, поэтому он выходит снова и прикатывает стул на колёсиках откуда-то ещё.
– Разобрались, – говорит Антон. – Хорошо. А вы мехмат МГУ кончали?
– Да, – говорю я.
– А вы можете мне график нормального распределения случайной величины нарисовать?