dlinyj: (Default)
[personal profile] dlinyj
Обязательно ходите на собеседования, даже если вы влюблены в свою работу. Никто не заставляет вас её менять. При чём, если вы получаете 50 000 рублей - идите на собеседование на 100 000, а если 100 000, то на 150 000 и т.д. Только повышайте планку. Ходить не реже раз в три месяца! В крайнем случае - пол года. Иначе вы покроетесь плесенью, и не будете знать где у вас провалы.

Самые ценные собеседования - это провальные, те, после которых вы чувствуете себя ничтожеством, которое ничего не смыслит в программировании - это то, что поможет вам расти дальше!

Сегодня было самое провальное собеседование в моей жизни. Провальное от слова совсем, я обосрался везде. Какие были вопросы:
- Как устроен системные вызовы linux на языке ассемблера на ARM-процессоре (специфический вопрос, не спорю).
На х86 я более-менее помню, на арме не знаю - провал. Хотя логику работы системных вызовов смог объяснить. Меня умыли, что я чмо и не знаю арм-ассемблера.
- Какие средства синхронизации бывают? Какие средства синхронизации можно использовать внутри контекста прерывания, какие нет и почему?
Рассказал про мьютексы, семафоры. Мне напомнили про спин-блокировки. Про синхронизацию в контексте прерывания я слышал, и даже рассказывал на своих лекциях, но забыл.
- Чем отличается шина i2c от spi. (тут я обосрался конкретно, и ответил что количеством проводов). Сразу был задан вопрос, зачем в i2c стоят терминаторы и какой их номинал. Тут я тоже облажался, и сказал что для согласования линии. А мне напомнили, что там тупо открытый коллектор...
- Может ли интерфейс RS-232 работает ТОЛЬКО по двум проводам: RX и TX? Ну-ка, скажите мне? Эй [livejournal.com profile] di_halt ? Оказывается, что плохенько, на 9600, но МОЖЕТ!!! А почему?
- Как лучше располагать сигнальные линии и питание в многослойных платах и почему? Питание внутри слоёв, или сигнальные линии внутри слоёв. Тут вообще вопрос спорный, и я готов выслушать варианты ответов. Но я сказал, что питание следует располагать внутри слоёв (на четырёхслойке внутри бутера), а сигнальные линии на топе и ботоме, чтобы меньше были наводки. Снова промах.
- Для его у дифференциальных линий дорожки идут везде вместе? Тут было полное попадание, т.к. активно сейчас с ними работаю - для эквивалентности наводки.
- Шина RS-485. Обычно на такой линии есть терминаторы. Но у нас схема звезда, с переменным количеством подключаемых модулей. Какие средства избежания коллизий и помех есть? Не знал - изменение фронта сигнала.
- Что такое красное и бинарное дерево? - не знаю.
- Как работать с cmake. Работал крайне мало, не знаю.
- yocto linux - не использовал, не знаю.
Был ещё ряд вопросов, на которые я не смог найти ответы.

После такого обтекания, мне предложили решить ряд задач, на которых я окончательно запоролся.
Задачи:

1. Написать функцию, которая инвертирует в uint32_t все биты.
Суть задачи ясна, как решать - более-менее понятно. Но я не помню бинарные операторы, плюс от волнения налажал - провал.
2.
int32_t a = -200;
uint32_t b = 200;
return *(uint32_t * (&a)) > b


Что вернёт данная функция? Задача - блестящая. Я провалился процентов на 30.
3. Функция расчёта среднего арифметического двух чисел int32_t.
4. Способы вывода в программе, в т.ч. в поток ошибок. После стольких провалов я и тут облажался, хотя ответ знал.

Вопросов по электронике, линуксу, ассемблеру и программированию было очень много. Собеседование было достаточно грубым, и где-то даже унизительным. Мне намекнули, что я гожусь только чтобы подметать помещение. Я чуть там стол не опрокинул и хотел уйти хлопнув дверью. Формат беседы был построен, на самом деле чтобы меня унизить. Но, господа, я им так благодарен! Эти люди показали явный уровень моих навыков: куча дилетанских разрозненных знаний, имение представление о различных областях, но нигде не глубоко. Кроме разве что пространства пользователя и разработки в нём. Это очень ценно!

Date: 2018-06-01 07:32 pm (UTC)
From: [identity profile] rbs-vader.livejournal.com
В школьные годы мы так в Doom и играли, простейший кабель на COM-порт - RX, TX ну и масса.

(no subject)

From: [identity profile] rbs-vader.livejournal.com - Date: 2018-06-01 07:36 pm (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-01 08:14 pm (UTC) - Expand

(no subject)

From: [identity profile] getinaks.livejournal.com - Date: 2018-06-01 09:09 pm (UTC) - Expand

Date: 2018-06-01 07:40 pm (UTC)
From: [identity profile] Шура Люберецкий (from livejournal.com)
Что-то не пойму - а кто этим товарищам нужен? Программист-линуксоид? А зачем ему задавать вопросы про RS232 по двум проводам? Программист встраиваемых систем? Зачем тогда вопросы про Linux? Схемотехник? Почему спрашивают про программирование? 3 в 1, и чтобы еще немножечко шил?

Date: 2018-06-01 08:12 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Разрабочик универсал, это нормально. Меня много где так собеседовали

(no subject)

From: [identity profile] Шура Люберецкий - Date: 2018-06-01 08:19 pm (UTC) - Expand

(no subject)

From: [identity profile] arush-damage.livejournal.com - Date: 2018-06-01 09:25 pm (UTC) - Expand

(no subject)

From: [identity profile] lazy-flyer.livejournal.com - Date: 2018-06-02 08:25 am (UTC) - Expand

(no subject)

From: [identity profile] mbr.livejournal.com - Date: 2018-06-02 07:12 am (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-02 09:23 am (UTC) - Expand

(no subject)

From: [identity profile] eky.livejournal.com - Date: 2018-06-02 01:14 pm (UTC) - Expand

Date: 2018-06-01 08:23 pm (UTC)
From: [identity profile] xlat.livejournal.com
А что по зарплате при успешном прохождении обещали, если это не было секретом? :)

Date: 2018-06-02 09:22 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Между последними двумя цифрами в посте :)

(no subject)

From: [identity profile] xlat.livejournal.com - Date: 2018-06-02 01:38 pm (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-02 04:55 pm (UTC) - Expand

(no subject)

From: [identity profile] xlat.livejournal.com - Date: 2018-06-02 05:41 pm (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-02 07:05 pm (UTC) - Expand

(no subject)

From: [identity profile] belbes.livejournal.com - Date: 2018-06-03 09:19 am (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-04 08:31 am (UTC) - Expand

(no subject)

From: [identity profile] belbes.livejournal.com - Date: 2018-07-18 10:55 am (UTC) - Expand

Date: 2018-06-01 09:24 pm (UTC)
From: [identity profile] arush-damage.livejournal.com
Херня какая-то а не собеседование.

- Как устроен системные вызовы linux на языке ассемблера на ARM-процессоре (специфический вопрос, не спорю).
Не знаю с армом не работал, думаю 5-ти минутное чтение MAN поможет %)
- Какие средства синхронизации бывают? Какие средства синхронизации можно использовать внутри контекста прерывания, какие нет и почему?
Много разных, зависит от системы. Ограничения контекста прерывания также зависят от системы. Вон под дос надо было кое что в порт 20 писать чтоб клавиатура работала в обработчике.
- Чем отличается шина i2c от spi.
Не работал, надо в доки смотреть или хотя бы в англо-вики.
- Может ли интерфейс RS-232 работает ТОЛЬКО по двум проводам: RX и TX?
Возможно может, там ведь практически переменка. Но думаю что сильно зависит от аппаратной реализации. Так то в свое время на ес-1841 и 5-ти дюймовые дискеты на 800кб(и больше) форматировали. Правда они потом только там и читались %))
- Как лучше располагать сигнальные линии и питание в многослойных платах и почему? Питание внутри слоёв, или сигнальные линии внутри слоёв.
Я хз, платы не разводил и не собираюсь - я программист. Но вопрос странный. Если электронщики достигли консенсуса в этом вопросе - ответ гуглится за пару секунд, если же нет и возможны варианты - разводить плату должен профи который знает нюансы. По любому меня это не касается.
- Что такое красное и бинарное дерево?
Это как раз из программирования. Только не "красное" а "красно-черное".
- Как работать с cmake.
Лучше всего - никак. Выкинуть нахер эту пионерскую поделку и использовать нормальные autotools.

Задачи тоже странные, на каком языке/платформе их надо сделать?
1) тупо бинарное НЕ, либо вычесть uint_max
2) не знаю как на арме, а на х86 у отрицательных чисел старший бит =1 а у положительных =0. Ответ очевиден.
3) сложить и поделить на два, если после сложения был выставлен флаг переноса - прибавить max_int32/2
4) система/платформа? std(in/out/err), файлы, логи, сокеты, порты, сериал консоль, интернет ресурсы?

Тащемто на такие вопросы следовало бы задать кучу встречных вопросов на тему "а с какой целью вы этим интересуетесь???" %)))

Date: 2018-06-02 01:26 am (UTC)
From: [identity profile] kvisaz.livejournal.com
очень часто вопросы задают, чтобы получить не ответ, а реакцию

другими словами, что бы ни случилось, на собеседовании надо держаться молодцевато, с удалью, показывая, что можешь думать и решать

(no subject)

From: [identity profile] juunitaki.livejournal.com - Date: 2018-06-02 06:25 am (UTC) - Expand

(no subject)

From: [identity profile] kvisaz.livejournal.com - Date: 2018-06-02 12:04 pm (UTC) - Expand

(no subject)

From: [identity profile] kvisaz.livejournal.com - Date: 2018-06-02 12:40 pm (UTC) - Expand

Date: 2018-06-02 09:21 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Про средства синхронизации вопрос в ядре линукс, только.

По задачам я просто протупил... Домой пришёл, и понял что на собеседования нельзя ходить в пятницу вечером.

1. Логично, ступил.
2. И чем будет равен ретурн?
3. А как проверить флаг переноса?
4. Говорим только о линукс.

(no subject)

From: [identity profile] arush-damage.livejournal.com - Date: 2018-06-02 04:50 pm (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-02 07:06 pm (UTC) - Expand

(no subject)

From: [identity profile] ssloy.livejournal.com - Date: 2018-06-02 10:26 pm (UTC) - Expand

Date: 2018-06-02 06:23 am (UTC)
From: [identity profile] juunitaki.livejournal.com
Классные вопросы.

(a+b)/2 можно заменить на a/2 + b/2?

Date: 2018-06-02 09:22 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Нет, в целых числах потеряется 0,5 на нечётных.

Date: 2018-06-02 01:21 pm (UTC)
From: [identity profile] Шура Люберецкий (from livejournal.com)
3. Для начала можно задать пару встречных вопросов - например, попросить определить, что такое "среднее арифметическое" в кольце вычетов по модулю 2^32.

Ну или сначала поинтересоваться, чему равно "среднее арифметическое" 3 и 4.

Date: 2018-06-02 07:40 am (UTC)
From: [identity profile] alexfilonov.livejournal.com
Ну да, ведь сейчас "дайте python для AVR, а то assm/c слишком умные".
А еще лучше дать им Tiny с 2Гб ОЗУ и 8Гб flash... Так, для ВижуалВасика :)

Date: 2018-06-02 04:22 pm (UTC)
From: [identity profile] alexfilonov.livejournal.com
Это из сегодняшнего. (https://habr.com/post/412959/)
Image

Date: 2018-06-02 08:27 am (UTC)
From: [identity profile] lazy-flyer.livejournal.com
Нахер такие собеседования вместе с проводящими.

Date: 2018-06-02 12:54 pm (UTC)
From: [identity profile] minimumlaw.livejournal.com
Некогда ходить. Работать надо.

Но по сути странное желание собеседовать "по площадям", и тем более странное желание взять "универсала" с улицы, и уж явно настоящий "универсал" стоит дороже.

Но эпизодически падать моськой в совсем не шоколад очень даже полезно. Чтоб не зазнаваться и ценить то, что имеешь. Ну и, конечно, адекватно оценивать собственные знания и силы. Мне уже очень сложно будет сменить работу. Слишком "заточен" под привычные задачи, а схкмотехнику практически забросил - ибо некогда. Так, консультантом...

Date: 2018-06-02 02:26 pm (UTC)
From: [identity profile] Шура Люберецкий (from livejournal.com)
https://twitter.com/StabbyCutyou/status/1002193315977158656

Date: 2018-06-02 04:09 pm (UTC)
From: [identity profile] rdavid.livejournal.com
Отличное интервью, и реакция ваша правильная. Вопросы про разводку проводков говорит только о том, что им нужен и швец, и жнец, и на дуде игрец. Про красные и чёрные деревья помнят исключительно студенты, но это из частых вопросов на интервью.

Date: 2018-06-02 06:31 pm (UTC)
From: [identity profile] Шура Люберецкий (from livejournal.com)
> Про красные и чёрные деревья помнят исключительно студенты, но это из частых вопросов на интервью.

А почему не АВЛ?

(no subject)

From: [identity profile] rdavid.livejournal.com - Date: 2018-06-02 06:49 pm (UTC) - Expand

(no subject)

From: [identity profile] Шура Люберецкий - Date: 2018-06-02 07:11 pm (UTC) - Expand

Date: 2018-06-02 07:44 pm (UTC)
From: [identity profile] arkamax.livejournal.com
Если не секрет, какую з/пл обещали за такие навыки?

Date: 2018-06-02 08:01 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Выше я там дал ориентацию. Между предпоследней и последней цифрой в списках ЗП :).

А какие должны быть?

(no subject)

From: [identity profile] arkamax.livejournal.com - Date: 2018-06-02 08:08 pm (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-02 08:11 pm (UTC) - Expand

(no subject)

From: [identity profile] arkamax.livejournal.com - Date: 2018-06-03 02:51 am (UTC) - Expand

(no subject)

From: [identity profile] dlinyj.livejournal.com - Date: 2018-06-03 04:52 am (UTC) - Expand

Date: 2018-06-02 10:32 pm (UTC)
From: [identity profile] asdar.livejournal.com
Если интервьюер - професионал, то цель интервью не выяснить конкретные знания человека, а посмотреть, как человек будет решать новую нестандартную задачу, как он будет мыслить.
И если даже он все завалил, но думал в правильном направлении, то он пройдет интервью.

Любой интервьюер может завалить кандидата, просто нужно копать глубже, пока не дойдешь до уровня некомпетентности. И хорошо, когда человек сам честно говорит - я не знаю, дальше нужно читать\гуглить и т.д.

Date: 2018-06-03 12:05 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Мне просто не повезло. Тут была цель меня завалить. Но это не так важно.

Date: 2018-06-03 06:47 am (UTC)
From: [identity profile] orome-risc.livejournal.com
А как во 2ом вопросе можно провалиться на 30%?

Date: 2018-06-04 08:31 am (UTC)
From: [identity profile] dlinyj.livejournal.com
некорректно сказал, что вернёт ретурн

Date: 2018-06-06 12:55 pm (UTC)
From: [identity profile] pif.livejournal.com
Знаете, комментарии к посту напомнили мне один случай с госслужбы:
Там было принято принимать на работу по результатам устного испытания, напоминающего институтский экзамен, перед соответственно комиссией из начальства. Вот ко мне пристал отдел кадров на предмет "придумай нам пару-тройку каверзных вопросов по государственному заказу, чтобы соискатели соответствующей должности раскрыли свой недюжинный потенциал". Ну я подошел к вопросу ответственно, надергал всяких спорных вопросов и из собственной практики и из практики коллег из других богаделен. На каждом можно было по полтора часа перечислять возможные варианты решений и их последствия. На это мне отдел кадров сказал: "вопросы отличные, только нам нужны и ответы, а то начальство не поймет, правильно ли отвечает соискатель". Тут я в сердцах забрал у них практические вопросы и "родил" вместо них совершенно формальные и не имеющие практического значения, зато с ответами типа "15 рабочих дней", "запрещено" и "не более 100 тысяч рублей".

Date: 2018-06-06 02:29 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Подобные собеседования, которые напоминают экзамен, иногда показывают что лучше валить подальше от данной конторы.

(no subject)

From: [identity profile] pif.livejournal.com - Date: 2018-06-26 06:35 am (UTC) - Expand

Date: 2018-06-20 09:31 am (UTC)
From: [identity profile] masterspammer.livejournal.com
Кстати, спасибо за этот совет - расскажу при случае!

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 07:00 pm
Powered by Dreamwidth Studios