LINUX.ORG.RU

Embedded C: вопросы на собеседованиях

 , ,


4

5

Я знаю, на лоре много сишников и ембедщиков. А проводящих собеседования на работу еще больше.

Так вот, уважаемые отбиральщики мужей у жен специалистов на должность embedded C developer, что вы обычно на собесах спрашиваете?

Особенно интересны вопросы по Сишке с намеком на завалить кандидата — неочевидные или на хорошее знание стандарта.

Знаю, в гугле такого много, но хочется от живых людей примеры, а не от индусов, пиарящих себя и свой сайт.



Последнее исправление: untitl3d (всего исправлений: 3)

Ответ на: комментарий от Harald

ну одно дело баги по невнимательности, это у всех бывает

Это был глубоко зарытый sleeper в чужом библиотечном коде. Выстрелил при очередном compiler upgrade.

другое дело баги от незнания матчасти

Моё главное правило: «write what you know, know what you are writing» ((c) не мой). Не благодарите ;)

bugfixer ★★★★★
()
Ответ на: комментарий от Harald

А ваще в жо транзисторы. Основы усиления лучше на лампах рассказывать.

untitl3d
() автор топика
Ответ на: комментарий от Harald

тогда электроды ламп называй

«А катод мы сделаем из дерева, всё равно до сюда никто не дочитает» ;)

bugfixer ★★★★★
()
Ответ на: комментарий от bugfixer

Это был глубоко зарытый sleeper в чужом библиотечном коде. Выстрелил при очередном compiler upgrade.

ну тогда это вина другого плохого программиста

Harald ★★★★★
()
Ответ на: комментарий от Harald

ну тогда это вина другого плохого программиста

Вообще говоря человек с опытом даже поболе моего будет. Хотелось бы услышать формальное определение «плохого программиста». В чём оно меряется?

bugfixer ★★★★★
()

В то время, как конторы урезают фичи или вообще отменяют не самые приоритетные проекты на фоне нехватки нефти 21-го века - программистов - вы их… отсеиваете?

mv ★★★★★
()
Ответ на: комментарий от bugfixer

«Кроха сын пришел к отцу, и спросила кроха:»

Хотелось бы услышать формальное определение «плохого»

Так правильнее.

anonymous
()
Ответ на: комментарий от mv

на фоне нехватки нефти

В америке не хватает нефти на бензиновые пикапы программистов?

anonymous
()
Ответ на: комментарий от bugfixer

это смотря как опыт измерять, во времени, проведённом на работе или сложности выполненных проектов

Harald ★★★★★
()
Ответ на: комментарий от anonymous

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

Harald ★★★★★
()
Ответ на: комментарий от mv

отделяют зёрна от плевел, агнцев от козлищ, уран 235 от 238, программистов от человеков :)

Harald ★★★★★
()
Ответ на: комментарий от Harald

мы рассматриваем

обобщаешь

Рассматриваем незнание

anonymous
()
Ответ на: комментарий от mv

В то время, как конторы урезают фичи или вообще отменяют не самые приоритетные проекты на фоне нехватки нефти 21-го века - программистов - вы их… отсеиваете?

Да, по причине проф непригодности и/или отсутствия минимально необходимого набора знаний. Мы тут не в бирюльки играемся, а вполне себе конкретным производством занимаемся. И по факту уровень соискателей за последние лет 10-15 упал катастрофически, что очень печально безусловно.

bugfixer ★★★★★
()
Ответ на: комментарий от mv

нехватки нефти 21-го века - программистов

тебе нужен программист, 2 евро в час? Ознакомительный тариф у него, вообще 20 рублей(30 центов) в час:

Ищу удалённую работу за 20 русских рублей в час. Живу под Калининградом.

fsb4000 ★★★★★
()
Ответ на: комментарий от bugfixer

уровень соискателей за последние лет 10-15 упал катастрофически

Выборка стала шире и репрезентативней?

anonymous
()
Ответ на: комментарий от fsb4000

20? Рублей? Блин, то ли нанять личного программиста? =)

mv ★★★★★
()
Ответ на: комментарий от Harald

это смотря как опыт измерять, во времени, проведённом на работе или сложности выполненных проектов

Сложность приличная, деплоймент очень широкий, система работает десятилетия и приносит много много денюжков. Человек отвечает за одну из её фундаментальных подсистем. И на фоне всех вот этих достижений какой-то там глючёк связанный с идиотским правилом в стандарте что signed int overflow is an UB просто меркнет. У меня лично язык бы не повернулся назвать его «плохим программистом». А вообще, наверное единственный объективный критерий - это то что о вас думает начальство, и сколько готово платить за услуги. Но эти аспекты я обсуждать не буду.

bugfixer ★★★★★
()
Ответ на: комментарий от Harald

это с каких пор I2C стал сложнее UART, SPI, АЦП и ЦАП, что его на следующий уровень сложности отнесли?

I2C сложнее SPI и RS-232 за счёт адресации устройств в шине. Всё-таки проще, когда обмен точка-точка или по чип селект. Поэтому I2C используют реже по моим ощущениям. С другой стороны, UART - это не только RS-232, но и RS-485, который по сложности близок к I2C. Если брать CAN, то он тоже близок по сложности к I2C.

Конечно, USB и Ethernet сложнее. Но с другой стороны, поверх UART есть Modbus, а поверх CAN есть CANopen, которые требуют дополнительных знаний. А USB можно использовать через виртуальный COM-порт, что резко облегчит задачу. И если использовать контроллер как HID-устройство, то это тоже будет не сложнее модбаса.

Kogrom
()
Ответ на: комментарий от untitl3d

Это си или плюсы? Я про си спрашивал.

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

Кроме того, даже если плюсовик будет на си писать, то он способен на большее. Например, обычному сишнику не придёт в голову использовать какие-нибудь двухсвязные списки или словари. А плюсовику будет не хватать чего-то такого после знакомства с контейнерами STL.

Kogrom
()
Ответ на: комментарий от Kogrom

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

можно готовую сишную библиотеку заюзать для этого

Harald ★★★★★
()
Ответ на: комментарий от Kogrom

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

Да ладно! Неужели так печально всё? Как без базовых структур данных то? Мне кажется - Вы преувеличиваете.

bugfixer ★★★★★
()
Ответ на: комментарий от Harald

Яж написал сетки. У тетродов и пентодов их просто больше чем одна.

untitl3d
() автор топика
Ответ на: комментарий от mv

Вы это кто? Отсеивают в основном меня.

А вообще да, во времена нехватки погромистов найти работу погромистом очень сложно.

untitl3d
() автор топика
Ответ на: комментарий от Kogrom

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

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

untitl3d
() автор топика
Ответ на: комментарий от fsb4000

Для начала указать язык :) Тред то про СИ, а вы все на плюсы накинулись.

BceM_IIpuBeT ★★☆☆☆
()
Последнее исправление: BceM_IIpuBeT (всего исправлений: 1)
Ответ на: комментарий от bugfixer

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

У плюсовиков с односвязными списками проблем не было. Более того, проблем не возникло даже у знакомого химика, который изучал программирование в качестве хобби.

Kogrom
()
Ответ на: комментарий от fsb4000

А, ну сейчас компилятор уже так по ногам не дает стрелять.

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от BceM_IIpuBeT

Я не понимаю, а чё сейчас в не веб-макакских областях такие легкие собеседования?

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

Вот если 5 кандидатов на одно место, то тогда имеет смысл отсев на собеседовании…

Ну это так, просто мысли, я не провожу собеседования…

fsb4000 ★★★★★
()

Что в этой сишке можно знать или не знать? Там же два действия всего: сложить и выстрелить в ногу. На сишке можно уметь, а можно не уметь. А знать там нечего.

pinus_nigra
()
Ответ на: комментарий от BceM_IIpuBeT

Я не понимаю, а чё сейчас в не веб-макакских областях такие легкие собеседования?

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

Kogrom
()
Ответ на: комментарий от bugfixer

Да, по причине проф непригодности и/или отсутствия минимально необходимого набора знаний. Мы тут не в бирюльки играемся, а вполне себе конкретным производством занимаемся. И по факту уровень соискателей за последние лет 10-15 упал катастрофически, что очень печально безусловно.

Уууууу…скока пафоса…аж три раза Ку перед монитором сделал.

Ты эта…я тут поприсутствовал на нескольких собеседования в конторах тебе-подобных.

Во-первых, заткнись про какое либо производство. Вы сборище ЧСВ-шных козлов, которые хуже петухов и павлинов красуются друг перед другом никчемными мелкими знаниями. Ваша задача жрать форки форков и понтоваться кто красивее скобочки расставил в коде. А на выхлопе натуральный металлообрабатывающий станок натуральной фрезой натурально сам себе по станине прокатывается. А рядом стоит хозяин конторки, который отвечал за настройку линии, и переводит, чмо сраное, стрелки на молодого пацана, который три дня как в контору устроился, но его код уже оказался в продакшене. И вот такие вот петухи чуть больше чем все. Это не первое мудло с радужным хвостом вместо задницы, с которым мне пришлось иметь дело на общем объекте. Зато понтов у него на собеседовании, надо было видеть. Чморит и заваливает всех подряд. А когда до дела дошло, оказалось, что он ни малейшего представления не имеет нахрена мосту на полевиках драйвер нужен, и зачем верхнему плечу моста бутсрап схема нужна. Душу, говорит, родную не вижу, чтоб на работу его брать.

Во-вторых, не ты ли сам виноват в падении уровня соискателей, если по факту вы все настолько повязли в форках, что соискатель, который знает что такое malloc или free для тебя заведомо мусорный, а кандидат, который кроме условного питона никогда в жизни ни на чем не писал, чем-то привлекателен? Нет? Не ты в этом виноват?

Oberstserj ★★
()
Ответ на: комментарий от bugfixer

А вообще, наверное единственный объективный критерий - это то что о вас думает начальство, и сколько готово платить за услуги.

Подтверждение моих слов выше.

Oberstserj ★★
()
Ответ на: комментарий от Kogrom

I2C сложнее SPI и RS-232 за счёт адресации устройств в шине. Всё-таки проще, когда обмен точка-точка или по чип селект. Поэтому I2C используют реже по моим ощущениям. С другой стороны, UART - это не только RS-232, но и RS-485, который по сложности близок к I2C. Если брать CAN, то он тоже близок по сложности к I2C.

И? А сложность в чем? В чем она измеряется в твоем понимании?

Oberstserj ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.