Интервью

Фирма была в Герцлии - давняя моя мечта, всего пятнадцать минут на автобусе. Не первый год уже искал работу поближе к дому, но ни в моем городе, ни в соседних ничего "не обламывалось". И хотя предложение не выглядело заманчивым, нельзя было не попытаться.

У Йоси было малоподвижное лицо, четко очерченный подбородок и шея борца-средневеса. Впрочем, по фигуре он тянул на тяжелый. После недолгого собеседования, он подвел меня к компьютеру и открыл Visual Studio, знакомый мне, разве что, по названию. Найдя какой-то файл, ткнул в меню редактирования и добрался до диалога Find. - Мне нужно, чтобы ты написал такой же код, - сказал он, подвигая клавиатуру.

Я внимательно рассмотрел диалог. "Find what", "Find next". Здесь понятно. "Mark All". Ну, допустим, это делать не буду - что там маркировать в консоли. "Direction Up/Down". Без проблем. "Match whole word only". Немного хлопотно, но ничего страшного. "Match case". Ни о чем. "Regular expression". Oops! Really? "Search all open documents". Проигнорирую.

Странное задание. Без регулярных выражений и говорить не о чем - рутина. То есть, его цель именно RegExp? Этот парень вменяем? - Тебе нужны все пункты, - спросил я, - включая регулярные выражения? - Именно. Я взглянул еще раз: ни тени улыбки. Он, действительно, не шутит. Встать и уйти? Наверное, я что-то не так понял. Даже на все остальное, без RegExp, потребуется не меньше часа. С RegExp - еще неделя, заглядывая в документацию. Невыполнимо.

Йоси ждал у меня за спиной. Хоть бы сел рядом... Господи, еще этот Visual Studio - как им вообще пользоваться? Почти вся моя профессиональная карьера была связана с продуктами Borland. "File". "New". Первой строчкой стояло "ATL COM AppWizard". Это еще что? - Тебе это не нужно. Он перехватил у меня мышь и щелкнул по какой-то другой строчке. Наконец, открылось окно, в котором можно было писать код. Я предпочел бы листок бумаги - подумать. Ладно, навигация должна быть стандартной. С компиляцией как-нибудь разберусь, по ходу.

Йоси дышал в затылок. Я прописал заголовки функций main() и Find() и задумался: что по-минимуму я обязан реализовать? Начало и конец строки обязательно. Точка, звездочка, плюс, вопрос. Граница слова? Смутное место. Допустим, не сделаю. Символьные классы - черт, это же отдельный парсер. Скажу, что это синтаксический сахар. Неужели этот умник в самом деле ждет, что за час-полтора "на коленке" я напишу полноценный интерпретатор? Скорее, ему хочется просто увидеть, что я понимаю, о чем идет речь. Не испугаюсь ли задачи. Если так, то важно просто начать...

Я быстренько записал несколько дефайнов и первые строчки кода. Неожиданная проблема - форматирование. Отступ в три позиции. Как? Как это делается здесь? В меню "Advanced" нашлось "Tabify Selection", но никакого действия на выделенные строчки не оказало. Что-то я делал не так. Плевать. Я отстучал пальцем три пробела. Следующая строчка. Еще. Может быть, есть способ получше?

- Нет, я думаю, нам это не подходит, оборвал меня Йоси. Я обернулся. Вид у него был напряженный, словно он ждал, что сейчас я на него кинусь. Неадекват, снова подумалось мне. Давно надо было встать и уйти. Работать с ним все равно не получится.

Откуда-то мы тогда возвращались с Рони: Петах-Тиква... Рамат-Ган... улица Бен-Гуриона... - Ты знаешь кто это? - спросил он внезапно. Занятно. Почему им всем кажется, что человек, плохо знающий язык, ущербен и во всех остальных отношениях? И как это не мешает ему платить мне за знание компьютера? - Парень из Пинска, - ответил я. Это было ошибкой, но, возможно, он сам не знал ответа. Или списал ее на мой акцент. В любом случае, он знал где это, что немедленно навело его на следующий вопрос: - А ты знаешь, сколько народу вас здесь ненавидит? Я пожал плечами. - Каждый, кого я встречаю на улице. - Именно, подтвердил он. И хотя в фирме у меня со всеми были ровные отношения, мы оба знали, что это не преувеличение.

Возможно, заметнее всего это было в поездках. В автобусах Эгеда, например. Водитель ставит на многоразовую карточку свой компостер при входе. В долгом рейсе, скажем, до Хайфы, контроль встретишь обязательно. Процедура всегда одинакова: контролер (судя по обрывкам разговоров, часто сам бывший водитель) обменивается приветствиями с шофером, компостирует собственный контрольный талон и движется дальше по салону, проверяя просечки компостера у пассажиров.

Карточки аборигенов он смотрит бегло, девушкам часто кивает, едва взглянув издалека, даже без того, чтобы взять в руки. Но у "оле ми русия" карточку он возьмет обязательно и рассмотрит самым внимательным образом. Уверен, что фальшивку профи распознает даже с другого конца автобуса. Терять зря время тоже нет смысла. И только неосознанное желание причинения ущерба "чужаку" невольно заставляет контролера так тщательно выполнять эту рутинную проверку.

Вот так же и "ватика" в Сохнуте - ничуть не забывшая русский, но, видимо, полагающая "новую алию" угрозой собственному благополучию... "Кто главный враг арестанта - другой арестант."

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

Кажется, я не туда свернул в лабиринте темных пустых коридоров. Какая-то дама шла мне навстречу. Джинсы... поднял глаза, но она заговорила первой - почти не пытаясь скрыть враждебность. Из йеменских, успел подумать я, вслушиваясь в ее безупречный иврит. - Что ты здесь делаешь? Она нисколько не сомневалась в своем праве меня допрашивать. - Приходил на интервью с Йоси. Ищу выход, - миролюбиво ответил я. Ничего в ее взгляде не смягчилось. Огонь ненависти в ее душе просвечивал через глаза, как сквозь печную заслонку - чуть заметно, но не оставляя сомнений. Мне был хорошо понятен этот взгляд - он часто встречался. И здесь и там. Это сигнал - она почуяла чужака.

Вот так же, Бородянко уговорил меня зайти к нему на работу, помочь с компьютером - осваивал персоналку. К нам в центр он притащил кучу всяких полезных утилит, своей работы у меня было "до фига", но отказать показалось неудобно.

Просидели долго, время к обеду. Николай предлагает пойти в столовую Гипромеза - высокое здание напротив. - Там, наверное, ведомственная, - сомневаюсь я. - Никто ничего не спрашивает, я туда почти каждый день хожу, - отвечает он. Мы идем в Гипромез. Потрепанного вида старикан дремлет в проходной вполглаза. Габаритный Бородянко проходит первым, я в его тени. Внезапно старикан оживляется, открывает второй глаз и, как говорят охотники, "делает стойку" - это он увидел меня. - Стой! Куда? - кричит он. Я молча иду за Бородянко в столовую.

Старик срывается, бросает свой пост и бежит за мной. Догоняет уже в зале, я стою в очереди. Он хватает меня за рукав и истошно орет, все оглядываются на нас. Двое каких-то активистов - один молодой мордатый парень, второй - явный старший конструктор нерешительно подходят ко мне с явным намерением пособить старикану. Я демонстративно расправляю плечи. Активисты тушуются. Но аппетит уже испорчен...

В другой раз, монтирую свое оборудование на заводе. Горячий цех, отовсюду бьет пар и течет вода, стало ясно, что всю стойку нужно спрятать под кожух. Сварщик из меня тот еще, но подавать заявку, ждать недели две... взял листы железа и понес в РМЦ на гильотину - отрезать в размер.

Как водится, именно в этот момент черт и принес инженера по ТБ - миловидную блондинку с поджатыми губами. Проходя мимо меня она ничего не сказала, но я видел внезапно вспыхнувший в ее глазах огонек. Ясно было, что добром дело не кончится. Назавтра меня под роспись ознакомили с приказом, запрещавшим доступ на гильотину всем, кроме работников ремонтного цеха. Слава богу, кожух был уже сварен.

Приехав домой, я отыскал книжку с Henry Spencer's Regexp Engine. Тридцать с лишним страниц кода и пояснительного текста. Явно выходит за рамки тестовой задачи на собеседовании.


Рецензии