Comments 51
Моя гипотеза как такие граждане выживают
Всё просто: они работают, вывозят сложнейшие проблемы.
А в викторинах на собесах "чем A отличается от B" процветают энциклопедические эрудиты. За них потом и приходится всё вывозить первым.
Вот я, например, недавно провалил техническое собеседование по языку C#. Один из вопросов, на который я не смог ответить: "Какой номер версии C#, с которым вы работали на последнем проекте?"
Номер версии - это действительно моветон, но если (предположим) вы писали на C# компилятор, причем указали что писали именно парсер, у вас не должно быть проблемы ответить на вопрос типа "какая была структура parsed tee в вашем парсере"? Если человек на такой вопрос ответить не может , то он парсера в компиляторе не писал. Или вы не согласны?
ответить на вопрос типа "какая была структура parsed tee в вашем парсере"
это прям единственно правильное название? А lexical tree, token tree, ... и даже комбинация из этих tree нельзя? Без названия parsed tee распарсить не возможно?
мне все равно как он это называет. Пусть опишет структуру, типы узлов, какая информация в них содержится. Если не может - он этого не делал. А это кстати не lexical tree. Лексический анализ в компиляторе и синтаксический анализ - это фундаментально разные вещи.
А это кстати не lexical tree
названия очень часто не соответствуют сути, но их уже никто не меняет, поэтому при определенных особенностях эмоционального восприятия ваш вопрос может быть очень не верно интерпретирован, я бы сначала спросил какого типа структура формируется (tree - это часть ответа все таки, наверно). А то что структуру должен как то рассказать это я согласен. А на какие единицы они разбирают мне было бы даже интересно, я могу делать только предположения, компиляторы не писал, только проверял на соответствие стандарту.
набирал впопыхах, описка - parse tree
parsed tee
Аж загуглил, не отстал ли от шарпа. Parse tree. Не пугайте так :)
Так, а как с этим вопросом можно провалиться?
Я начал работать с шарпом лет 10 назад, тогда основными версиями были 4.0 и 4.5
С тех пор шарп у нас перешел на неткор, и там любую лтс версию можно называть и не ошибиться (6-8-10).
Если же вопрос внезапно про версии языка как такового, то я бы тоже завалился на вопросе, потому что языковые изменения незначительные и специфику новых конструкций редко использую, так что 5 версия наверно достаточна мне в 99% случаев, а актуальная где то на 12-14 версиях.
Подождите-ка, но он должен хоть что-то знать хорошо, для вывезения сложнейших проблем. Я не смог найти такой темы в его резюме. Если человек скажем пишет RTOS, он должен регулярно использовать Си и ассемблер и он воленс-неволенс его знает и может ответить на базовые вопросы. Если вы чего-то не знаете, не надо включать это в резюме и нарываться на вопросы.
Почему попадание темы в горячий кэш мясной памяти упорно путается со способностью манипулировать инструментом?
После очередного языка программирования и очередного фреймворка лично я скорее не буду доверять своей памяти и начну перепроверять всеми средствами, от справочников до контроля типов через подсветку в IDE.
Я просто пытался дать ему простой вопрос то тому что он сказал что знает, прежде чем копать глубоко вопросами типа "как бы вы организовали такую-то программу или проверку блока под тестом". Но он на каждый вопрос не отвечал, а перескакивал "я не идельно знаю А, знаю лучше Б". Я сам не люблю эрудитов и викторины, просто он не давал с этого режима выскочить.
Подождите-ка, но он должен хоть что-то знать хорошо
Знать != уметь вербализировать свои знания.
Из ваших вопросов правильный только про “A = B + C”. Человек который знает, действительно просто возьмёт да сделает. И не сразу идеально и набело. Т.е. если чел сходу не спросил про знаковость, это ещё не значит что он некомпетентный. Реальная разработка не ведётся сразу набело, а проходит через множество итераций, в ходе которых и вспоминаются всякие ньюансы, и решения доводится до идеального.
Вопрос про race condition тоже валидный. Это одна из типичных проблем отладки, особенно у людей с опытом менее 2 лет и не следующих определенному темплейту писания кода. Если он на это не нарывался - возникает вопрос сколько у него опыта. Если он сразу переводит стрелку на vhdl - возникает вопрос есть ли опыт вообще. После этого естественно переключиться в режим проверки валидности резюме.
race condition это не проблема отладки, это проблема работы всего параллельного. Вон у нас уже тут недопонимание в терминологии.
Если он сразу переводит стрелку на vhdl - возникает вопрос есть ли опыт вообще.
Не хочу защищать данного персонажа, возможно он и правда не тот за кого себя выдаёт. Но проведение собесов в стиле викторины - это тоже очень плохая практика.
В верилоге есть специфическая форма race condition, которая по сути баг языка (блокирующие присваивания в always @ (posedge clock) a = b; always @ (posedge clock) c = a;) что дает разный результат в разных симуляторах и может дать даже разный разультат до синтеза и после него).Это другое чем эквиваленты в софтверных языках. Против этого придумали делать неблокирующие присваивания <=, но глючный вариант оставили в языке.
Насчет vhdl - если бы он ответил на a = b+c, я бы спросил что-нибудь по делу, например как организовать testbench для какого-нибудь моста из протоколов которые есть в резюме (скажем apb в axi)
Насчет vhdl - если бы он ответил на a = b+c, я бы спросил что-нибудь по делу, например как организовать testbench для какого-нибудь моста из протоколов которые есть в резюме (скажем apb в axi)
Вот правильно. Пример конкретной проблемы - бери да решай. А все эти абстрактные академические вопросы с потолка - люди реального дела плохи в таких вещах.
Я написал ввше: Я просто пытался дать ему простой вопрос то тому что он сказал что знает, прежде чем копать глубоко вопросами типа "как бы вы организовали такую-то программу или проверку блока под тестом". Но он на каждый вопрос не отвечал, а перескакивал "я не идельно знаю А, знаю лучше Б". Я сам не люблю эрудитов и викторины, просто он не давал с этого режима выскочить
На вопрос про отличие он меня вынудил сам, посколько довел до необходимости проверить, валидная ли информация у него в резюме. Если человек не знает про рандеву в Аде, то он языка не знает. Это как не знать struct в языке Си. Ада сделана для параллельных процессов.
Более точная аналогия - это как не знать указатели в языке Си. Его главная фишка языка и если человек ее не знает это как использовать Си как Бейсик.
Но при этом человек много лет как-то работал и ему платили за это живые деньги.
Это не человек не знает про указатели в Си. Это задаваемые ему вопросы про указатели в Си требуют от него непонятно какого ответа. Зачастую на собесах получается так.
Но при этом человек много лет как-то работал и ему платили за это живые деньги.
Полезна ли для работодателя такая как-то работа, большой вопрос. А при найме оценивается потенциальный профит от кандидата.
Т.е. предыдущим работодателям была бесполезна, но они всё равно за неё исправно платили много лет?
Может быть только резюме подделано и никакой работы на самом деле не было.
на собесах […] процветают энциклопедические эрудиты
Удивительно, но под любой статьёй, обличающей незнание базы, появляются такие комментарии. Мол, это всё душные мелочи, которые не нужны в настоящей работе. И обычно дальше дискуссия развивается в сторону, что для настоящей работы вообще не нужны никакие “книжные” знания и поэтому на собеседованиях нельзя спрашивать вообще ничего.
они работают, вывозят сложнейшие проблемы
Я не совсем понимаю, зачем вы заочно защищаете людей, не знающих базы своего технологического стека? Каким образом из неспособности ответить на простейшие вопросы по языку следует успех в решении “сложнейших проблем”?
Race conditions в Верилоге — это базовое знание для работающих с Верилогом, этому учат студентов сразу же после введения в синтаксис. Это примерно так же обязательно, как для разработчика на C знать, что порядок вычисления аргументов функции не предписан стандартом и на него нельзя полагаться.
И если вы когда-нибудь хотя бы эпизодически писали на VHDL, то должны знать, что в этом прекрасном языке:
есть несколько разных типов для целых чисел/битовых шин (
signed,unsigned,std_logic_vectorи др.),они не приводятся неявно друг к другу.
Поэтому приведённая в статье портянка с resize буквально обязательна и до боли знакома любому VHDL-практику просто потому, что без неё код не скомпилируется.
Всё просто: они работают, вывозят сложнейшие проблемы.
Как это следует из неспособности ответить на простейшие вопросы по стеку?

Внушает, да...
Для полноты картины не хватает успешных кейсов: как кандидаты, прошедшие подобные фильтры-отборы-интервью, круто изменили компанию к лучшему именно своей работой 🥲
Круто менять необязательно. Если человек добавляет фичи в скажем десятки миллионов новых телефонов или встроенный компьютер для автомобиля (driver's assistance) - это уже круто. А вот если ничего не может сделать самостоятельно, а только копипастити потом пристает к коллегам с вопросами почему не работает, то это просто отрицательная ценность для команды.
Вот тут и приходим к тому что главное от кандидата это наличие мяса на попе уметь брать проблему и самостоятельно её решить, чего бы это ни стоило, а не знания. Знания дело наживное. В пределах разумного, конечно. А на собесах что проверяется? Совсем не то проверяется.
Но, без каких то знаний, решение проблемы может затянуться на непрогнозируемый срок, но в целом я с Вашим посылом согласен.
Пройти собес – тоже задача, почему бы и ее не решить. Мама до старости сопли подтирать не будет, надо брать ответственность за свою жизнь на себя.
Вполне нормально отсеивать кандидатов, которые слова сказать не могут, и вполне нормально, что среди них будет 0,1% немых гениев. Жизнь несправедлива.
Пройти собес – тоже задача, почему бы и ее не решить.
Конечно. Можно даже потом не работать, а дальше проходить собесы с повышением грейда и зепки.
Но мне бы хотелось нанять специалиста работать таким какой он есть, а не нарваться на специалиста проходить собесы.
Прикольно бы было, если бы затронут Форт (Forth) язык. :) На медни пообщался с ИИ поисковика по этому вопросу https://search.brave.com/ (в целом интересно), за исключением некоторых ньюансов по незнанию затронутых в диалоге Форт реалий, Но, на вопрос - Были ли Форт контроллеры у Atmel - говорил “Нет такой информации” , пока напрямую ему не назвал слово Marc4 (т.е. замкнул сам напрямую два или более ключевых слов в его векторной базе данных)
Да уж, если бы он вздумал соскочить на Форт, я бы его тут же зажарил живьем предложением расписать как бы он реализовывал форт-процессор на верилоге. Это шикарный интервьюшный вопрос, если у кандидата в резюме одновременно Форт и Verilog или VHDL. Очень развесистый вопрос с ответвлением про кеширование стека.
А, Форт процессоров в железе “нет”, Зачем тогда “бесполезные” вопросы? :)
Инженерный снобизм в чистом виде. Ну вот зачем вы его спрашиваете про аду, форт или jovial если в вашей компании это не используется. Вместо того что бы выдти на конструктивный диалог по конкретным задачам которые человеку предстоит решать, вы тратите время оплаченное компанией на экзамен кандидата по сферическим знаниям которые не используется в вашей компании. 😩
Если вы чего-то не знаете, не надо включать это в резюме и нарываться на вопросы.
И да в моём резюме тоже есть vhdl и verilog и когда то на нём я писал корреляторы и Фурье процессор для быстрой свертки (занимался навигацией и даже есть патенты) но это было в 2011 году и после этого я переквалифицировался сначала в DSP программиста а потом в менеджера. И что я теперь должен по вашему удалить весь этот опыт из резюме если я сейчас на RTL языках и пары строк из головы не напишу (правда чужой код прочитаю и даже скажу примерно во что синтезнется)? 😀
начало статьи: в интервьировании на позицию по моделированию и верификации процессорных ядер
если вы будете "подаваться" на дизайнера микросхем - то да, просят про RTL языки. Не потому, что они были упомянуты, а потому что вы обещаете владение ими пробуясь на такую вакансию.
На вакансии менеджера художественной галереи их, действительно, спрашивать не надо, но там спросят другое.
Вместо того что бы выдти на конструктивный диалог по конкретным задачам
Думаю, там уже после ответа на вопрос про сложение стало понятно, что кандидата решать конкретные задачи решать не возьмут. А всё остальное уже просто из любопытства, узнать как долго можно менять тему, не отвечая на вопрос.
в моём резюме тоже есть vhdl и verilog и когда то на нём я писал корреляторы и Фурье процессор для быстрой свертки
Вы смогли ответить на вопросы про race condition и сложение?
как бы он реализовывал форт-процессор на верилоге
И он бы тут же соскочил на лисп-машины.
Наблюдал другое - спрашивают соискателя про опыт, какие последние проекты: ну там микроконтроллеры какие, IDE, как прошивали/отладка велась, как совместная работа организована - "мне нельзя говорить, NDA" 🤷♂️
И вот тоже не понятно, зачем тогда на собеседование пришёл.
Вполне нормальный ответ, вы спрашиваете про то как были построены процессы разработки в компании если компания с именем то это попадает под NDA. Переформулируйте просто вопрос и всё
Ты работал с конкретной ide или процом
Вот устройство как бы ты организовал процессы фабричной прошивки и обновления в процессе эксплуатации
Как бы ты отлаживал и собирал инфу на подобном устройстве
Если бы я назначил тебя лидом как бы ты организовал работу в команде
В этом случае человек поделится своим реальным опытом ну или может слегка пофантазировать если его нет, но при этом нет нарушения NDA, потому что он не расказывает конкретно про процессы в предыдущей компании.
> через несколько лет трудоустроенным в другой компании
Ну это не обязательно связано. В конце концов вы не знаете, на какую именно позицию он там устроился, могла быть совсем не про топологии.
А сама "стратегия собеседования" звучит как-то странно. Кажется, что он не хотел оффера, а просто развлекался. Потому что эта стратегия просто обнуляет его шансы.
Байка-то великолепная, но остаётся байкой. Это даже не анекдот про "если бы у рыбы была шерсть, в ней бы водились блохи" - там студент ответил на все вопросы (хотя и криво). А этот ваш соискатель - ни на один.
То есть да, счётчик запоротых вопросов нулевой. Но и счётчик отвеченных - тоже нулевой. В результате техническую часть он просто не проходит. Если конечно у него нет волосатой лапы. Но если есть - все эти хитрости ему просто не нужны.
Та кто его знает, некоторые теряются при живом общении, но в состоянии потока работают и решают сложные задачи, решают успешно.
У нас как-то один эксперт был на собеседовании, так он сразу отрезал - нет, на такие вопросы я отвечать не буду - унижение мне не нужно, у меня есть чувство собственного достоинства. Все офонарели.
Т.е. если чел. эксперт, может быть он что-то и напутает от стресса в простейших вещах. Как-то возьми выпускника по математической специальности - возможно он не вспомнит все аксиомы планиметрии, которые дети в школе изучают. Из этого можно сделать вывод что ему нужно в школу.
возьми выпускника по математической специальности - возможно он не вспомнит все аксиомы планиметрии, которые дети в школе изучают
Нет, это так не работает, тем более в математике. У математики нет внешних объектов исследования, аксиома есть основной объект исследования математики. Я ещё могу допустить, чтобы, скажем, химик забыл какие-то элементы школьной химии (тем более что изрядная часть школьной химии - это устаревшая или ложная информация). Но математик, забывший аксиомы - это не математик.
Но математик, забывший аксиомы - это не математик.
Забывший аксиомы своей области.
Как думаете, сколько прикладных математиков (которых вы скорее всего обнаружите на собеседовании) помнят аксиоматику ZFC или аксиоматику классического исчисления высказываний? (кстати, какую из?)
Сколько чистых математиков, ковыряющих аксиоматику ZFC или классического исчисления высказываний, вспомнят аксиомы планиметрии? (лично я хз вообще, что это такое — аксиомы Евклида? что-то ещё? я из аксиом Евклида помню только пятую, к слову, и то по очевидным причинам) Сколько из них вспомнит аксиомы, ну, не знаю, сигма-алгебры?
Сколько работающих специалистов по машинному обучению, пишущих продакшен-код с этими всеми вот эмель-модельками, вспомнят аксиомы сигма-алгебры? Там она замкнута относительно конечного или счётно бесконечного пересечения? А не путаете с аксиомами топологических пространств? Точно?
А это всё от зубов отлетает, чтобы дискаунт на стресс в условиях интервью?
Я как-то помогал с технической частью собеседования на один проект, где нужен был миддл со знанием Qt. Ну и вот, кидают мне резюме кандидата, который выглядит как очень твердый миддл с богатым и разнообразным опытом…
Я на собесах начинаю с достаточно лёгких но нестандартных вопросов, просто чтобы кандидат расслабился и не стрессовал. Спросил: в чём отличие указателя от ссылки в си++. И кандидат завис. Начал оправдываться что в кутэ всё на указателях, своя модель управления памятью и тп. В целом говорил правильно, неплохо объяснил тот же mvc в контексте кутэ, но прямо чувствовалось отсутствие фундаментальных знаний по си++. И я не знал что делать. С одной стороны выглядело так, что человек повидал всякое энтерпрайз г**но, владеет фреймворком и с задачами мидла должен справляться, но с другой я ну никак не мог порекомендовать его именно как си++ программиста.
Или был другой случай, тоже искали си++ мидла на бэкэнд, но с виду неплохой кандидат очень плавал в многопоточности и raii. Он почувствовал это, попытался сказать, мол я программировал в основном с кутэ. И тут, я как в статье, почувствовал почву для отрыва :)
Перепрыгивание с языка на язык как тактика прохождения интервью