Необходимая база для входа в Embedded?

Предыстория (в целом можно скипнуть, но буду признателен, если прочитаете): я являюсь студентом НИЯУ МИФИ института физико - технических интеллектуальных систем, закончил первый курс. Результатом первого курса была проектная практика "Танковый Биатлон", в ходе которого нам была поставлена задача спроектировать, запрограммировать, изготовить танк, удовлетворяющий ТЗ, а также сделать мобильное приложение для управления этим танком. Все делалось криво, косо, кучу раз переделывалось. Мне досталась роль программиста, потому что желания и знаний было больше, платформой была Ардуино (да, я прекрасно понимаю, что это зло, что весь низкий уровень там спрятан от "нежного" пользователя, но ВУЗ выделял именно Ардуино). Нам всем это невероятно сильно понравилось, результатом чего стала победа. Сейчас, когда я чуть подробнее узнал, что такое Embedded и что можно так классно сочетать IT c инженерией, вижу себя только там.

Суть вопроса: Какие знания нужны для того, чтобы устроиться на Джуна? ВУЗ дает мне очень хороший фундамент: сильный вышмат и общефиз, но т.к. я закончил лишь первый курс, ждать построения всего фундамента полностью мне придется 2 года, что очень долго, когда развиваться хочется прямо сейчас.
На данный момент у меня есть какая - то база в Си, но опыта в программировании МК нет совсем.

1. Учиться стоит исключительно на ARM, полностью забыв про существование AVR, или же стоит и на AVR что - то попробовать? Буду признателен, если скинете обучающие книги/материалы/etc, с которых можно начать.

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

3. Что вообще нужно знать из IT сферы, кроме умения писать код под МК? Посмотрев вакансии, увидел там Linux, Verilog и кучу кучу всего, что для меня кромешная тьма.

4. Понимаю, что основы электроники и электротехники - невероятно важная тема, поэтому буду премного благодарен за информацию, по каким книгам/курсам/ресурсам лучше её учить.
  • Вопрос задан
  • 796 просмотров
Пригласить эксперта
Ответы на вопрос 4
@Alexey_Volchanskiy
Работал в embedded с 1999 по 2010. В то время был хорошим электроником, разрабатывал схемы с МК, сам и проги писал. С достаточно, понимание С++ желательно, так как были варианты, когда с Майкрософт присылали исходники аудиокодеков на С++, хотя конечно возможности плюсов использовались по минимуму. Но надо было все это переложить на Си для дохлого встроенного проца. А так у меня в стеке C, C++, C#, Matlab для моделирования нейронок и DSP и всякая мелочь типа питончика и иже с ним.
Embeded в России плох тем, что очень мало вакансий и они низкооплачиваемые, так что по карьере не советую, жена потом уйдет )).
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
1. Вот сразу вы в понторезку ушли. Эмбеддер выбирает кристалл под задачу. Где то и attiny85 будет толстой.
2. Ардуина это отладочная плата, не хотите ее песочницы используйте голый тулчейн
3. Да много нужно, алгоритмы Кнутта например почитать, опять же многие тулзы только под линуксом, FPGA это отдельный большой разговор
4. Слишком широкий вопрос начните отсюда https://www.radiokot.ru/articles/
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега IT-образование
software engineer
Эмбеддед разработчик не работает в случайно взятом в вакууме мире.
Ищи конкретные компании, смотри что им надо.

Кому-то нужно писать драйвер под 3д принтер, и надо какой конкретно чипсет у них используется.
Кто-то пишет что-то под smartTV, или холодильник с wifi, опять же там ардуино вообще не рядом может оказаться.

Си должен быть хорош. Причем для эмбеддед было бы неплохо разбираться как пишется под ОС и без ОС.
Наверное будет полезным навыком умение написать свой драйвер под винду/линукс. Тут больше о манифестах и соглашениях, можно и драйвер коврика написать. Но чтобы все было по стандартам.
Ответ написан
Комментировать
@poweruser
Кодим, шарпим...
Embedded многогранен... Где-то нужно высокоуровневый код написать под, например, Linux или еще под какую-то "ось". Где-то нужно с протоколами поработать (ну и куда без интерфейсов). А где-то еще схемку "сбацать". Да и куда без паяльника. А еще можно на питоне или на "дотнете" написать что-то (тот же ESP32). Да, забыл, еще ведь сущестуют всякие "показометры", навроде тестера или осциллографа. Да та же "малина" вполне за "встройку" сойдет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы