Пятничная тема про Embedded aka программирование микроконтроллеров (не совсем тождественные понятия, но всё же). Я работаю немногим дольше трёх лет (а вообще почти четыре), пока что в двух конторах работал. Хочу перетереть за жизнь с теми кто работает в этой же области (ну можно и не только с ними).
Сразу к делу.
Уныло это как-то всё. Я вполне допускаю, что это всё потому что я не бог весть какой инженер (программист) и мне просто не попадались сложные задачи, пусть так. Пишу я в основном на голом железе и под FreeRTOS. Писал под TMSы, STMы и немного AVR и PIC. Что у нас там есть? Интерфейсы передачи данных, АЦП, ШИМы да каналы захвата. Вот здесь можно DMA подключить. Иногда надо USB присобачить, совсем круто сымитировать или накатить настоящую файловую систему. Иногда что-то по сети передавать. Иногда надо что-то осциллографом смотреть, кому-то нравится, а я не люблю, отвлекает. Вообще стараюсь схемотехники не касаться, благо в обоих конторах этим отдельные люди занимались. Каждый раз моя разработка - или машина состояний на голом железе, или задач под FreeRTOS наструячить.
По предметной области - немного ЦОСа (фильтры подобрать/написать), немного ТАУ. Часто приходится парсить разные протоколы, иногда что-нибудь в матлабе моделировать, один раз приходилось систему стабилизации камеры писать (было прикольно, там и алгебра, и моделирование, но получилось не очень точно). Большая часть моих устройств занимается передачей данных, некоторые делают что-то конкретное (генерируют данные или управляют чем-то). Вообще мне кажется иногда, что лучше б я на конкретной инженерной специальности фокусировался, типа ЦОС или системы управления или что-нибудь ещё. Железо (имею в виду схемотехнику, от которой тащатся многие эмбеддеры, вероятно потому что многие из них изначально радиоэлектронщики) не люблю. Меня особенно дико выбешивает когда что-то не так запаяно и приходится это искать.
Вот и весь мой эмбеддед. Возможно я просто не сталкивался со сложными задачами. Возможно две работы - это небольшой опыт и много чего я не видел. Возможно разработка в эмбеддед и под всё остальное сейчас на самом деле не сильно отличаются.
Но просто я как-то глянул как дрова под Linux пишутся и ничего вообще не понял, откуда эти тонны структур и дескрипторов, что здесь мляха происходит. Открыл проект на С++ (не эмбеддед) и тоже почти нихрена не понял. У меня такое чувство, как будто программистская/CS жизнь проходит мимо меня. ИИ, анализ данных, современные языки программирования и многое-многое другое. Я и не спец по какой-то инженерной области, и не программист.
А у вас есть такое чувство? Вам нравится? У вас сложные интересные проекты? Чем вообще занимаетесь?