Перепрыгивание с языка на язык как тактика прохождения интервью

от автора

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

Я задал вопрос про язык описания и верификации аппаратуры SystemVerilog. На это кандидат сказал, что он еще не освоил SystemVerilog, вписал его в резюме на будущее, но вообще использовал Verilog-95 и немного Verilog-2001.

“Нет проблем”, — сказал я и задал вопрос по Verilog-95: “приведите примеры гонок (race conditions) при испрользовании верилога”.

На это кандидат сказал, что вообще его опыт был больше связан с VHDL. “Блин, как он выкрутился” — подумал я, ведь в VHDL нет гонок как в верилоге из-за дизайна языка.

VHDL так VHDL. Спросил: допустим переменная A имеет размер 10 бит, B 7 бит, а C 5 бит. Напишите как вычислить “A = B + C”.

Правильный кандидат, который знает VHDL, сразу бы спросил, может ли он использовать стандартную библиотеку ieee.numeric_std или проприетарную std_logic_arith от компании Synopsys. Далее правильный кандидат поинтересовался бы, являеются ли A, B и C числами со знаком или без знака. После чего написал бы на доске что-нибудь типа:

A <= std_logic_vector (resize (signed (B), 10) + resize (signed (C ), 10))

Но кандидат ничего такого писать не стал, а сказал, что он использовал VHDL как своего рода расширение языка Ada, на котором у него реально много опыта. Тут я начал подозревать, что кандидат просто прыгает с языка на язык, чтобы завести меня в область, в которой я ничего не знаю, чтобы я его отпустил (его ждали интервьировать еще три человека в компании).

Но кандидату не повезло. Когда я учился в 1986 году в 9 классе физматшколы номер 145 города Киева, мне попала в руки переводная книжка про Аду, я ее читал и даже писал ручкой в тетради на ней программы, так как компиляторов с Ады на Украине не было, первый я увидел только в Москве, в институте авиационных систем ГосНИИАС в 1991 году.

Короче я попросил кандидата описать мне механизм рандеву (rendezvous) в языке Ада. Это ключевая черта, одна из главных особенностей языка которая отличала его не только от Паскаля, от которого Ада развивалась, но и других языков типа Coral-66, применявшихся в ракетно-радарно-авиационном народном хозяйстве.

На это кандидат удивился и смущенно пролепетал что-то про язык Jovial, после чего постмотрел на меня с таким видом “А вот хрен ты хоть что-то про Jovial знаешь!”

И вот тут кандидату не повезло просто конкретно. Да, Jovial — это действительно редкий язык, который несколько десятилетий поддерживался какой-то конторой в Канаде для военных клиентов, у которых много древней легаси. Но я во все-том же 9 классе прочитал упоминание про этот язык в культовой в СССР книжке Чарльза Уэзерела “Этюды для программистов”, а потом, уже в середине 1990-х, увидел книжку про Jovial в библиотеке Стенфордского университета, и с интересом ее пролистал.

Ну как вы поняли, я задал кандидату вопрос про Jovial: чем этот язык, который произошел от Algol-58, отличается от других языков своего времени, например более известного Algol-60? (я прочитал про Алгол-60 в 8 классе в учебнике МГУ по программированию, а до этого — в 7 классе в книжке серии “Популярные лекции по математике”).

Выражение лица кандидата после этого вопроса было бесценным. (Правильный ответ, например “в частности в обработке строк” — он дать не смог)

Интересно что я увидел этого товарища через несколько лет трудоустроенным в другой компании. Моя гипотеза как такие граждане выживают: в индустрии есть куча работ, где нужно не знание по существу, а просто копипаста, например для поддержки однообразных тестов в легаси проектах. В комбинации с респектабельной наружностью это работает. А вы как думаете?

ссылка на оригинал статьи https://habr.com/ru/articles/1033360/