• Необходимые знания для embedded developer'a?

    @LampTester
    Начать хочу с самых ранних азов.


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

    Интересуют так же такие вещи как: стоит ли учится писать сценарии программ для Arduino, сможет ли это помочь абстрагироваться в выбранной сфере разработки и получить те самые азы?


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

    Нужно ли учиться паять и разбираться в микросхемах, теристорах, тестерах и прочем железе что бы работать embedded программистом?


    Да, обязательно. Хороший embedded-программист сам должен быть способен разрабатывать железо. Более того, в не слишком сложных проектах (или в очень критичных по оптимальности решения) разработчик железа и программист - один и тот же человек.

    Вообще, embedded-программист - в большей степени электронщик (где-то на 80%, или даже больше), чем программист.

    Нужны ли знания программирования под линукс? Читая вакансии не один раз встречал требования знания работы с линукс.


    Опционально, будет плюсом.

    Что касается процесса обучения, то он примерно идентичен процессу обучения инженера-электронщика.

    1. Полный курс общей физики. Обязательно. Без него никуда, это база всего. После него отпадают 98% элементарных вопросов и появляется стройная картина мира. Математика - без фанатизма, но в достаточном объеме, чтобы понимать курс физики.
    2. Базовый курс конкретно электроники. Здесь можно посмотреть в сторону классики - Горовиц и Хилл первое, что приходит на ум.
    3. Программирование. Без фанатизма. Ночами штудировать численные методы и заучивать классичесские алгоритмы не надо (хотя представлять, как работает, например, метод Рунге-Кутта будет полезно), но выработать навыки алгоритмизации требуется обязательно. На эту тему полно туториалов, гораздо больше, чем по электронике.
    4. Обработка сигнала тоже нужна. В написании программ для контроллеров всякие цифровые фильтры встречаются очень часто (особенно при обработке сигнала с датчиков), надо бы представлять, как работают методы ЦОС.
    5. Специальные вопросы. Архитектура контроллеров, стандартные интерфейсы и т.п. Это уже по необходимости.

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

    Но самое главное - желание. Только оно может обеспечить достаточный объем практики.
    Ответ написан
    3 комментария