Upřímně, embedded je těžké. To nepíšu proto, abych tě od toho odradil, ale aby bylo jasné, že toho musíš znát dost, abys byl v embedded dobrý. Je potřeba orientovat se v hardware i software.
Z hardware je dobré vědět něco o logických obvodech, mít představu o tom, jak funguje CPU a velké plus je vědět něco i o analogu, když třeba potřebuješ řídit motor.
Ze software je potřeba C(++). C se používá hlavně na malých MCU s pár KB RAM a FLASH (ne že by se nedalo použít C++, ale častější je C) a C++ využiješ na nějakých větších embedded ARMech.
Takže je spíš otázka, kde ty vidíš prostor ke zlepšení? Když půjdeš na pohovor na embedded software developera, tak je primárně bude zajímat C(++) a asi i něco z hardware.
Pod tohle bych se podepsal.
Pokud chceš dělat vývoj embedded na úrovni jednočipů, tak v menších firmách musíš být samostatný. Pokud budeš brzdit od práce mediora/seniora dotazy proč mi tohle nefunguje, proč mi tohle nejde přeložit, proč ... (dosaď si sám), pak firmu stojíš zhruba 2x tolik, co ten senior. Abys byl pro firmu zajímavý, musíš prokázat nějakou elementární úroveň dovedností, abys alespoň jednoduché úkoly zvládnul sám.
V korporátu jsi míň vývojář, víc programátor - dostaneš ohraničené zadání až např. na úroveň, že píšeš jen implementaci funkce, jejíž název, vstupy i výstupy jsou dané. Ale omezují tě věci jako MISRA, podpora pevně daného překladače atp.
Výčet toho, co bych já považoval za elementární dovednosti: základní práci s osciloskopem - alespoň nastavit trigger a změřit délku pulzu; čtení schemat; čtení a porozumění dokumentaci anglicky - datasheety, manuály; datové typy, limity, přetečení, znaménkové / neznaménkové; bitové operace; co je to přerušení; znalost základních komunikačních rozhraní - UART, SPI, I2C
Poznámky z reálného života: zadání se mění často a hodně; některé výpočty v MCU mohou trvat i dost dlouho; HW není bezchybný - někdy udělá chybu HW vvýojář - typicky prohození RX, TX, jindy je chyba v komponentech, některé vybrané errata sheety jsou doslova hororové čtení; unit testy se vyplatí; když to jde, debugger je tvůj kamarád;