Обновить
34
Михайлов Алексей Анатольевич@MinimumLaw

Linux Kernel, Bare metal, Embedded developer

13
Подписчики
Отправить сообщение

У вас каждый вопрос по сути оставляет несколько трактовок и подразумевает знание банальных ответов, но ожидает не только лишь их )

Да, наверное. Мои вопросы призваны отсеять "проходимцев собеседований" и выловить людей "с практикой". Без привязки к конкретным работам, ибо они бывают очень и очень разные. С другой стороны толковый джун ими тоже хорошо подсвечивается. Они все скорее не "вопросы из теста", а "сочинение на тему". Тесты можно заучить, а сочинение надо уметь писать (к слову о софт-скилах из соседней ветки).

на секундочку, в контексте динамических. И с динамическим же выделением памяти. Что не так?

Вопрос в тексте был "Что такое static?" Где здесь хоть что-то про динамическое выделение памяти? Совершенно очевидно что вы пытаетесь отвечать на вопрос, который не задавался. Согласен, не самая удачная формулировка, но... Она не настолько плоха, чтоб быть настолько неправильно понятой.

 И меня сильно напрягают вопросы, которые регулярно используются в качестве вопроса с подвохом.

Вопрос о том, как битово представляется чиcло -2 в памяти содержит подвохи в другом месте. Например в том, char это int (а может long или даже long long). И не используется ли ненароком BigEndian в данном контроллере. А это не тот ответ, который дали вы упомянув троичную (чего троичную - давайте сразу нечеткую?) логику.

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

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

взять условного меня... или взять студента ...

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

  • Можно, а зачем? (с)

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

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

Думайте, может лучше оставить это как хобби. Радости не меньше и ответственности (почти?) никакой.

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

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

По списку вопросов - повторю то, что писал выше. Их много, и они по большей части бестолковые. А набор вопросов по специфике CAN говорят либо о том, что меня собеседует человек который совсем недавно открыл для себя этот интерфейс, или о том, что он очень активно применяется в работе. И этот момент я бы обязательно уточнил. Что до остальных вопросов - может оно и норм. Ну не используют люди RZ/NRZ и прочие MIPI/DP вместе с PCIe. Им нужны те, кто уже знает про I2C и SPI. Что ж в этом плохого? Вопросов про USB с его SOF и суперфреймами нет. Значит и не надо.

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

Отличные вопросы, для тех кто идет уверенно! Хотя, справедливости ради, MMU не частый гость в мире микроконтроллеров.

Да, к сожалению и Yadro начинает обрастать жирком...

Чем отличаются жесткий и мягкий real time?

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

Чем отличается биполярный транзистор от MOSFET?

MOSFET в девичестве назывался полевым транзистором и имел индуцируемый канал, т.е. изолированным затвором. И именно это отличает его от биполярного. А выводы микросхемы нумеруются в соответствии в документацией производителя.

Мой круг вопросов другой. У меня, конечно, не чистые контроллеры - скорее Embedded Linux + контроллеры, при чем прикладное ПО пишут коллеги, но...

  • Вы написали "hello world" для микроконтроллера. Расскажите как он будет выполняться с момента подачи питания.

  • Как по вашему мнению должна выглядеть идеальная функция min() в коде для микроконтроллера без использования RTOS

  • Зачем нужен аппаратный таймер и что делать если встроенных в контроллер таймеров не хватает?

  • На осциллографе вы видите очень короткий импульс, вместо ожидаемого длинного - что это может быть?

  • Как делается отладочный ввод-вывод? Что можно сделать, чтобы он минимально влиял на работу основной программы?

  • Как критические исключения позволяют обнаружить проблемное место в коде?

Если опыт позволяет, и в резюме есть опыт работы с ARM до эпохи Cortex, я спрошу еще

  • Почему необходимо выравнивать данные? Чем может быть опасен доступ к не выровненным данным? Как добиваться выравнивания?

  • Что думаем про битовые поля? Как физически компилятор с ними работает? Где их стоит применять, а где лучше воздержаться?

Если заявлено знание схемотехники

  • Нарисую RC-цепочки разного вида и попрошу рассказать как через них проходит аналоговый и цифровой сигнал.

  • Спрошу про погрешности, вносимые измерительными приборами в процессе измерения.

Ну и уточню, что у нас принят Linux Kernel coding-style.

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

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

Так и подбивает спросить - старый вирус эмулируете. Тот, который под DOS прерывание клавиатуры перехватывал, и заменял "," на ", бл*,"? Что сильно позже породило пост на небезызвестном ресурсе.

Senior-уровень сегодня — это не потолок, где можно остановиться и просто делать свою работу хорошо, а это развилка. Либо ты расширяешь своё влияние и ответственность, либо застываешь в позиции «я просто пишу код».

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

И да, бизнес стал другим. Он перестал быть нацеленным на результат. Теперь всем рулит его величество процесс, в котором проблемы, легко предсказываемые технической эспертизой, становятся "инцидентами" с четким регламентом их решения. Пусть и неправильного, плодящего эти "инциденты" как снежный ком. Зато все при деле - менеджеры рисуют диаграммы Ганта, мастера с видом индийских йогов проводят митинги, кодеры пишут код с помощью искусственного интеллекта. Зачем в этой системе сеньоры и техническая экспертиза? Потому никакой я не сеньор. Я просто пишу код. Я ведь даже не мидл, а по сути джун. Ровно потому что мой код лучше, чем тот, который пишет ИИ, но появляется он медленнее. И лишает работы всех, кто вокруг - от мастеров и DevOps'ов (что бы это не значило), до менеджеров, которым неоткуда становится брать новый "инциденты" и показывать свою значимость. И да, я и не делаю из этого секрета - поэтому я мало того, что хуже джунов, так я еще и величайший токсик в компании.

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

Например, чтобы более качественно и с меньшим числом ложных срабатываний находить слово «Алиса» в окружающем шуме.

Ох уж мне этот Яндекс... Эта фильтрация привела к тому, что для моей Midi, как для тупых - дважды и с четкой дикцией. И первый раз с вероятностью 40% будет проигнорирован. Что характерно, запинающиеся, плохо сформулированные детские вопросы станция распознает лучше, чем четкие взрослые указания (правда брошенные походя).

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

"... Бывший наркоман на стимуляторах. Сейчас на седативах, чтобы мозг не разгонялся до состояния "всё и сразу, но ничего конкретного". Гиперчувствительность к среде. Социальная батарейка на 15 минут в день..." - ну прямо типовая картинка хакера несколько лет назад. Достаточно вспомнить ту же Матрицу. Да и суда по отзывам пользователей о всяких корпоративных софтинках, не только хакера.

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

Тема интересна с другой стороны. Нас тут уверяли, что ВЕСЬ трафик фильтруется. И все гадали, как же такое можно физически реализовать и на каких мощностях. А тут получается что не весь. И трафик Yandex'а или VK остается нефильтрованным... Что в принципе ставит под сомнению всю идею "белых списков" (если, конечно, она соответствует заявленной, а не реально работает на самоизоляцию). И да, в этом смысле интереснее а что там с Великим Китайским файрволом? Какой-нить TaoBao или 163 тоже имеет нефильтрованный доступ?

Да, однако... QA на Хабре, да в статьях... Так вот прямо даже не знаю, с чего начать и чем закончить... Тут бы автора послушать поболее, как он сам заданный вопрос понимает. Чтоб ответить на понятном языке...

Если кратко, то в моменты включения и выключения сигнала гармоники будут возникать даже если это включение и выключение происходит в идеальный момент (момент перехода через ноль). Если вопрос "почему?" остается рекомендую обратиться к специализированной литературе. При чем как по условной математике, так и по схемотехнике. Они здесь друг друга усиливают. Собственно, они же и объясняют разницу в показаниях. Фурье от отчетов - это идеальный мир, спектроанализатор - реальный (с поправками естественно).

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

Корону бы поправить. Боком весит...

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

На деле, реально мало кто по доброй воле идет не то, что на завод. Мало кто идет в разрабатывающие подразделения для того же завода. Чтоб завод мог продолжать работать и владельцу прибыль приносить. И на это тоже есть свои причины. Но из того "мало", людей с низкой самооценкой ничтожный процент. И они быстро меняют разрабатывающие должности на мелкие руководящие. Благо текучка кадров позволяет. Им так спокойнее.

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

Правда, есть шансы адаптироваться. И любому входящему в этот адок с порога кричать: "Дверь закройте! Холодно!". Только путь тот далеко не для всех. Потому, если только душа не требует, не ходите на завод... А если требует, то... Присаживайтесь, жара в этом аду хватит для всех...

На моей HP Vectra не было. PS/2. Впрочем, я от этого уже не страдал. А на трешке да - присутствовала. Всегда нажатой, но была. Как и ключ блокировки клавиатуры. К которому даже ключа не наблюдалось.

Я видел разное. Видел отлично работающие системы с Amd. Sun Workstation Ultra M2 работала превосходно. В Sony Playstation 4 камень от Amd работал (работает?) очень классно. В пятерке вроде бы тоже весьма неплохо. Вообще лозун о том, что AMD "уделывает" Intel я слышу с середины 90-ых и 486-ых процессоров. Что-то в этом, безусловно, есть.

С другой стороны через меня прошло столько ноутбуков, с "уделающими Intel процессорами", за которыми просто невозможно было работать. Как говорится в одной рекламе "Не просто тормоз, а тормозище!" Особенно когда проходит некоторое время и на более требовательном софте начинаешь сравнивать системы одного поколения. По этой причине я остаюсь с Intel. И всем, кто спрашивает моего совета я рекомендую (но не настаиваю и не требую) такой же подход. Пока он меня не подводил.

Сейчас я не горю желанием обновлять мой старенький Intel и все больше присматриваюсь к системам с Aarch64. К сожалению, выбор здесь не очень велик. Потому пока просто в ожидании.

И да, про голосовалку... Первый ПК на котором я реально работал был с Am386DX, а первый купленный за свои деньги с i486DX2. Что было в PC XT, на которых меня учили я не знаю. Так что что отвечать - тот еще вопрос.

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

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

Возможно. Может быть, за то время пока я "не брал в руки шашек", мир стал лучше. Но, тем не менее, даже понятные мне абстракции, кажутся избыточными для тех проектов, с которыми приходится иметь дело.

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

Но так или иначе, а плюсы меня коснулись боком и довольно давно. На сегодняшний день я вполне солидарен с автором. В моем "мире фундаментов" Rust имеет больше шансов, чем плюсы. Правда, есть некоторое ощущение, что сегодня он именно в этом мире, не более чем С с очень своеобразным синтаксисом и методикой сборки. Но посмотрим. Возможности предоставлены. Ждём результат.

Так я ж не против. Появился новый беспилотный Камаз (Rust) и в определенных условиях его использование становится оптимальным. Но в других условиях Сапсан он не заменит.

Принципов и идей в ИТ гораздо меньше, чем конкретных реализаций.

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

Желание слазить на уровень ассемблера пару раз присутствовало и ни разу в итоге не оправдывалось.

Так выпьем же за то, чтоб наши желания совпадали с нашими возможностями (с)

Просто не попадалось задач, где по другому в принципе нельзя (или крайне нецелесообразно). Как, например, тут.

Что до универсализма... Хороший подход. Только вот времена Гаусса и Леонардо да Винчи были давно, а любая универсальная вещь одинаково неудобна во всех вариантах в сравнении с узко специализированной.

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

Информация

В рейтинге
Не участвует
Откуда
Пушкин, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Инженер встраиваемых систем, Архитектор программного обеспечения
Старший
От 350 000 ₽