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. Способы вывода в программе, в т.ч. в поток ошибок. После стольких провалов я и тут облажался, хотя ответ знал.

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

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

Date: 2018-06-01 07:33 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
БЕЗ массы!!!

Date: 2018-06-01 07:36 pm (UTC)
From: [identity profile] rbs-vader.livejournal.com
Вот этого мы не пробовали. Вполне могло бы и завестись, если компы от одной розетки подключены с заземлением.
К слову, софтварные вопросы я вообще не понял. Аппаратные - так себе. Гораздо хуже, чем у вас. )) Наверное, мне и вовсе только говно вилкой чистить можно.

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
Разрабочик универсал, это нормально. Меня много где так собеседовали

Date: 2018-06-01 08:14 pm (UTC)
From: [identity profile] dlinyj.livejournal.com
Ноут от аккумулятора и комп. И будет работать - почему?

Date: 2018-06-01 08:19 pm (UTC)
From: [identity profile] Шура Люберецкий (from livejournal.com)
А заодно пусть и помещение подметает?

От "универсала" и следует ожидать "представления о различных областях, но нигде не глубоко", тут чудес не бывает. Плюс общая тактика "макнуть в говно, потом продавить вниз по зарплате" тут вполне читается.

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

Date: 2018-06-01 09:09 pm (UTC)
From: [identity profile] getinaks.livejournal.com
Работать будет, хреново, в 9600 (а если COM там не очень честный, то скорее всего только на 4800 и ниже) и полу-дуплексом, т.к. земля будет паразитной по второму проводнику. У меня так на подтяжках через USART вообще схема запитаться смогла, правда там ток был 0.1 мА.

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-01 09:25 pm (UTC)
From: [identity profile] arush-damage.livejournal.com
Плюс много.

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

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

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 06:25 am (UTC)
From: [identity profile] juunitaki.livejournal.com
Я взял на работу человека, который хорошо держался при ответах вот на такие примерно вопросы. Он прекрасно разбирается в ошибках, но очень медленно решает прикладные задачи.

Date: 2018-06-02 07:12 am (UTC)
From: [identity profile] mbr.livejournal.com
Нет, сейчас это уже не нормально. Тем более с таким требованием к уровню знаний.

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 08:25 am (UTC)
From: [identity profile] lazy-flyer.livejournal.com
Плюс ещё столько же.

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

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

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

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

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

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

Date: 2018-06-02 09:23 am (UTC)
From: [identity profile] dlinyj.livejournal.com
Почему?

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

тогда надо идти на олимпиады по программированию и отбирать там, в идеале - самому формировать задачи для таких олимпиад. Шутка. Насколько знаю, так никто не делает, хотя жаль - студентам нужны реальные задачи

Date: 2018-06-02 12:40 pm (UTC)
From: [identity profile] kvisaz.livejournal.com
я сейчас подумал и понял, что ваш комментарий, по сути, дополнительно подтверждает мое высказывание

человеческий фактор работает в собеседованиях с живыми людьми

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

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

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

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 08:49 pm
Powered by Dreamwidth Studios