
До окончания института осталось 2 года, всякие популярные направления по типу фронта и Бэка перенасыщены кандидатами. Как вкатиться в embedded?
Эмбеддед - хуйня для макак.
>Как вкатиться в embedded?
Проще чем куда-либо через годик или уже ща приходишь в любое нии и устраиваешься. Они и сами охотно набирают со старших курсов. К нам приходили на 4 и прямо после защиты дипломов визитки давали. Но я вкатился через знакомого.
ЗП где-то 170к через год работы в ДС2. Но везде по-разному. Где-то 200+, где-то придётся дрочить копьё < 1к далларов.
В целом мнение о низких ЗП байтоёбов преувеличено.
Как и всегда, ответ один: зависит от. Но в целом сложнее дефолт вати- работы. Поскольку эмбед подразумевает, что ты будешь отлаживаться на каком-то девайсе в свлей конторе, который тебе офк не разрешат вынести. Но у меня, например, гибрид, но я ходу в офис, потому что удаленка хуета.
В эмбеддед нужно постепенно вкатываться: ибо там не только С/С++, там еще можно прикрутить разработку схем электрических принципальных, рисование топологии печатных плат по схеме, умение работать с измерительный аппаратурой по типу мультиметра, осциллографа, вольтметра и тд
А разве разработкой железа занимаются не аппаратчики?
У нас в НИИ разделение на аппаратчиков и программистов. И если у меня не работает железка, то я иду к аппаратчикам и мы вместе смотрим, что не так.
Кстати, а платят нормально?
Или ты должен работать за двоих (аппаратчик+программист), а зарплата меньше, чем у QA-макаки.
Тут надо уточнить, какие именно аппаратчики? Если ты имеешь в виду тех, кто именно устройство создает на базе ПЛИС/микроконтроллера, то чаще всего происходит так, что в башке уже план возникает, как программу под mcu писать, какие интерфейсы потребуются, какие выводы, какая внешняя обвязка, и проще самому схему разработать, а вот рисование платы уже можно и делегировать другим.
Мне как разработчику прошивки под устройство проще самому выбрать модель ПЛИС/микроконтроллера. Например, если мне требуется что-то ебанутое, то можно взять STM32F4, попроще уже можно брать, STM32F1, а совсем легкое и дешевое можно уже Atmega/Atiny взять. Сами аппаратчики вряд ли будут шарить за возможности конкретного камня, количество памяти и тд
Ну как разработчику платят по рынку. У меня в должности младший программист написано, получка 180к. Но работа специфическая, так как требует образование высшего, связанного с программно-аппаратным обеспечением ИУС.
У нас почти всё собственной разработки, включая CPU. Часть на ПЛИСах.
Один человек, даже если он прям всё знает, чисто физически не успеет всё это разработать, развести плату со всеми интерфейсами типа CAN, USB и т.д., и запрограммировать её, чтобы дать конечному потребителю функции для работы с устройствами на плате.
Тут не вопрос времени, а вопрос согласования железа и ПО. Один человек может сделать плату, нарисовать схему Э3, топологию нарисовать. А потом при разработке ПО программист скажет, что ножки не те разведены. А это либо дорожки резать, либо просто перезаказывать плату и ждать
>>07901
Да и если чел с отдела, который рисует платы и занят он только этим. Он может в душе не чаять как работает микроконтроллер и почему для I2C дорожки должны быть максимально короткими с подтяжками, а для USB нужно Dp и Dm экранировать, но зато он будет знать, как развести дорожки на плате максимально эффективно
А если нужно развести что-то высокочастотное, например, DDR или NAND, этим же должны заниматься аппаратчики? Они должны учитывать всякие отражения сигнала и т.д. Или у вас этим занимается программист?
Я, например, не разбираюсь в схемотехнике на таком уровне.
Я беру даташиты и схему от аппаратчиков и программирую что они мне дали. Если что-то не работает, то иду к ним и мы вместе разбираемся что не так.
Тут скорее разработчик должен схему предоставить, какие КП куда подключить, а тополог уже плату нарисует с учетом частотности сигналов и тд
Писька
Какие проекты можно сделать например на stm 32, чтобы потом не стыдно было показать на собесе?
Попробуй программно проэмулировать JTAG с разной длиной загружаемых данных в SHIFT-IR и SHIFT-DR состояниях, при этом чтобы можно было параметризировать скорость кое-как.
Подсказка, можешь использовать два SPI (один мастер, другой слейв), т.к. и JTAG, и SPI являются полнодуплексными интерфейсами
>>08703
Если хочешь прям что-то показать на собесе, а не только код
То можешь простенький проект придумать, где стмка будет по прерыванию таймера периодически опрашивать какие-нибудь датчики, например, акселерометры и выводить это на эрканчик, например I2C OLED дисплей
Будет очень хорошо, если используешь DMA+прерывания по какому-нибудь интерфейсу
Отлаживаешь проект на NUCLEO какой-нибудь, затем рисуешь схему и топологию платы, заказываешь плату и компоненты, паяешь и приносишь свою платку на собес
https://www.youtube.com/watch?v=AtBViXty3F4&ab_channel=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2
В дополнение могу скинуть этот видос, но здесь прям полный фарш, думаю, для джюна слишком трудно будет реализовать это все, но чел здесь также рассказывает, какой проект - какой скилл показывает
Привет, анончик,можешь привести пример какого либо тестового задания, для того что бы попасть на собес (лучше всего реальное тестовое которое ты проходил) ?
Почекал вакансии, думаю, что на изи потяну какую нибудь джуновскую специальность (высшее закончил программная инженерия москвобад), так как по своему стеку тяжело вкатиться уже пол года безработный.
Кто ты? Ты в курсе вообще чему там учат? Там далеко не только кодинг, но та же электротехника, микрики, ЦОС etc. Поэтому это инженерная специальность в том числе.
Инженегры ведь тоже макаки по большей части: сидят дрочат свои болванки в солиде, для которого скрипты писать можно, т.е. в теории программист с этим справится лучше, автоматизировав всё. Заменят ли прогеры инженеров?
По такой логике не макаки только врачи какие-нибудь, да и то хирурги условные, а не выписыватели рецептов в кабинетах. Ну или те, кто често занимаются тяжёлым физическим трудом.
Мой цели (для обучения):
цель-минимум: установить линукс, поиграться, написать какой-нибудь драйвер.
цель-максимум: присобачить камеру, захуячить в железку нейронку (распознавание лиц например).
Вопрос 1:
Какую машинку купить?
я в них плохо шарю: Raspberry Pi, AVR что там еще есть
Вопрос 2:
смотрю ценники: хорошая от 10-15к
есть варик достать дешевле? а в идеале вообще может где-то беспалатно урвать, лол
Вопрос 3:
Может подскажете что-нибудь еще интересное+полезное
>есть варик достать дешевле? а в идеале вообще может где-то беспалатно урвать, лол
Любая стмка с алика (блюпил тот же), либо esp8266. Почти даром стоят.
Привет, если честно, то никогда не видел тестового в эмбедед, да и я пооходил только два собеса. Если найдешь вакансии с тестовыми, то скинь, будет интересно посмотреть, а я скажу, насколько это нормально для стажера или джуна
Вообщем я нашел несколько вакансий описание примерно следующее и в одной из них фигурировало, что надо сделать тестовое задание, так как я уже давно не могу вкатиться(сделал около 600 откликов на хх ру, без накрутки). У меня план примерно следующий заказать с озона все, что надо сделать пару тестовых которые я нашел в инете и попробовать на лакичах залететь в эту специальность на сИ подобных языках я прогал, последние полтора года прогал на котлин и делал алгосы на литкоде код варсе, могу писать без синтаксического сахара, поэтому считаю, что на изи вкачусь по теме программирования.
Касаемо темы не программирования тоже некая база есть изучал схематехнику сдавал физику.
Вообщем что я хочу от тебя дорогой анон, сказать на сколько тестовые которые я скину приближены к реальности ? какое тестовое задание может быть по этой вакансии ?
Задачи, которые предстоит решать:
Разработка приложений для ARM микроконтроллеров на языках С, С++ с использованием средств разработки IAR, Keil, Eclipse;
Разработка вспомогательных приложений на языках С, С++, С# с использованием средств Microsoft Visual Studio;
Первичное тестирование разработанных продуктов;
Формирование документации по разрабатываемым проектам.
Требования к кандидату:
Наличие профильного высшего образования;
Умение программирования на языках С, С++;
Умение писать хорошо понимаемый и комментируемый код;
Готовность работать с проектами, разрабатываемыми другими людьми;
Знание принципов работы систем контроля версий (GIT);
Знание английского на уровне, необходимом для чтения технических спецификаций, стандартов, программной и аппаратной документации;
Решение о приеме на работу принимается по итогам собеседования и выполнения тестовых задач на проверку вышеперечисленных знаний и умений.
Будет большим плюсом:
Наличие опыта программирования низкоуровневого ПО для микроконтроллеров;
Понимание принципов архитектур микропроцессоров и/или микроконтроллеров;
Знание и понимание принципов работы систем управления проектами (Jira);
Опыт работы с использованием системы контроля версий (GIT).
Вообщем я нашел несколько вакансий описание примерно следующее и в одной из них фигурировало, что надо сделать тестовое задание, так как я уже давно не могу вкатиться(сделал около 600 откликов на хх ру, без накрутки). У меня план примерно следующий заказать с озона все, что надо сделать пару тестовых которые я нашел в инете и попробовать на лакичах залететь в эту специальность на сИ подобных языках я прогал, последние полтора года прогал на котлин и делал алгосы на литкоде код варсе, могу писать без синтаксического сахара, поэтому считаю, что на изи вкачусь по теме программирования.
Касаемо темы не программирования тоже некая база есть изучал схематехнику сдавал физику.
Вообщем что я хочу от тебя дорогой анон, сказать на сколько тестовые которые я скину приближены к реальности ? какое тестовое задание может быть по этой вакансии ?
Задачи, которые предстоит решать:
Разработка приложений для ARM микроконтроллеров на языках С, С++ с использованием средств разработки IAR, Keil, Eclipse;
Разработка вспомогательных приложений на языках С, С++, С# с использованием средств Microsoft Visual Studio;
Первичное тестирование разработанных продуктов;
Формирование документации по разрабатываемым проектам.
Требования к кандидату:
Наличие профильного высшего образования;
Умение программирования на языках С, С++;
Умение писать хорошо понимаемый и комментируемый код;
Готовность работать с проектами, разрабатываемыми другими людьми;
Знание принципов работы систем контроля версий (GIT);
Знание английского на уровне, необходимом для чтения технических спецификаций, стандартов, программной и аппаратной документации;
Решение о приеме на работу принимается по итогам собеседования и выполнения тестовых задач на проверку вышеперечисленных знаний и умений.
Будет большим плюсом:
Наличие опыта программирования низкоуровневого ПО для микроконтроллеров;
Понимание принципов архитектур микропроцессоров и/или микроконтроллеров;
Знание и понимание принципов работы систем управления проектами (Jira);
Опыт работы с использованием системы контроля версий (GIT).
Задание #1:
Необходимо разработать систему мониторинга для ARM микроконтроллера, которая будет выполнять следующие функции:
Чтение данных с нескольких датчиков:
Считывание температуры и влажности с двух различных датчиков (например, DHT11 или аналогичных) через I2C или SPI интерфейс.
Обработка данных:
Преобразование полученных данных в удобный формат (например, температуру в градусах Цельсия и влажность в процентах).
Если температура превышает заданный порог (например, 30°C), включить сигнализацию (например, светодиодный индикатор или звуковой сигнал).
Запись данных в память:
Данные с датчиков должны записываться в кольцевой буфер или на внешнюю флеш-память (например, через SPI или I2C).
Отправка данных на внешний сервер (опционально):
Программа должна поддерживать возможность отправки собранных данных на внешний сервер (например, через UART или через интернет, если устройство поддерживает сетевые подключения).
Графический интерфейс (опционально):
Создать простой интерфейс с выводом текущих показаний температуры и влажности (например, на ЖК-дисплее или через интерфейс с ПК).
Требования:
Программа должна быть написана на языке C или C++ для ARM микроконтроллеров.
Использование I2C или SPI для работы с датчиками.
Обработка ошибок при работе с датчиками и памятью.
Опционально: использование систем контроля версий (например, GIT) для ведения истории изменений.
Код должен быть чистым и хорошо структурированным с понятными комментариями.
Дополнительное задание (если предусмотрено):
Написать unit-тесты для проверки обработки данных с датчиков.
Подготовить краткое описание проекта с архитектурой системы.
Задание #1:
Необходимо разработать систему мониторинга для ARM микроконтроллера, которая будет выполнять следующие функции:
Чтение данных с нескольких датчиков:
Считывание температуры и влажности с двух различных датчиков (например, DHT11 или аналогичных) через I2C или SPI интерфейс.
Обработка данных:
Преобразование полученных данных в удобный формат (например, температуру в градусах Цельсия и влажность в процентах).
Если температура превышает заданный порог (например, 30°C), включить сигнализацию (например, светодиодный индикатор или звуковой сигнал).
Запись данных в память:
Данные с датчиков должны записываться в кольцевой буфер или на внешнюю флеш-память (например, через SPI или I2C).
Отправка данных на внешний сервер (опционально):
Программа должна поддерживать возможность отправки собранных данных на внешний сервер (например, через UART или через интернет, если устройство поддерживает сетевые подключения).
Графический интерфейс (опционально):
Создать простой интерфейс с выводом текущих показаний температуры и влажности (например, на ЖК-дисплее или через интерфейс с ПК).
Требования:
Программа должна быть написана на языке C или C++ для ARM микроконтроллеров.
Использование I2C или SPI для работы с датчиками.
Обработка ошибок при работе с датчиками и памятью.
Опционально: использование систем контроля версий (например, GIT) для ведения истории изменений.
Код должен быть чистым и хорошо структурированным с понятными комментариями.
Дополнительное задание (если предусмотрено):
Написать unit-тесты для проверки обработки данных с датчиков.
Подготовить краткое описание проекта с архитектурой системы.
Задание #2:
Напишите программу на языке C для ARM микроконтроллера, которая будет выполнять следующие действия:
Чтение данных с датчика: Программа должна считывать данные с датчика температуры через аналоговый вход (например, с использованием ADC).
Обработка данных: Преобразовать считываемое значение в температуру в градусах Цельсия.
Управление выводом: В зависимости от значения температуры (например, меньше 20°C — выключить вентилятор, больше 30°C — включить), программа должна управлять выходом (например, с использованием GPIO) для управления вентилятором.
Требования:
Программа должна быть написана на языке C.
Код должен быть хорошо структурирован и комментирован.
В коде должен использоваться механизм обработки ошибок, например, для проверки корректности считывания данных.
Код должен быть совместим с платформой разработки IAR или Keil (в зависимости от выбранного инструмента).
Программа должна использовать систему контроля версий (например, GIT) для управления версиями кода.
Сорян, на работе последние дни занят был сильно, а дома не до двачей было. Сейчас почитаю тестовые, что ты скинул и ответить постараюсь оперативно
Ну по задачам тут прям совсем стандартные требования.
Типа разработка ПО для ARM контроллеров это скорее всего прошивку просто писать для STM32, либо под китайские аналоги какие-нибудь.
Ну вообще жирнющий плюс, если ты сможешь написать прошивку под стм32 без использования кубиде, кубмх. То есть накатить любую иде, накатить гсс, выставить в иде ему нужные флаги, карту памяти для конкретного камня взять, стартап файлик, линковщик и написать хоть что-нибудь.
Иначе, пользуясь кодогенератором и HAL, ты никогда не поймешь, что на самом происходит в твоем коде и внутри камня.
В идеале ты должен понимать все этапы компиляции: препроцессинг, компиляция .S и .cpp/.c файлов в обьектные файлы, линковка этих обьектных файлов, преобразования elf файл типа в bin или в hex, как правильно посмотреть сколько код занимает пространства программ и пространства данных.
Я когда-то вообще hex-файл под 8051 преобразовывал в команды процессорные через таблицу ISA и анализировал, че он там делает
Ну довольно обычный, несложный проект.
Завести таймер с прерыванием, по прерыванию выполнять всю процедуру (чтение датчиков, оьработка, сохранение в памяти).
По поводу tcp/ip стека и отправление на сервер ничего не скажу, никогда не работал.
GUI на qt можно написать и подключаться к плате через usb-uart мост (какую-нибудь схему СР2102, на компе она будет как виртуальный ком порт отображаться)
Ну самое сложное это отладиться, потому что на руках железо должно быть, либо эмулировать как-то
Тут тоже самое.
По таймеру опрашивать датчик и при выполнении условия дергать гпиошкой
А в остальном базовые умения (git, jira)
Знание микроконтроллереых архитектур тоже спорное, ну знаешь ты, что там шина системная, пару шин периферийных, что у каждой периферии свое адресное пространство (ДАЖЕ У ПАМЯТИ RAM/ROM), что у ядра внутри может быть своя резидентная память и тд
Тут например, можно поговорить об устроцстве конкретно ARM ядра, я точно знаю, что в памяти программ самый первый адрес - это вершина стека, второй адрес - адрес э, где лежит обработчик ресета, то есть ядро сначала записывает SP, а затем прыгает по адресу обработки ресета и дальше только в стартап попадает, лол
У риск5 может быть свои особенности, я особо его не исследовал так подробно
Ну очевидно еще понадобятся провода, чтобы это все соединить между собой (датчик и память к контроллеру), там еще на i2c своя обвязка может понадобиться, если на отдельных компонентах ее нет, ибо там у него свои особенности
>>12093
Ну тут конечно в идеале все смотреть еще осциллографом, когда все сделаешь или во время отладки, чтобы ты смотрел ьам на шину ту же i2c и такой «ооо, нихуя, реально АСК прилетает, устройство ответило», заодно положительные фронты посмотришь у шины
Но понятное дело дома осциллографа не найдется, а покупать двухканальный или самому делать впадлу и дорого
чет я с проводами запутался смотрю короче, ну макетную плату возьму на будущее, type c это понятно, типо надо вот такой радужный набор взять?
почему то с первого пика орнул
>я уже давно не могу вкатиться(сделал около 600 откликов на хх ру, без накрутки).
А куда пытался вкатиться?
Плюс других областей для вката в том, что тебе не надо покупать кучу железок, как в embedded.

да я даже не хочу про это разговаривать, а то у меня опять жопа сгорит, вот из последнего сделал тестовое задание все там идеально выдрочил, что бы не приебались, скинул, через неделю пишут ну вы нам не подходите, через дня 4 пишу, а есть фидбек ? мне пишут ой ну знаете, на самом деле его никто не проверил ну вы там вы понимаете пук пук, просто сразу же стер нахуй своё резюме на хх, без накрутки и скила пиздабольства щас никуда, вот сижу по тихой грусти дрочу алгосы на кодварсе литкоде
>Плюс других областей для вката в том, что тебе не надо покупать кучу железок, как в embedded.
да мне уже абсолюнто похуй когда выкатывался из уника думал ну все сука, глаза аж горели наконец то нахуй, а потом столкнулся с реальностью. че мне вот я посмотрел эти несколько вакансий щас закажу всю эту шляпу ебанную, сделаю мб ещё там какой нибудь проект позвоню скажу все как есть, если возьмут то хоть 10 зарплат готов въебывать на кучу железяк
че там с проводами лучше подскажи не хочу на самом очевидном объебаться и ждать доставку

540x960, 0:10
ну вообщем взял себе все на озоне, немного углубился в эту тему, завтра заберу за выхи сделаю и посмотрим че там

>>09799
в тред призывается ОП и грамотный анон
Вообщем собрал свой первый микро контролер сижу делаю задания, пока курил понял, что хотелось бы подготовиться к скринингу или собесу быстро пробежать по вопросам. соответственно вопрос, подойдет ли этот список для подготовки ? если нет то есть какой то не знаю авторский список ? заранее скажу, что есть достаточное кол-во вакансий в которых опыт не требуется или если требуется то там что то типо такой формулировки " наличие реализованных проектов в данной области"
https://habr.com/ru/articles/676076/
какие вопросы спрашивают на скрининговых звонках, если такие есть в данной специальности ?
> заранее скажу, что есть достаточное кол-во вакансий в которых опыт не требуется или если требуется то там, что то типо такой формулировки " наличие реализованных проектов в данной области"
ну и соответсвенно какую либо легенду я сочинять не буду про невъебенный опыт работы, который не внесен в трудовую
Умирающая отрасль в РФ. Сам только из эмбедда в люди вылез. Изучаю как студент сисколы, теорию ОС, чисто на чесании языком вышел на собесе на сеньку.
Начали б валить - не вывез бы.
Сейчас цель - догнать и перегнать мидлов на испыталке. И не спалиться, что не сильно хорош ядре Линукс.
А в какую область перешёл из embedded?
Я думал, что обычно программирование ядра Linux нужно как раз в embedded, запиливать в него драйвера всяких железок.
Ну я честно не прям уж эмбеддер и пиздец. У меня было достаточно опыта в линуксе. Но это не более чем программки писать в юзерспейсе.
Область - дата сторейдж.
Эмбеддед в линуксе это не более чем DTS, YOCTO собрать и накатить на плату, может там ещё запустить и экран повесить. Потом подключить кнопки по SPI. А потом фронтендеру дать чтоб подключил веб страничку и на выходе получишь POS-терминал.
То о чем ты говоришь, это надо в Сименс, ABB, ATLAS COPCO идти, а в РФ это взять MXM2 плату и подключить ее.
Только тут данные от одного устройства по каналу связи передать другому, опционально что-то сделать и передать по другому каналу связи другому.
Эдакая работа очень низкоуровневой веб макаки из мемов, только с необходимостью знания различных интерфейсов, электротехники и инструментария.
Я правильно понял или шиз?
Тогда?
Разнорабочим блять. Вот эту хуйню напиши, вот эту хуйню принеси, вот эту штуку припаяй, вот эту штуку шуруповертом прикрути. Кстати устраивался программистом.
Сейчас?
Разрабом в команде по ОС в одной зелёной компании
>Я правильно понял или шиз?
Ты понял всё прикладное программирование в целом. Перекладывание и визуализация данных - это 90 процентов работы прогеров где угодно.

608x1080, 0:05
Сап ембедеры, ну что пригласили на собеседование во вторник, сказали что программирования будет по минимуму, больше надо будет работать с техникой, как подготовиться то к собесу ?
То как мне описали компанию: У нас в каком-то смысле экспериментальная лаборатория и мы занимаемся всем - от сборки, до сопровождения готовой продукции и разработки новой. И мы ищем не разработчика, разработка в задачах появится, но позже, и будет занимать всегда лишь часть времени.
Я конечно же попытался спросить, а че там будет на собесе, на что мне ответили собес в формате беседы и будут задания, какие то ?
Ваши предположения?
Применить правило Кирхгофа? нарисовать схему в визио ? что же там что же ? спаять платы ?!
Ну что, рассказывай, как тебя попустили на схемотехнике на собесе :)
>казали что программирования будет по минимуму, больше надо будет работать с техникой
Это хуета. Скипай.
Ну вообщем сгонял на собес меня там школотрона разъебали в принципе если заранее знать что такую хуету будут спрашивать можно было бы и подготовиться, приеду домой вечером опишу чо было
Ну хотя бы какой то фидбек получил понял чё там надо подтянуть по проекту своему что нужно мямлить на собесах
Позвали на другой собес там будут какие то тесты в Зеленоград , тоже интересуюсь чё там за тесты могут быть делайте ваши ставки
Ну вот так прошло первое в моей жизни собеседование на типо в айти
Да я жив, просто друг по вузу приехал в гости сидели бухали искали работу codewarse/leetcode по фану прогали.
Ну вообщем я пошел на собес меня встретил олд.
Собеседование особо технического не было, достал схему показывал элементы спрашивал че это такое, ну я такой ну это транзистор это резистор, это конденсатор, потом он показывает на какой то ебучий квадритик, я вообще нихуя не понял, что это, говорю ну наверное микроконтролер какой то. оказалось логический элемент
Потом достал изи задачку, егэ по программированию, я че то тупанул блять ну и вообщем там была функция, которая сама себя вызывает ну короче хуйня, но даже с этим я блять не справился.
Касаемо схемотехники я думал то, что будут спрашивать конкретно, какую то теорию спрашивать а там надо было просто по обозначением пробежаться.
Потом он взял листок нарисовал задачку из егэ по физике по типу пик рил, я сижу смотрю на эту хуйню и понимаю, что я нахуй решал это миллиард раз, но нихуя не могу вспомнить даже с чего начать, последовательное параллельное подключение че вообще надо.
Ну я так понял, что они ищут какого то супермего увлеченного человека, который с паяльником в жопе ложиться спать, просыпается бежит с улыбкой в визио или каде рисовать свои схемы. Потому что он в пример, мне приводил, что до этого у него работала девочка политик лидер и борец два красных диплома, дипломный проект какой то робособаки.
Самый интересный момент был, когда он понял, что у меня нету какого то особого энтузиазма в том что бы именно электросхемотехникой заниматься , он мне начал рассказывать про компанию. Он такой говорит говорит показывает шкаф по типу пик рилл, говорит говорит, че такое реле знаешь ? не знаешь ммм плохо( говорит говорит а че такое протокол UDP мммм не знаешь ну ладно, потом говорит говорит, первые два три вопроса я ещё пытался че то там мямлить, потом говорил нет нет нет нет.
Ну в конце я сказал типо ладно, я долбоеб, но вот я вуз закончил там то работал не айти тупо офис, я никуда не убегу в течение года могу приходить на работу во время, не проябываться и в целом я не понимаю желания найти себе работника, что бы у него был какой то подростковый интерес к работе схемотехника как он сказал что бы глаза горели
Ну единственное что я понял, что собеседование это не там где сразу сходу ебут начинают тебя по какой то лютейшей базе прогонять и что надо лучше подготовиться по вопросам по моему проекту, который указан в резюме, потому что я сделал все ну работает и работает, а он меня спрашивал, а ты вот так сделал? а почему не так ? а вот у тебя абривиатура указана расшифруй её, ну и тут я тоже поплыл.
Вообщем меня пригласили ещё на два собеса в понедельник уже чистый embedded, будет какой то тест, ГОВОРИТЕ СУКИ ЧТО ТАМ МОЖЕТ БЫТЬ ЗА ТЕСТ ЧЕ ТАМ НАХУЙ СПРОСЯТ, А ТО БУДУ СИДЕТЬ БЛЯТЬ ОПРЕДЕЛЕНИЯ ДРОЧИТЬ
И второй собес, мне дал номер телефона одногруппник, сказал типо вот сходи туда, но я так понял, там че то ссиловыми структурами связана, набирают айтишников в кгб или хуй знает куда, но мне уже честно похуй куда, я бы даже вот в эту шляпу в которой проходил собес пошел бы работать
Ну вот так прошло первое в моей жизни собеседование на типо в айти
Да я жив, просто друг по вузу приехал в гости сидели бухали искали работу codewarse/leetcode по фану прогали.
Ну вообщем я пошел на собес меня встретил олд.
Собеседование особо технического не было, достал схему показывал элементы спрашивал че это такое, ну я такой ну это транзистор это резистор, это конденсатор, потом он показывает на какой то ебучий квадритик, я вообще нихуя не понял, что это, говорю ну наверное микроконтролер какой то. оказалось логический элемент
Потом достал изи задачку, егэ по программированию, я че то тупанул блять ну и вообщем там была функция, которая сама себя вызывает ну короче хуйня, но даже с этим я блять не справился.
Касаемо схемотехники я думал то, что будут спрашивать конкретно, какую то теорию спрашивать а там надо было просто по обозначением пробежаться.
Потом он взял листок нарисовал задачку из егэ по физике по типу пик рил, я сижу смотрю на эту хуйню и понимаю, что я нахуй решал это миллиард раз, но нихуя не могу вспомнить даже с чего начать, последовательное параллельное подключение че вообще надо.
Ну я так понял, что они ищут какого то супермего увлеченного человека, который с паяльником в жопе ложиться спать, просыпается бежит с улыбкой в визио или каде рисовать свои схемы. Потому что он в пример, мне приводил, что до этого у него работала девочка политик лидер и борец два красных диплома, дипломный проект какой то робособаки.
Самый интересный момент был, когда он понял, что у меня нету какого то особого энтузиазма в том что бы именно электросхемотехникой заниматься , он мне начал рассказывать про компанию. Он такой говорит говорит показывает шкаф по типу пик рилл, говорит говорит, че такое реле знаешь ? не знаешь ммм плохо( говорит говорит а че такое протокол UDP мммм не знаешь ну ладно, потом говорит говорит, первые два три вопроса я ещё пытался че то там мямлить, потом говорил нет нет нет нет.
Ну в конце я сказал типо ладно, я долбоеб, но вот я вуз закончил там то работал не айти тупо офис, я никуда не убегу в течение года могу приходить на работу во время, не проябываться и в целом я не понимаю желания найти себе работника, что бы у него был какой то подростковый интерес к работе схемотехника как он сказал что бы глаза горели
Ну единственное что я понял, что собеседование это не там где сразу сходу ебут начинают тебя по какой то лютейшей базе прогонять и что надо лучше подготовиться по вопросам по моему проекту, который указан в резюме, потому что я сделал все ну работает и работает, а он меня спрашивал, а ты вот так сделал? а почему не так ? а вот у тебя абривиатура указана расшифруй её, ну и тут я тоже поплыл.
Вообщем меня пригласили ещё на два собеса в понедельник уже чистый embedded, будет какой то тест, ГОВОРИТЕ СУКИ ЧТО ТАМ МОЖЕТ БЫТЬ ЗА ТЕСТ ЧЕ ТАМ НАХУЙ СПРОСЯТ, А ТО БУДУ СИДЕТЬ БЛЯТЬ ОПРЕДЕЛЕНИЯ ДРОЧИТЬ
И второй собес, мне дал номер телефона одногруппник, сказал типо вот сходи туда, но я так понял, там че то ссиловыми структурами связана, набирают айтишников в кгб или хуй знает куда, но мне уже честно похуй куда, я бы даже вот в эту шляпу в которой проходил собес пошел бы работать
>Вообщем меня пригласили ещё на два собеса в понедельник уже чистый embedded, будет какой то тест, ГОВОРИТЕ СУКИ ЧТО ТАМ МОЖЕТ БЫТЬ ЗА ТЕСТ ЧЕ ТАМ НАХУЙ СПРОСЯТ, А ТО БУДУ СИДЕТЬ БЛЯТЬ ОПРЕДЕЛЕНИЯ ДРОЧИТЬ
Если будешь заниматься больше программированием, а не схемотехникой, то вот https://habr.com/ru/articles/676076/
Удачи выдрочить всё это за 3 дня.
спасибо анон, я скидывал эту ссылку, я прочитал и постарался своими словами ответить в ворд файле осталось где то 60% вопросов, это можно потянуть, только если можешь пруфани, что это пригодиться ну с высоты своего опыта или если ты оп, то почему ты так не внимательно свой же тред читаешь
видеорандом
а ну и заранее отвечу тебе на 40% вопросв я ответил правильные остальные стер
а второе это какая то статься от создателя видоса на ютубе типо ожидание/реальность

А я тоже хочу с вами вкатится в embedded!
Я уже чё-то на третьем вопросе коллоквиума поплыл.
int square(volatile int ⚹ptr) {
return ⚹ptr ⚹ ⚹ptr;
}
И что тут не так? Первое предположение: вдруг компилятор строку ⚹ptr ⚹ ⚹ptr видит как ⚹ptr ⚹⚹ptr и выдаёт синтаксическую ошибку что тут два раза разименовывание указателя типо. Но нет, нихрена, собрал программу - всё правильно работает.
Кажется, тут какой-то очень изьёбистый низкоуровневый подвох есть!!
Я не уверен, но видимо суть в том что раз указатель на volatile, значит там значение может измениться в любой момент, а если оно изменится - то перемножаться будут разные числа и результат по логике будет уже нихрена не square.
Я правда не пынямаю нахрена тут volatile. Разве и так кококонпелятор имеет право не брать каждый раз значение по указателю а закешировать его где то?
А зачем тогда мютексы и семафоры? Если ты создал программу так, что у тебя данные могут поменяться в процессе - это разве не значит, что программа распараллелена неправильно, и тут проблема не в функции, а в том как эту функцию используют.
Хотя может ты и прав, если операция присваивания - атомарная, то может можно закешировать переменную, заранее избавив её от всякого непредсказумого поведения.
> А зачем тогда мютексы и семафоры?
Опять же я не уверен, но мьютексы и семафоры мне кажутся высокоуровневой штукой, как и потоки, потоки же средствами ОС реализуются? А есть ли все это в голом железном байтодрочерстве?
>но мьютексы и семафоры мне кажутся высокоуровневой штукой, как и потоки, потоки же средствами ОС реализуются?
Все верно. Но на голом железе и многопоточности нет. Хочешь fork() - пиши сам свой fork(). Я даже читал, у бумеров были программы для многозадачности на прикладном уровне. Т.е. MS-DOS это же однозадачная система, там нельзя выполнять больше одного процесса. Но все же мы помним, что есть некая "графическая оболочка для MS-DOS" с названием Windows, и всякие видео как бумеры из нулевых на досе запускают по несколько программ. Как я слышал, они устанавливали на дос некую программу, которая выполняла сама распараллеливание задач в пакетном режиме, и под этой программой они запускали другие программы. Хз может ошибаюсь, но во всяком случае, звучит прикольно.
Короче, ты скорее всего прав, потому что как я понял, на голом железе хоть и нет многопоточности, но там же есть наверняка некоторые "области памяти для ввода-вывода" типо как видеобуфер, чтобы всё на внешние устройства выводить. Так что получается что память может самопроизвольно менятся и без участия как таковых "параллельных процессов".
По идее там должно быть dma (но я его никогда в глаза не видел, на лабах в вузике на мк 51й серии ничего такого не было) и по идее в любой момент могут дергуться обработчики прерываний.
На windows как оболочке для доса многозадачность была не вытесняющая (когда планировщик ОС стопает процесс по таймеру и возобновляет следующий) а кооперативная (программа сама у себя должна натыкать вызовов "я все, следующий")
Кстати если там нет многопоточности и ОС - то как на этих модных крутых микроконтроллерах с немколькими ядрами собсно полтзуются этими ядрами?
>По идее там должно быть dma
Я слышал что dma это какая-то древняя фигня из 2000 - 2010. Его часто приводят просто для демонстрации прогресса, что вот, от прерываний пришли к прямому доступу к памяти в обход процу.
>Кстати если там нет многопоточности и ОС - то как на этих модных крутых микроконтроллерах с немколькими ядрами собсно полтзуются этими ядрами?
На микроконтроллерах несколько ядер?! Я думал там всегда одно ядро. Ну а на компьютерах - там какими только аппаратными средствами современный компьютер не напичкан, там и менеджер памяти аппаратный вроде.
Без volatile компилятор может оптимизировать код, например сохранить значение по указателю ptr в регистр процессора и возвести его в квадрат.
А с volatile будут 2 обращения по указателю. Между этими обращениями значение может измениться в другом потоке.
Вообще, пример выглядит искусственно. В данном случае проще передавать аргумент в функцию по значению, а не по указателю.
> Без volatile компилятор может оптимизировать код, например сохранить значение по указателю ptr в регистр процессора и возвести его в квадрат.
Какое право он имеет на эту "оптимизацию"? Чего вообще вместо чтения значения по адресу бы не возвращать 4? Почему 4? А почему бы и не 5...
Компилятор оптимизирует так, чтобы с его точки зрения результат не изменился. Если тупо возвращать 4, то логика работы кода изменится, поэтому компилятор так не сделает.
В embedded вообще в объявлении указателей на регистры устройств надо всегда ставить volatile. Иначе компилятор увидит, что мы читаем данные по указателю и больше их не используем и подумает, "а зачем вообще читать данные по указателю, если они не используются?" и вообще выкинет код чтения. А это был указатель на регистр железки, который нужно было прочитать.
Я так даже ездил в командировку к клиенту, который жаловался, что наша железка зависает. Оказалось, что при чтении регистра клиент не поставил volatile, компилятор при оптимизации тупо выкинул это чтение. А чтение регистра нужно было для сброса прерывания.
>закешировать его где то?
Простой пример зачем нужен volatile. У тебя есть устройство, у него есть регистры, они замаплены в память, проц может через load операцию забрать значение из регистра устройства в свой регистр, без volatile модификатора конпелятор создаст тебе код, который допустим лишь раз обратится к устройству.
Пик 1 на закон Ома то как смог проебать? Эта херня в уме решается.
Набирайся опыта и удачи в собесах, не тупи.

"11--Как проверить, что два float числа равны между собой?"
Я подумал:"а в чём подвох? почему бы просто == не сравнить". Оказалось, что формат float предполагает запись в степени двойки m2^(-x). И в таком формате невозможно точно записать даже числа 0.2 и 0.3 так как для них тупо нельзя нормально подобрать мантиссу, чтобы она точно соотвествовала. То есть 0.2 + 0.1 != 0.3, потому что погрешность... И чтобы их сравнить нужно блядь делать (fabs(f) < epsilon) (целых три ебучие операции!!)
Бля... вы долбоёбы что ли все?! Вы все поехавшие?! Прошло 30 лет, а у вас даже числа - ебучее костыльное багованное говно.
Почему бы не реализовать степень десятки!? типо m10^(-x) вполне себе никакой погрешности не даёт. Нужно просто сделать аппаратную поддержку для таких чисел, чтобы они были быстрыми. Может, специальную память сделать на ОЗУ чтобы чисто для действительных чисел. Но блядь, не считать же всё на костыльно-багованых числах уже какой век, бляд, караул.
14--Есть ли способ запустить С-код до запуска main?
Но меня больше инересует, а что если программу не завершить при помощи exit, или return из main.
Вот допустим такая программа
void _start(void) {
}
Она ничего не делает. Компилируем.
gcc -o prog.o -c prog.c -nostdlib
ld prog.o -e _start
./a.out
получаем Segmentation fault (core dumped)
А почему? Потому что программа продолжает выполняться после _start, и выходит за область выделенного ей процесса? Или что?
И что тут имеется ввиду? В C же нет инкапсуляции в рамках одного файла. Да и какой впизду инкапсуляции, если классов нет? Что от чего скрывать-то?
Я читал статью, где шизы пытались реализовать ООП на С, и они пришли к тому, что "один файл - один класс". Значит всё верно, инкапсуляции как таковой в рамках одного файла нет, поэтому они и полезли в другие файлы.
Ты блин серьезно? Уж что что, а что флоаты сравнивать между себя нельзя - нифига не микроконтроллерные знания. В кутешечке вон есть qFuzzyCompare для этого
> И что тут имеется ввиду? В C же нет инкапсуляции в рамках одного файла. Да и какой впизду инкапсуляции, если классов нет? Что от чего скрывать-то?
Классов нет, а ООП есть. Инкапсуляция видимо через... непрозрачный указатель это называется? Короче есть структурка, объявления которой у тебя нет. Ты можешь ее создавать только через всякие create_shit/destroy_shit, и передаешь пойнтеры на нее в функции, реализации которых ты не знаешь. Так как хедера с объявлением нет - работать ты с ней можешь только через функции которые про нее в курсе.
А я не знал. Возможно у меня, кстати, из за этого раньше баги были, но я просто забил хуй какой-то фигней закрыл.
>>23624
>ООП есть
Нет ооп в С. Если ООП есть в С, то он есть и в ассемблере, а значит есть вообще везде. Знашь как называют высказывания которые всегда истины? Их называют лишёнными смысла, это тавтология.
>непрозрачный указатель это называется
Так это же всё равно между файлами сокрытие идёт. Это не более чем финт ушами. Самой по себе поддержки инкапсуляции в С нет, а static - это указание именно линкеру не индексирвоать эти функции. Т.е. от слова static зависит содержимое обьектного файла, а на само включение файлов оно никак не влияет. Поддержки со стороны языка тупо 0.
Хотя может такой ответ и сойдёт для собеседования. Я хз. Просто вдруг сейчас окажется что в GCC есть и классы, и ООП, и вообще С превратился чудестным образом в подобие С++, чисто из-за особенностей GCC. Там же вроде у GCC есть какая-то фишка что можно полиморфизм реализовать. Мб и всё остальное тоже можно яхз.

Хотя с полиморфизмом я обосрался чуть.
22--Как делать примитивы полиморфизма в С?
Его оказывается можно и без gcc сделать. Что-то ранее я до этого не догадался.
Есть ООП в виде структур с указателями на функции. Это активно используется в сложных проектах.
Например, вот драйвер контроллера USB во FreeBSD https://github.com/freebsd/freebsd-src/blob/main/sys/dev/usb/controller/ehci.c
Ищи в нём слово methods
Раз методы есть, значит и ООП есть.
>Раз методы есть
Так они жеж не на уровне языка есть. Эти методы - они чисто у тебя в голове есть, ты их "представляешь", как абстракцию. С тем же успехом, ты бы мог реализовать стековый фрейм на асме, затем классы и функции и сказать "а на ассемблере тоже ООП есть!". Ну и получается что ООП везде вообще есть, что лишено всякого смысла.
В языке реализован ООП, когда в нём есть чёткое и ясное ключевое слово "класс". Вот тогда это ООП язык. А если этого нет - то значит и поддержки ооп нет.
> Нет ооп в С.
ООП в С есть. Нет синтаксического сахара для него, так что его костылят из структур и указателей на функции. Напоминаю, что кресты изначально в си кодогенерировали.
>Нет синтаксического сахара для него, так что его костылят из структур и указателей на функции
Ну это не класс, это костыльный урод который считает себя классом, как пидор который напялил чулки и считает себя женщиной.

23--Напишите функцию, которая при передаче по аргументу значения 1 печатает "One". При передаче 2 печатает "Two". Запрещено использовать оператор if и оператор switch.
Что от меня хотят?! Ну я могу сделать
void func(int n){
while(n != 2){
printf("Оne\n");
return;
}
printf("Two\n");
}
Но в чём смысл?! Формально, задание выполнено. Но от меня же наверняка хотят явно чего-то другого. А чего?!
И ведь я могу придумать ещё дебильный вариант
void func(int n){
char ⚹str[] = {
"One",
"Two"
};
printf("%s\n", str[n - 1]);
}
Но зачем?! Кажется, что задача должна решаться "математически", т.е. должен сущестовать алгоритм, который любому числу вычислит буквенный аналог. Но это бред, такого алгоритма не может быть!! Чисел бесконечно много, и названия у них нерегулярные, т.е. ты досчитал до nineteen, дальше что должно быть twenteen, а хуй там дальше twenty. Ну и толку, постоянно будут появлятся новые миллионы, биллионы итд. Т.е. для каждого числа нужно будет писать своё слово. Т.е. никак математически из 1 не получить One. А значит все решения задачи, будут предствлять из себя вариацию оператора if. Ну и нахрена это нужно?! В чём смысл тогда задачи, не понимаю.
> Ну это не класс, это костыльный урод который считает себя классом, как пидор который напялил чулки и считает себя женщиной.
Если уродливый пидор может родить ребенка - то вполне себе, как бы уебищно он не выглядел.
По факту на си пишут через ооп, без синтаксического сахара, через костыли и устоявшиеся "соглашения".
Вон, пример "наследования" - struct sockaddr, всякие sockaddr_in, sockaddr_un начинаются с тех же полей так что их можно кастовать к sockaddr, а читая поле sa_family - понимать к какому из них кастовать, имея пойнтер просто на sockaddr
Я конечно не вдупляю, но что мешает сделать массив строк и просто доставать нужную строку по индексу? Или нужно что то более хитровыебанное?
Можно. Так я это и сделал во втором примере. Просто... а нахуя? почему if нормально не использовать? В чём суть задания, в чём подвоха. Демонстрацию каких знаний от меня хотят увидеть.
Нв вот я не знаю. Если это не массив и не тернарный оператор - может есть что то более байтодрочерское?
Может быть и есть. Но зачем? Все даже самые хитровыебанные способы решить это задание абсолютно лишены смысла, потому что из самого задания никак не следует что именно они должны быть выбраны. Задание, грубо говоря, не содержит в себе верного решения, ведь формално оба два моих решения верны, но они оба бессмысленны.
Бля. а никто не искал пак ответов на все эти вопросы трехлетней давности ? Или может у кого то есть ?
Тут типа на логику вопрос.
Ты забываешь, что в функцию могут передать что-то отличное от 1 или 2, в этом случае функция ничего не должна делать.
В первом случае при >1 всегда будет печатать two, во втором выход за пределы массива и вообще жопа.
Мимо проходил
Да, но ты не заметил что тут цикл while - это костыльный if().
Зачем использовать while, когда можно по нормальному через if сделать.
Если задача - ограничить область двумя значениями, то if тут как никогда подходит. Городить деревья из if, конечно - моветон, но не потому что это медленно работает, а потому что получается нечитабельная портянка, в которой зачастую даже автор кода путается. Но если тут значений всего 2, то зачем что-то другое?!
Ну так это учебная задача на выбор из доступных способов решения.
В реале никто 2-мя while-ами это реализовывать не будет, естественно.
Но если тут значений всего 2, то зачем что-то другое?!
Привычка.
На самом деле, зависит от того, какая это функция. Если это функция интерфейса, то проверять допустимость диапазонов входных параметров обязательно. Если внутренняя static функция, которую никто извне дёрнуть не сможет, то по необходимости.
>Ну так это учебная задача
Учебная задача должна иметь адекватное решение. То что она "учебная" не означает что она может быть бессмысленной. Это всё равно что на матеиатике, у тебя было бы задание "задача #1: Сколько? (Но только не 2)". Чего блядь "сколько"? Ну допустим 5 - "ответ: верно". Сука а нахуя оно верно?! В чем смысл задачи????? Вот тут также. "Сделайте программу без if". Ну сделал. А зачем? Это что какой-то принцип или навык показывает или что??
Не, просто есть задачи, когда чистый if-else будет выглядеть плохо. Например, когда я писал свой програмный рендер, там изначально клиппинг линий происходил протянкой из if-else. Просто это был настолько длинный и запутанный код, что я потом всё стер и реализовпл алгоритм Cohen-Sutherland, для обрезки линий, потому что так понятнее. Но если значения только 2 то if()'ом обойтись самое простое и логичное
>Это что какой-то принцип или навык показывает или что??
Да хрен его знает. Возможно это способ понять, умеешь ли ты мыслить нестандартно.

1080x1080, 0:05
Ебать вы раздухарились ПЕРЕД НЕ ПРИКЛОННЫМ АВТОРИТЕТОМ СИНЬЙОРА ПОМИДОРА А ВОТ ТУ ТРУФ РАВНО НУЛЕ А В СИКЛЕ ПО СИАОДУ НЕ РАВНО NULL, спасибо за подсказки решил тз мейнстримным путем, в понедельник не поеду, решил объединить все собесы в один день, нашел соседнию компанию у которых есть чел который выдал свое блестящее резюме в hh
бля я же написал вот этому челу который сделал контрл с контрл в написал ну подтверди, что это реально спрашивают хоть чем то
В россии embeded работает за двоих, сейчас стало лучше, году в 18 пхп макака джун получал 60, ембедед дед 20 лет опыта в физики, электроннике плюсах - 45 т.р., c++ 5 лет опыта прикладник около 100.
Хватит постить шлюх. У посетителей этого треда нет денег на шлюх.

Меня не приняли. И все эти вопросы из коллоквиума - в помойку. Никаких тестов или заданий не давали. Просто спросили про глубокие познания протоколов физического уровня. Про RS-232, итд. Я в жизни ни одного протокола не прочитал, ни ip, ни tcp ни http, не говоря уж о физическом и канальном уровне. Я только в общих чертах представляю, что вот есть там канальный с деауф-пакетами для подключения к соседскому wi-fi, есть там ip, для того чтобы удобно разбивать сети и подсети (на собеседовании сказали что ip - протокол маршрутизации. Странно, я всегда думал что ip это для создания сколь угодно большие сетей, ведь понятия сеть и подсеть - относительны в отличие от мак адресов, а маршрутизацией занимаются bgp, ospf). Спросили, что я разработал на С. Я сказал про пет-проект. Ну мы ещё что-то поговорили, и чем дальше мы говорили, тем больше я как дурачок с 0 iq издавал звуки "ээээ... Мээээ... Пук, серьк". Короче сказали: "мы рассмотрим вашу кандидатуру". На вежливом языке наверное это значит: "проваливай! Ты нам не подходишь!".
Эх. Нищета.
У тебя базу спрашивали. Нужно подучиться. Ты в универе же? Это всё входит в стандартные предметы га том же ИВТ. Про проекты это бред. Какие проекты могут быть у вкатуна. Только лабы.
Да не такие уж они мартыхи. На высоком уровне тоже начинают спрашивать react, electron, ещё сотню всяких фреймворков. А я даже java не знаю, я только C/C++.
жаверы считают сишников байтоёбами - сишники в свою очередь считают жавеор формошлепами. Оба друг друга макакми считают, а меня на работу никуда не хотят брать.
>>26843
>У тебя базу спрашивали. Нужно подучиться. Ты в универе же?
Ты в Беркли что ли учился. Нас в университете вообще никаким сетям не обучали от слова совсем (специальность АСУ ТП). А типичный инжинер, не всегда даже знает как каталог на компьютере создать. Про то какие протоколы существуют я чисто а свободное время обучился. Как собственно и коддингу на С. В университете вообще ничему этому не учат. Только датчкики ввбирать и электропривод рассчитывать. Ну и я уже отучился.
Много лет сижу-пержу в НИИ и что-то очкую идти на собес.
Я не привык держать всё в голове. Зачем, если в любое время можно загуглить?
Про RS-232 помню про TX, RX, GND, CTS, RTS. А вот названия и подключение остальных модемных сигналов не вспомню без гугла. Какая напруга должна быть (вроде 0,5В?), положительная или отрицательная тоже не помню.
Получается, меня даже с RS-232 на собеседовании обоссут, хотя я постоянно с ним работаю и могу загуглить за пару минут все эти сигналы и регистры.
Боюсь представить, что будет, если детально начнут спрашивать про какой-нибудь USB. Когда у меня перед глазами мануалы и примеры кода, то всё понятно, а если их убрать, то я и не вспомню, в каком порядке у устройства запрашиваются всякие дескрипторы-хуипторы. Или если полезут в дебри и начнут спрашивать, в каких версиях USB какие должны быть интервалы между микрофреймами и т.д.
Я представляю, как всё это работает, но вот без гугления подробно ничего не отвечу.
Под windows пишешь драйверы? Винде скоро капец, в России ее перестанут продавать и все компании перейдут на astra linux.
Нет, под специализированную встраиваемую ОС.
>Про RS-232 помню про TX, RX, GND, CTS, RTS. А вот названия и подключение остальных модемных сигналов не вспомню без гугла.
Ну а я даже не ебу что это. Я просто знаю что жто какой-то устаревшей COM порт, типо того. Если что-то общее можешь рассказать то не обоссут наверное. Меня же конкретные вещи не спрашивали. Меня просто спросили, что я знаю про физический уровень. Я хз что сказать. Во всех книгах где я читал, говорили: "да похуй чё там на физическом уровне, нас интересует TCP"
Так что нет. Не валят наверное. Но у меня опыта работы нет.
Вечная какая-то нищета:
На работу не берут потому что ничего не знаешь -> знания получить сложно потому что на практике нет никаких задач которые можно было бы решить с сетью на физическом уровне.
В итоге я, как всегда, никому нахуй не усрался. Посос.
>специальность АСУ ТП
Ну понятно. Я закончил баку ИВТ. Вуз из мидтира спб. В принципе у нас всё было, от ассембли до каких-то примитивных нейроночек даже, типо мниста. Ну и само-собой плисины, микроконтроллеры, сети и вот это всё.
Хорошее направление выбрал. Я просто когда поступал вообще особо ни о чем не думал, и на первом курсе и сам компьютером пользоваться не умел (каталоги создавать умел, и чертить в Автокаде умел, что вприципе уже знания превышающие 90% инжинеров. У нас по крайней мере в группе никто не умел чертить в автокад и все как дети из северной кореи - нелепо пытались водить мышкой по экрану). В компьютеры интересно стало выкатываться лишь на последних курсах.
Да и работы нихрена в АСУ-ТП нет. Полторы вакансии. Поэтому решил откликаться вприципе по спектру чего-то околоинжинерного: электрика, электронщина, робототехника, автоматизация, embedded разработка.
Жрать охота. И ботинки летние хочется - ноги уже в зимних гниют. А денег нет нихрена. Подумал что в инжинерке и embedded хоть какие-то бафы будут, что работку за 70-100к можно найти. Не, нихуя. Недостаточно.
>Я закончил баку ИВТ. Вуз из мидтира спб. В принципе у нас всё было, от ассембли до каких-то примитивных нейроночек даже, типо мниста. Ну и само-собой плисины, микроконтроллеры, сети и вот это всё.
Да хуйня это все. В универе дают знания обо всем, но по верхам. На работе нужна узкая специализация, но знать ее надо глубоко. Как писал Крис Касперски, просиживание штанов в учебных заведениях разной степени тяжести еще никого не сделало программистом, только опыт, сын ошибок трудных, да общение с коллегами делают из человека программиста.
И что ты сказать этим хотел? Все так и происходит: в вузе дают базу, потом ты идёшь батрачить и погружаешься в предметную область.
Зачем ты свои цитатки для коупящих вкатунов вставил?
Странно, что учился АСУ ТП и ничего не знаешь про RS-232/422/485, через них как раз работает протокол MODBUS (либо через Ethernet).
И ещё ты должен был изучать EtherCAT и, соответственно, более-менее разбираться на низком уровне в Ethernet.
P.S. инженер а не инжинер.
Мне на собеседовании тоже так же сказали. Я уж не стал говорить что нас в университете этому не учили. Но я хз, а на каком курсе должны были обучать? У нас была только автоматика. Там жирный ленивый еврей что-то про scada затирал. Были системы уравнения электроприводов. Был сам электропривод. Была электронника, но там нас учил дед-маразматик, из электронники только карты карно и решение логических уравнений запомнил.
Чтобы что-то связанное с сетями - такого вообще не было. Только в дипломной работе, я типо соединил ПЛК с промышленным компьютером. Я спросил у руководителя, мол, а как это работать должно, что он по Ethernet вообще может передать, под какими протоколами это вообще должно работать, на что мне сказали: "хорошие вопросы. Но вы главное покажите схему конечного автомата мура". Вообще я хуй знает что происходит. Меня в университете считали умным, просто потому что все мои одногруппники не знали нихуя от слова совсем (за исключением пару тройку инцелов), а на практике при трудоустройстве получается что и мои знания ничтожны. Да что за дьявол!! Почему чтобы купить еду, мне нужно быть сверхчеловеком по Ницше нахуй. В какой момент еда стала элементом роскоши!!?!!? Кризис что ли. И ведь возможности жить с мамкой уже нет.

>А что вы знаете про RS-232
А я ебу что ли, я ведь не Пушкин.
>Вот вы умянули vlan, что вы про это знаете
А я чо бох я ебу что ли

Сегодня знакомый прислал пикрил.
> и на первом курсе и сам компьютером пользоваться не умел
Ты в 90-е что-ли учился, когда компьютеры были мало у кого? Или сейчас школота со своими мобилками уже и компьютером не умеет пользоваться?
Да а смысла нету, в чем смысл пиздеть в it, что бы тебя пригласили на собес
А тут и так приглашают без пиздежа
Я вот вчера откликнулся на вакансию, где год опыта работы нужен, там около 10-20 откликов, мне позвонили я объяснился, что вот в андроиде не могу найти работу решил в эту область вкатиться мне сказали хорошо, завтра позвонит тим лид
Таких пикрилов гуляет по интернету тонна, они реальную ситуацию не отражают
+ ко всему те кто пиздят, они надеються, что они типо на удаленке будут и их типо не спалят, что они себе очко разорвут, а тут нет удаленки, в любом случае в офис будешь ходить, что через год что через 10 лет
Да. Прямо в вакансии написано какие микроконтроллеры прогать нужно.
>>27229
>Или сейчас школота со своими мобилками уже и компьютером не умеет пользоваться?
Вот это. Сейчас практически у всех смартфоны, и существует действительно большая прослойка людей которые банально не понимают как мышкой двигать. Правда, таких людей в областях близких с программированием совсем не встретишь: они обычно в школе не могли информатику осилить поэтому избегают программирования как огня. А на инжинерном факультете вполне себе.
Ну, кстати, справедливости ради больше половины из них к последнему курсу неизбежно научились чертить и работать в word. Остальные кто не наусился - просто все курсачи покупали и поэтому до последнего тупили.

Крутиться начинает на 45 дьюти и уже почти на максимуме - 14мА, а на 55% уже на максимуме - 16мА. Закажу свитч полегче типа IRLML2402, может дело в Vgs th, но я не уверен в схеме как таковой.
>react, electron, ещё сотню всяких фреймворков
Ебало человеков, которые тратят на это свою драгоценную жизнь.
>>26984
>Я представляю, как всё это работает
Мне кажется, это только и нужно, иметь понимание.
>>27022
RS-232 - это же UART, а UART - це база, там несложно, просто разберись в жизнихозяйстве потом пригодится.
А зачем у тебя на собесе спрашивают вот эти TCP/IP, я бы понял, если бы спросили про ethernet, нахуй им во встройке тисипи ой пи? Они сетевое оборудование делают?

>Они сетевое оборудование делают?
Да.
>RS-232 - это же UART, а UART - це база, там несложно, просто разберись в жизнихозяйстве потом пригодится.
Я сразу и погуглил после собеседования. Мб повезет кто нибудь ещё пригласит.
Пиздец, пришла платёжка за комуналку, на карточке всего 2к осталось. Проклятье. Я снова в говне.
>Я слышал что dma это какая-то древняя фигня из 2000 - 2010.
Только сейчас попалось на глаза твоё сообщение.
Как это DMA - устаревшая фигня?! В современных устройствах только оно и используется.
Без DMA процессор вручную пересылает байты устройству. А с DMA устройство само пишет/читает в ОЗУ минуя процессор. Потом говорит процессору (например, прерыванием), что транзакция DMA завершена.
Короче давай гугли, что такое BUS MASTER в PCI, виртуальные и физические адреса и gather/scatter DMA для работы с ними. Если что, BUS MASTER в PCI используется во всех устройствах, а не только в IDE, как написано в древних статьях.
Ещё погугли про когерентность кэша процессора. Это когда устройство записало по DMA данные в ОЗУ, но процессор ничего об этом не знает и использует старые данных из своего кэша. Или наоборот, процессор может не скинуть данные кэша в ОЗУ и устройство по DMA прочитает старые данные. В x86 кэш когерентный и такой проблемы нет(правда как там с многоядерностью не знаю), в других архитектурах может быть по разному.
>В современных устройствах только оно и используется.
>Без DMA процессор вручную пересылает байты устройству.
Нет, я просто что то слышал, что чтобы в современных компьютерных используется какой-то более совершенный механизм, типо как DMA но новее. Но забей, я не разбираюсь. Я вообще думал что rs-232 - устаревшей ненужный способ передачи данных, оказалось для embedded это актуальная технология. Собеседование провалил, теперь я нищий ведабомж, не надо меня слушать.
>Ещё погугли про когерентность кэша процессора. Это когда устройство записало по DMA данные в ОЗУ, но процессор ничего об этом не знает и использует старые данных из своего кэша.
Забавно. Вообще что почитать чтобы с картинками было понятно что где находится. Танненбаума мб? А то у меня очень смутное понисание работы компьютера. Конечно, лучшие знания приходят на практике, но пока чё то не берут, хоть почитаю.
Советую книгу Гук М.Ю. Шины PCI, USB и FireWire. Энциклопедия.
Про FireWire и AGP можешь не читать, а PCI, PCI Express и USB пригодятся.
Правда минус в том, что ты не знаешь, что именно важно и можешь застрять в деталях(которые в книге не всегда понятно описаны), при этом пропустить что-то важное.
Например, для PCI важно знать про PCI Configuration space и что взаимодействие с устройствами происходит через BAR'ы, которые заданы в этом PCI Configuration space. Ещё важно знать про адресацию устройств на PCI (шина, устройство, функция).
С USB пока не влезай в детали реализации контроллеров (UHCI, EHCI и т.д.), а сосредоточься на взаимодействие с устройствами.
Ещё про USB советую книгу Агуров П. В. Практика программирования USB
Хотя книги и древние, но до сих пор актуальные. Кстати, в этом преимущество embedded, тебе не нужно каждый год учить новые фреймворки, знания устаревают медленно.
Ещё возьми Wireshark и перехватывай им сетевые пакеты, чтобы понять, как устроена сеть.
Потом им же с помощью USBPcap перехватывай взаимодействие с USB. Посмотри, как общаются по USB клавиатура, мышка, флешка. Загугли команды SCSI, которые ты увидишь при общении с флешкой.
>Я вообще думал что rs-232 - устаревшей ненужный способ передачи данных, оказалось для embedded это актуальная технология.
Можешь загуглить протокол какого-нибудь электросчётчика, например, вот https://www.incotexcom.ru/support/docs/protocol
Используется RS-485 или CAN.

>написание софта под кернел спейс
Это не особо популярная тема нынче. Есть всякие безопасники и около-драйверщики, которым этим занимаются, но нахуя тебе оно нужно?
300-350к это большие деньги в системщине, где-то настраивайся на то, что лет 5 минимум будешь выходить на эти деньги с самого нуля. Если хочется норм денег и условий труда, то лучше учить жабу, голанк, котлин, питон и бекенд в целом - паттерны построения микросервисов, очереди сообщений, базы данных, логирование, трейсы, телеметрия итд.
>меркурий
>CAN
Это отдельное ололо, потому что у меркурия не кан, а юарт через кановский трансивер. Эти жопоруки, видимо, думали, что этого достаточно.
доводилось работать с этим говном
Дела так себе. Никто пока на второй собес не пригласил. Читаю пока мануал по RHCSA по-приколу, охота полноценно все тонкости линухов изучить. Написали в пятницу с другой компании, что рассмотрят моё резюме и ответят, но пока ещё на собес не пригласили. Надо будет в конце недели им напомнить, а то чё. Также понаписывал на вакансии АСУ-ТП на завод по производстсву пива, на инжинера-электронщика, на завод по производству сливок. Нигде пока даже не ответили.
>Что вообще спрашивали на собесах?
На прошлом уже говорил: Vlan спросили. Я начал про ip рассказывать - меня сразу оборвали, сказав что vlan на канальном уровне работает. Подобосрался немного. Мне почему-то казалось vlan - это какой-то высокоуровневый оверлей.
Спросили по RS-232, я ничего не сказал, кроме того что это ком-порт, и что я в дипломной работе плк с пк им связывал. Они попросили уточнить, знаю ли я в чём этот протокол заключается, ну я не знаю конечно же. По С вообще ничего не спросили. Спросили только знаю ли я С, я ответил что знаю, что вот пет-проекты есть. Короче не приняли.
денег нет, дела кал
Я конечно сварщик ненастоящий и нифига не помню, но разве у rs-232 там есть какой то "протокол"? Мне казалось там просто выставляются уровни напряжения всырую с какой то скоростью, вот и все. Ну и еще какие то доп. биты типа стартового/стопового/контроля четности, которые могут быть или не быть как настроишь.
Мне казалось в этом и суть, что он простой как две копейки и там буквально ничего нет. В отличие от всяких там usb
Может и простой. Во всех книгах которые я читал, физический уровень OSI просто отметали, говорили "ну там електричество какое-то нам не важно". Поэтому я и не интересовался никогда.
Минус эмбеддед что тут удалёнки гораздо меньше, часто нужно знать ТОЭ и электронику, нужно уметь аблтать с прототипами продуктов и тестовыми стендами. Зарплаты меньше чем в backend'е
Зато конкуренции меньше.
> В эмбеддед нужно постепенно вкатываться: ибо там не только С/С++, там еще можно прикрутить разработку схем электрических принципальных, рисование топологии печатных плат по схеме, умение работать с измерительный аппаратурой по типу мультиметра, осциллографа, вольтметра и тд
В большинстве нормальных компаний программированием, разработкой схем и топологией в электронике занимаются разные люди. Эмбедед программисты ТОЛЬКО пишут код, иногда могут поработать с тестовым стендом. Если в твоей компании что-то иначе, и человека-оркестра запрягают делать всё за пятерых, то это говноконтора с сомнительным качеством конечного продукта.
>Инженегры ведь тоже макаки по большей части: сидят дрочат свои болванки в солиде, для которого скрипты писать можно, т.е. в теории программист с этим справится лучше, автоматизировав всё. Заменят ли прогеры инженеров?
Большинство болванок в солиде вообще техники или слесари делают, а инженеры обычно проектируют оборудование в рамках полного цикла проекта, т.е дрочить болванку многого 24/7 в автокаде тебе никто не даст
>часто нужно знать ТОЭ и электронику
Так для меня это плюс. Я на автоматизацию закончил и С хорошо изучил. Чисто идеальна вакансия. Но пока что не берут :(
Хз, может если отлично знаешь электронику и ТОЭ, то тогда поищешь вакансии инженера электронщика? Там могут и по Си задачи дать. Конкуренции меньше
Cтранно, обычно туда должны то взять, особенно если на невысокую зп на вакансию стажера
>если на невысокую зп
А вот поэтому и не берут. Я и так вьебываю в офисе, а мне на еду не хватает. Это хуже чем рабство - у рабов на еду хватало. Поэтому я ни за что блядь не пойду на "невысокую зп". Рассматриваю только вакансии от 100к.
увы, но без релевантного опыта и стажа в индустрии хуй тебе кто от 100к просто так будет платить. Только если у тебя знания прям норм для стажера
Если в мухосранске, то может быть, из-за отсутствия удалёнки. Грубо говоря, когда есть один завод на весь город, где платят копейки и больше некуда идти, а полную удалёнку в embedded найти проблематично.
А если речь про ДС и ДС2, то потолок раза в 3 выше, т.к. сотыгу можно получать простым эникеем.
>>23054
Дебилы, не идите в эмбеддед, я вам как эмбеддер с опытом +5 лет говорю. Я выкатился из него 3 года назад. Окончательно и пути назад нет.
Нету эмбеддеда в РФ. Чта там у нас по эмбедду? 3 госухи дроны делают и 3 финтеха делают роботов и анальные шары с RGB подсветкой?
НЕТУ ТУТ ЭМБЕДДЕД. Если вам интересно что это хотя бы пошарьте что значит эмбеддед в Европе, это автоматика для авто, роботизированные механизмы для конвейера, высокоточные инструменты для обслуживания сложных механизмов, томографы, высокоскоростные микросхемы для электронных торгов, протоколы. Там задачи дают что вы просто усретесь ещё втором этапе. Литкод будете дрочить говорите? Ха!
И теперь скажите, на чем вы будете учиться находясь в РФ, чтобы поднять планку и поехать туда? Делать всех заебавший Яндекс автомобиль с автопилотом? Который делают уже, не знаю, ещё до ковида делали.
А события кончатся по щелчку пальцев, закончатся попилы, и вы пойдете в НИИ.
Да чё, будут дрочить вообще всё, разводкой заниматься сами, схемы делать будут сами, это же рэфэ.
Ога, за 200К. Может доверят ещё ручные тесты делать и кнопки все нажимать по пятницам, перед релизом. Ведь делать автоматизированные тестовые дораха и "не то", никто и ничто лучше человека на голом железе не проверит.
двачую, все так. Но у эмбеддеда во всем мире зп ниже, чем в обычном software engineering, это каксиома
А куда выкатился? Сложно ли было найти работу в новой области?
Мне кажется, эмбеддеру сложно перейти в другую область из-за специфических знаний.
Эмбеддер привык говнокодить на C в процедурном стиле в вкраплениями ООП в виде структур с указателями на функции. А на той же Java наоборот доведённое до абсурда ООП, на каждый чих нужны всякие фабрики.
И предметные области области сильно разные. Эмбеддер умеет дрочить регистры, знает, сколько микросекунд занимает у него обработчик прерывания и т.д. Только эти знания бесполезны в прикладном ПО. В прикладном ПО важно знать фреймворки, предметную область.
Грубо говоря, эмбеддерство - это говнокод в процедурном стиле на C, изобретение велосипедов, экономия байт, фокус на железе, а не прикладных задачах.
Прикладное ПО - это ООП, использование готовых фреймворков в ущерб размера и производительности, абстрагирование от железа в пользу прикладных задач.
>Грубо говоря, эмбеддерство - это говнокод в процедурном стиле на C, изобретение велосипедов, экономия байт, фокус на железе, а не прикладных задачах.
Ну хуй знает, смотря что за эмбед у тебя. Если ты делаешь какой-нибудь авиатренажёр, то дохуя ты там на сях напишешь? В общем-то любая железка сложнее дёргалки релешек уже подразумевает высокоуровневую разработку. Зачастую там ещё и сеть будет с какой-нибудь веб-мордой. Т.е. для ухода в бэкенд знания вполне себе релевантны будут.
>Да я забыл, что есть Россия и отдельно ДС и ДС2
В прикладном программировании такой разницы нет. Ну может поначалу придётся работать за еду на местной галере, а потом ты найдёшь удалёнку за норм зепку.
А эмбеддером придётся всю жизнь работать за еду на местном заводе, т.к. удалёнки нет, а других предприятий либо нет, либо там платят столько же.
А если в ДС или ДС2 платить сотыгу, то там все нормальные разбегутся и останутся только дебилы, студенты и пенсионеры.
>в процедурном стиле на C
Откуда у тебя предубеждение, что процедурное программирование это плохо?
>говнокод
Лол, может наоборот пиздатый?
Ты чёто дохуя говорливый, сырок, для обычной вебдрисне макаки.
О том и речь, что есть РФ, а есть ДС и ДС2, и это разные страны.
Я сначала выкатился в виртуализацию и симуляцию, потом в датасторейдж.
Виртуализация и симуляция - самое близкое, т.к. тут также:
>Эмбеддер умеет дрочить регистры, знает, сколько микросекунд занимает у него обработчик прерывания и т.д.
Все то же самое, заодно Линукс подучил. Писал под QEMU и Simics.
Последний так вообще пиздец, свой язык и свой фреймворк.
Ещё варианты выката: DPDK, XDP/BPF. Сети и прочая шляпа.
В датастор я выкатился, т.к. тут опять же разработка протокола обмена данными между нодами и бекенд.
В общем нужно искать близкое, чтобы не было импакта по скиллам.
Процедурщины тут предостаточно, далеко от Си не уходил.
>Сложно ли было найти работу в новой области?
И да, не совсем сложно, просто сказал себе что нахуй суходрочка на STM32 хочу жмупинус. Ну наверное за полгода нашел, почитай там про мьютексы, чтоль. Если опыт есть во фриртос так и говори, что многопоточные понимаю но на уровне РТОС. Канает, абсолютно.
>>33863
Пиздец гои, бомже-гои. То есть чтобы хватило воды на месяц, необходимо быть ебаным бородатым специалистом. В это же время у девопсов потолок зарплат до 260к. Какие же гои пиздец. 100к это минимальная зп на одного человека. Этого хватит на еду, воду, квартиру, коммуналку и пару футбол и носков + возможно отложить немного получится.
>>33863
Пиздец гои, бомже-гои. То есть чтобы хватило воды на месяц, необходимо быть ебаным бородатым специалистом. В это же время у девопсов потолок зарплат до 260к. Какие же гои пиздец. 100к это минимальная зп на одного человека. Этого хватит на еду, воду, квартиру, коммуналку и пару футбол и носков + возможно отложить немного получится.
>В датастор я выкатился
У нас есть контроллер NAND флэша, я писал для него драйвер и пытался выжать максимум скорости, распараллеливал работу чипов. Даже сделал примитивную файловую систему, т.к. ФС типа YAFFS слишком медленные, надо было, чтобы данные по DMA сразу уходили в контроллер без лишних копирований памяти.
Этот опыт поможет в датасторе?
>Ещё варианты выката: DPDK, XDP/BPF. Сети и прочая шляпа.
У нас есть драйверы своих сетевых карт, соответственно я представляю, как работать с ними на уровне регистров. Но вот что происходит за пределами сетевой карты, меня уже мало волнует. Конечно, я в курсе основных протоколов типа FTP, NFS и т.д., но в целом знания сетей хуже продвинутого сисадмина.
>>34009
Я пишу на C драйвера под ОС наподобие VxWorks. Многопоточка там есть со всякими мьютексами, семафорами, условными переменными.
>Нету эмбеддеда в РФ
Может мы сьебать из РФ хотим. На жападе как раз вроде всякие гречневые прогеры больше востребованы чем фронтоиндусы.
>Если в мухосранске, то может быть, из-за отсутствия удалёнки
Не, ну в мухостранске может и норм за 45к работать и 5 за квартиру отдавать. Но я к сожалению не а мухосранске, я в ебучем центре.
Ну кстати, рассматриваю переезды и в мухосрански. Мне плевать где жить по большей части. Доставочками не пользуюсь, из инфраструктуры нужен только пивной ларёк, и зал для ММА.
Думаю да, потому что ближайший пример у нас - стояла задача через RDMA ускорить передачу данных между серверами, нужно было во всем этом разобраться и заимплементить.
И я тоже особо сильно не нужен вникать что там за данные. Нужно знать особенности ОС и понимать драйверы.
Много низкоуровневого на уровне ядра. Часто задачи попадаются покопаться в кастомном ядре, может ли оно поддерживать те или иные сисколы, если нет, то пропатчить и применить их в коде, заменить и оптимизировать вызовы.
Много других задач по оптимизации, например пропускную способность починить, если какой-то модуль программы замедляет код, или драйвер и т.д. без знаний низкого уровня будет тяжело, поэтому эмбеддед тут как раз.
Нужно уметь пользоваться перфметрами, профилироввщиками, gdb, valgrind, Wireshark или уметь в таком разобраться.
>>34139
Так я же вам и говорю, ребята, что опыта тут не наберёшься на Европу, поэтому надо сразу работать в сфере где прокачаешь кругозор. Или быстро с эмбеддед валить, пока не утонул в SPI и I2C.
И ещё если подсесть на госуху каким нибудь образом связанную с военкой могут быть проблемы. У меня есть одна компания в резюме, которая называется так же как одно российское оружие. Так меня шведы на собесе начали за это спрашивать, мол это связано с оружием?
К слову, эмбеддеда за бугром очень много.
>А эмбеддером придётся всю жизнь работать за еду на местном заводе
Ну на эмбеддед есть удаленка, причем не на завод, а на норм контору, особенно когда проект более прикладной, например нужно пилить qt софт для x86+linux, но их так мало в РФ, что хуй ты найдешь такое.
> 100к это минимальная зп на одного человека. Этого хватит на еду, воду, квартиру, коммуналку и пару футбол и носков + возможно отложить немного получится.
Может в москве - да, но я спокойной с тянкой на 60к в месяц выживал. Правда у меня двухкомнатная хата стоила 12к в месяц
>Правда у меня двухкомнатная хата стоила 12к в месяц
Эво как?? Я однокомнатную студию меньше чем за 25к не нашёл.
Может для 2011 года 60к приличная зарплата, тогда и цены были раза в 4 ниже. Но в 2025 меньше чем за 20к хуй что снимишь. Только если загородом где-то, но там ещё нужно работу для начала найти.
Вообще коллеги-днари с тянками аренду делят пополам. Ну и вправду, если 25 на 2 поделить, то впринципе на 45 можно выжить. Но бля, я во-первых двачер, для меня найти тню это настолько же сложно как и найти новую высокооплачиваемую работу, а во-вторых я ещё и ненавижу жить с кем-то, ща бы у меня кто-то по квартире ходил тут пердел, мешался.
>>34481
>Так я же вам и говорю, ребята, что опыта тут не наберёшься
Ну хз. Кого охотнее возьмёт на работу забугорный барин - ивана пидораса без опыта работы, или человека у которого хотя бы 1-3 года а резюме есть галочка "ембеддед разработчик". Остальное впринципе и допиздеть можно.
>Эво как
У меня в провинциальном райцентре так стоило. Правда не в центре, а ближе к окраинам, но так даже лучше было, так как до работы ближе.
Правда я ща не в РФ живу, я за такие деньги года два назад квартиру снимал.
Снимал я конечно же в России по таким ценам хату.
>найти тню
Ничего не пропагандирую, но именно по этой причине инцелы уходят в феймбойство и гейство. Куна найти проще, заебов меньше, а дырка есть дырка. Тоже вместе хаты снимают.
Приглашают вот на вакансию ведущего инженера-схемотехника (программиста) (конструктора) (архитектора) (экономиста) (баяниста). В общем человека оркестра.
Обязанности конечно пиздец сформированные, есть например красиво сформулированный пункт «доведение до серийной продукции».
Мне много чего здесь нравится: и протоколы связи, и написание ПО, и опыт от трёх лет для ведущего специалиста.
Судя по компании, там скорее 60к

1600x720, 0:31
Это вряд ли. На красивых фембоев спрос даже больше чем на тней, у них и изимод больше чем у тней.
Перетрахал кучу фембоев, многие сами на хуй просяться, спрос на активного ебыря большой. Но я в провинции живу, может в Москве они реально зажрались.

>Перетрахал кучу фембоев, многие сами на хуй просяться, спрос на активного ебыря большой. Но я в провинции живу, может в Москве они реально зажрались.
Мимо, я инцел, с девушками у меня всегда было не оч. Из девушек меня лайкали только совсем прыщавые всратыши 120кг. Может ты не там фембоев искал просто.
Фембои - разрабы на расте?

1080x1080, 0:17
ой пиздец заебался ездить нахуй, что то хуйня что это хуйня, пиздец пизда ебанная на айчаре не смогла встречу перенести в конторе ебанной "известной в узких кругах", ещё я в ахуее что блять мне скинули тестовое задание какое то ебанное, я его запрокрастинировал, уже 3 недели прошло у них до сих пор 20 откликов на вакансию
>>20989
это не я если что
>>22770
>>22769
бля ну и хуйня
>>23226
ну вот не смог нахуй, пиздец, как я могу это решить если я это решал ахуелиард лет назад, я писал что прог инж закончил
блять все перепуталось, короче вы меня узнали вы все поняли

1080x1080, 0:05
Пиздец после советов нахуй, перестал эту шляпу читать, чисто клуб раковых больных, так переодически заходил чекать че как тут
как думаете хабр опубликует это ?
https://habr.com/ru/articles/676076/

https://www.amazon.com/Microelectronic-Circuits-Electrical-Computer-Engineering/dp/0199339139
позабавило количество страниц
не-мимо рандом
>работать в сфере где прокачаешь кругозор
что за сфера?
>К слову, эмбеддеда за бугром очень много
где искать? зашел на линкедин и там ничего нет
ОП, эмбедед везде разный. Где-то 50% электроники и 50% программирования на Си, где-то 90% программирования на С++ и 10% на Си. Нужно понимать, что в первом случае от тебя будут требовать знания по разработке электронике и байтоебства на чистом Си, а во втором - как писать йобапрограммы на плюсах, не давая дотронуться до паяльника вообще.
Эмбеддед это сложно, да, очень много разных непересекающихся друг с другом направлений.
Хорошая книжка?

Нашёл ответ на вопрос из коллоквиума
>почему crc находится в конце кадра
Оказалось, ответ довольно очевидный. Вот когда я говнокодил програмный рендер компьютерной графики, меня бесил формат wavefront obj - триде модели. Дело в том что там формат не имеет заголовочника, и нигде не написано, а сколько всего в модели вообще полигонов и точек. Из-за этого, для парсинга два пути: елозить по потоку, либо же выделить дофига динамической памяти, и многоразово проходить по файлу: вначале подсчитать количество точке, потом собрать точки, потом собрать полигоны.
А вот в формате .tga, можно всё это сделать одним проходом, сразу выделив память, ведь в заголовочнике написан размер изображения, а также глубина цвета. Вот с эфир-пакетом такая же ситуация, CRC сумма может быть вычислена прямо на ходу, поэтому удобнее поставить CRC вконце, чтобы можно было одним потоком всё проанализировать и сравнить. Всегда хорошо когда формат предпологает удобный парсинг.
Далее, что я ещё выпытал про физический/канальный уровень. Эта тема была интересна, потому что про канальный уровень я по сути ничего и не знал. Я всегда сразу же переходил к ip/tcp к чему-то по чему можно физически взять и отправить сообщение. Но можем ли мы отправить сообщение по канальному уровню? Я считаю что можем!!!
Начнём с пакетной коммутации. В отличии от проводных телефонов, где нужно вначале назвать номер адресата, и затем произвести соединение, в компьютере адресат указан уже в пакете. То есть, если бы проводной телефон работал в режиме пакетной коммутации, то мы бы могли сразу, на набирая номера, заорать в телефон "ларис ивановну хочу" и по протоколу "мимино" нас бы моментально связали с нужным человеком. В компьютере происходит аналогичная ситуация - как только две сетевые карты соединяются проводом, они настраиваются на определённую частоту, и ожидают получения информации. Информация передаётся пакетами канального уровня.
Канальный уровень в современное время - наполовину выполнен аппаратно. Внутри компьютера есть сетевая карта, и она также как и внешние устройства типо видеокарты, может обмениваться данными с памятью, при помощи прерываний, или dma. Так вот, на физическом уровне нет особо никаких протоколов, физический уровень он про устройство самой сетевухи - по витой паре поступает напряжение, и уж как-то оно должно быть преобразовано в цифровую информацию дело схемотехники. Суть в том что все эти сигналы поступают на котроллер сетевой карты и хранятся в её памяти. Сама сетевая карта уже начинает использовать канальный протокол Ethernet на этом уровне, пакет полученный в память контроллера проверяется на соответствие MAC-адреса. Если адреса совпадают - пакет передаётся в память компьютера. Если не совпадают - утилизируются. Пакет состоит из мак-адерса получателя, отправителя, длины и полезной нагрузки. А также вконце стоит CRC для проверки контрольной суммы.
Собственно, представим ситуацию, мы связали два комьютера витой парой. Вопрос, как же нам пообщаться если никаких протоколов помимо канальных у нас нет? Собственно, ответ прос, нужно отправит пакет, куда в полезную нагрузку запихнуть слово "привет". А на другом компьютере прочитать память ядра через /dev/kmem. Найти в этой памяти что-то на подобии видеобуфера, только для сетевой карты, и тогда оттуда можно вытащить наше сообщение. Всё! можно общаться через Ethernet!.
На канальном уровне отсутствует иерархия, все устройства находятся в одной плоской сети, а маршрутизация осуществляется чисто техническими приборами типо концентраторов и свичей. Причём, концентратор просто отправляет пакеты всем участникам сети. Если пакет адес получателя не совпадает - сетевая карта отбрасывает пакет.
Свичи работают по-хитрее. Свич ориентирован на отправителя: если кто-то оправил пакет на свич, то свич запоминает физический порт и помечает этого отпавителя как находящегося на этом порту. И если теперь этому отправителю кто-то отправит ответ - то свич не будет флудить это сообщение всем, а отправит по сохранённому адресу. Таким образом уже можно реализовывать цепочки соединений, экономя пропускную способность канала. Однако, если представить ситуацию, когда один компьютер отправляет данные - а остальные ничего не отвечают, то флуд всё равно продолжится, потмоу что на свичах нет никаких пакетов для "ответа" нет никаких сообщений о том получил ли адресант пакет или нет, таблицы заполняются чисто на основании отправителей, считается что вот если отправитель на этот порт точно отправил - то его можно записать как владельца этого порта для дальнейшей коммуникации. А елсли какой-то молчун в сети ничего не отправлял в ответ, то его адрес так и не запомнят. Свичи и коммутаторы - чисто канальное оборудование, в IP сети их нет. Хотя сейчас оказывается уже есть "умные" свичи, которые аппаратно реализуют IP протокол, но это проигнорируем. Как уже говорил ранее, на канальном уровне нет иерархии. Мы в любом случае вынуждены слать пакеты всем подряд, в поисках адресанта, а маршрутизацию реализует чисто "железо". Сетевой уровень более гибкий и позволяет реализовать иерархию. Сетевой уровень реализует роутер, и уже програмно, потому что роутер представляет собой уже компьютер с операционной сетью. Протокол IP вводит понятия сеть и подсеть (я в школьные годы должго не понимал "а где тут компьютеры" но потом выяснил, что "подсетью" может быть и конечный компьютер который дальше никуда не ведёт. Это эдакое Unixовское "всё есть файл" от мира сетей). Кадр IP встроен в эфир-кадр.
Вообще, модель OSI довольно некорректная. В сторонке от IP и Ehernet стоит протокол ARP, который сам по себе вроде бы работает на эфир-пакетах, то есть в качестве полезной нагрузки эфир пакета указан арп. Получается, что арп - протокол сетевого уровня. Но нет, его причисляют именно к канальному, потому что сетей то он никаких не образует и ориентируется на мак-адреса. Кратко, арп - адрес резолюшин протокол, то есть потокол для того чтобы получить MAC адрес по IP адресу. Зачем это вообще нужно? Тут получаются такие "горки", что ли. IP пакет лежит внутри эфир-пакета. То есть для отправки по IP нам нужно знать а кому этот IP принадлежит. Если у нас уже есть таблица соответствий IP и MAC то можно взять информацию оттуда. Если же таблицы такой нет, то нужно узнать кому принадлежит этот IP адрес при помощи протокола ARP. Всем участникам сети отправляется отправляется опрос, и если их адрес соответствет - то они отвечают положительно. Тут есть интересная вещь как ARP-spoofing, существуют программы-спуферы, которые подключаются к сетевому буферу, и позволяют подменить ARP-запрос на положительный. То есть отправляет, значит роутер всем ARP запрос, а ты ему положительно отвечаешь, и тем самым, трафик который предназначался другому компьютеру, теперь направляется тебе. Осталось направить со своего компьютера пакеты на оригинальный компьютер, и получается атака man-in-middle.

Нашёл ответ на вопрос из коллоквиума
>почему crc находится в конце кадра
Оказалось, ответ довольно очевидный. Вот когда я говнокодил програмный рендер компьютерной графики, меня бесил формат wavefront obj - триде модели. Дело в том что там формат не имеет заголовочника, и нигде не написано, а сколько всего в модели вообще полигонов и точек. Из-за этого, для парсинга два пути: елозить по потоку, либо же выделить дофига динамической памяти, и многоразово проходить по файлу: вначале подсчитать количество точке, потом собрать точки, потом собрать полигоны.
А вот в формате .tga, можно всё это сделать одним проходом, сразу выделив память, ведь в заголовочнике написан размер изображения, а также глубина цвета. Вот с эфир-пакетом такая же ситуация, CRC сумма может быть вычислена прямо на ходу, поэтому удобнее поставить CRC вконце, чтобы можно было одним потоком всё проанализировать и сравнить. Всегда хорошо когда формат предпологает удобный парсинг.
Далее, что я ещё выпытал про физический/канальный уровень. Эта тема была интересна, потому что про канальный уровень я по сути ничего и не знал. Я всегда сразу же переходил к ip/tcp к чему-то по чему можно физически взять и отправить сообщение. Но можем ли мы отправить сообщение по канальному уровню? Я считаю что можем!!!
Начнём с пакетной коммутации. В отличии от проводных телефонов, где нужно вначале назвать номер адресата, и затем произвести соединение, в компьютере адресат указан уже в пакете. То есть, если бы проводной телефон работал в режиме пакетной коммутации, то мы бы могли сразу, на набирая номера, заорать в телефон "ларис ивановну хочу" и по протоколу "мимино" нас бы моментально связали с нужным человеком. В компьютере происходит аналогичная ситуация - как только две сетевые карты соединяются проводом, они настраиваются на определённую частоту, и ожидают получения информации. Информация передаётся пакетами канального уровня.
Канальный уровень в современное время - наполовину выполнен аппаратно. Внутри компьютера есть сетевая карта, и она также как и внешние устройства типо видеокарты, может обмениваться данными с памятью, при помощи прерываний, или dma. Так вот, на физическом уровне нет особо никаких протоколов, физический уровень он про устройство самой сетевухи - по витой паре поступает напряжение, и уж как-то оно должно быть преобразовано в цифровую информацию дело схемотехники. Суть в том что все эти сигналы поступают на котроллер сетевой карты и хранятся в её памяти. Сама сетевая карта уже начинает использовать канальный протокол Ethernet на этом уровне, пакет полученный в память контроллера проверяется на соответствие MAC-адреса. Если адреса совпадают - пакет передаётся в память компьютера. Если не совпадают - утилизируются. Пакет состоит из мак-адерса получателя, отправителя, длины и полезной нагрузки. А также вконце стоит CRC для проверки контрольной суммы.
Собственно, представим ситуацию, мы связали два комьютера витой парой. Вопрос, как же нам пообщаться если никаких протоколов помимо канальных у нас нет? Собственно, ответ прос, нужно отправит пакет, куда в полезную нагрузку запихнуть слово "привет". А на другом компьютере прочитать память ядра через /dev/kmem. Найти в этой памяти что-то на подобии видеобуфера, только для сетевой карты, и тогда оттуда можно вытащить наше сообщение. Всё! можно общаться через Ethernet!.
На канальном уровне отсутствует иерархия, все устройства находятся в одной плоской сети, а маршрутизация осуществляется чисто техническими приборами типо концентраторов и свичей. Причём, концентратор просто отправляет пакеты всем участникам сети. Если пакет адес получателя не совпадает - сетевая карта отбрасывает пакет.
Свичи работают по-хитрее. Свич ориентирован на отправителя: если кто-то оправил пакет на свич, то свич запоминает физический порт и помечает этого отпавителя как находящегося на этом порту. И если теперь этому отправителю кто-то отправит ответ - то свич не будет флудить это сообщение всем, а отправит по сохранённому адресу. Таким образом уже можно реализовывать цепочки соединений, экономя пропускную способность канала. Однако, если представить ситуацию, когда один компьютер отправляет данные - а остальные ничего не отвечают, то флуд всё равно продолжится, потмоу что на свичах нет никаких пакетов для "ответа" нет никаких сообщений о том получил ли адресант пакет или нет, таблицы заполняются чисто на основании отправителей, считается что вот если отправитель на этот порт точно отправил - то его можно записать как владельца этого порта для дальнейшей коммуникации. А елсли какой-то молчун в сети ничего не отправлял в ответ, то его адрес так и не запомнят. Свичи и коммутаторы - чисто канальное оборудование, в IP сети их нет. Хотя сейчас оказывается уже есть "умные" свичи, которые аппаратно реализуют IP протокол, но это проигнорируем. Как уже говорил ранее, на канальном уровне нет иерархии. Мы в любом случае вынуждены слать пакеты всем подряд, в поисках адресанта, а маршрутизацию реализует чисто "железо". Сетевой уровень более гибкий и позволяет реализовать иерархию. Сетевой уровень реализует роутер, и уже програмно, потому что роутер представляет собой уже компьютер с операционной сетью. Протокол IP вводит понятия сеть и подсеть (я в школьные годы должго не понимал "а где тут компьютеры" но потом выяснил, что "подсетью" может быть и конечный компьютер который дальше никуда не ведёт. Это эдакое Unixовское "всё есть файл" от мира сетей). Кадр IP встроен в эфир-кадр.
Вообще, модель OSI довольно некорректная. В сторонке от IP и Ehernet стоит протокол ARP, который сам по себе вроде бы работает на эфир-пакетах, то есть в качестве полезной нагрузки эфир пакета указан арп. Получается, что арп - протокол сетевого уровня. Но нет, его причисляют именно к канальному, потому что сетей то он никаких не образует и ориентируется на мак-адреса. Кратко, арп - адрес резолюшин протокол, то есть потокол для того чтобы получить MAC адрес по IP адресу. Зачем это вообще нужно? Тут получаются такие "горки", что ли. IP пакет лежит внутри эфир-пакета. То есть для отправки по IP нам нужно знать а кому этот IP принадлежит. Если у нас уже есть таблица соответствий IP и MAC то можно взять информацию оттуда. Если же таблицы такой нет, то нужно узнать кому принадлежит этот IP адрес при помощи протокола ARP. Всем участникам сети отправляется отправляется опрос, и если их адрес соответствет - то они отвечают положительно. Тут есть интересная вещь как ARP-spoofing, существуют программы-спуферы, которые подключаются к сетевому буферу, и позволяют подменить ARP-запрос на положительный. То есть отправляет, значит роутер всем ARP запрос, а ты ему положительно отвечаешь, и тем самым, трафик который предназначался другому компьютеру, теперь направляется тебе. Осталось направить со своего компьютера пакеты на оригинальный компьютер, и получается атака man-in-middle.
Что же такое vlan, и почему я на собеседовании обосрался говоря что они работают под IP. Оказалось что Vlan, даже не отдельный протокол. Это всё тот же эфир-протокол, но только более новой версии, с возможностью разбивать на логические группы. Теперь в эфир-пакете, кроме мак адресов добавляется ещё и влан тэг, и при получении пакета, проверяется, принадлежит ли пакет этой группе.
Вообще, Ethernet не обязан быть реализован аппаратно. Это ведь протокол. Существует соединение RS-232 - это последовательная шина, т.е. устройство типо usb, которое имеет свой драйвер для передачи информации. собственно, ничего не мешает соединить компьютеры по RS-232, и создать программу, которая бы при помощи драйвера последовательной шины, отправляла бы Ethernet-пакеты, и получала бы их чисто на програмном уроввне.
это я >>38559, да. Пиздец целый день с чатогпт пиздел.
Что же такое vlan, и почему я на собеседовании обосрался говоря что они работают под IP. Оказалось что Vlan, даже не отдельный протокол. Это всё тот же эфир-протокол, но только более новой версии, с возможностью разбивать на логические группы. Теперь в эфир-пакете, кроме мак адресов добавляется ещё и влан тэг, и при получении пакета, проверяется, принадлежит ли пакет этой группе.
Вообще, Ethernet не обязан быть реализован аппаратно. Это ведь протокол. Существует соединение RS-232 - это последовательная шина, т.е. устройство типо usb, которое имеет свой драйвер для передачи информации. собственно, ничего не мешает соединить компьютеры по RS-232, и создать программу, которая бы при помощи драйвера последовательной шины, отправляла бы Ethernet-пакеты, и получала бы их чисто на програмном уроввне.
это я >>38559, да. Пиздец целый день с чатогпт пиздел.
Иди нахуй шлюшка ебаная, педик гомодрочевый.