Jak začít jako embedded vývojář?

Jak začít jako embedded vývojář?
« kdy: 11. 03. 2024, 11:41:18 »
Je mi 26. Maturoval jsem z elektrotechniky, bakaláře mám ze Strojírenství a průmyslové automatizace. Rok jsem teď pracoval jako manuální tester webových aplikací. Po vyhazovu (snižování stavů) bych se rád vrátil k engineeringu. Jako nejschůdnější cestu vidím vestavěné systémy. Pořídil jsem si Rapberry, pár skript o protokolech a mezi scrolováním jobs.cz se začal učit.

Problém je, že nejsem zatím dostatečně znalý na to abych získal v tomhle oboru práci a zároveň ani dost bohatý abych si mohl doma půl roku doma hrát. Hlásím se na pozice jako tester řídících systémů které jsou spíš na PLC, ale aspoň tam využiju Python. Bohužel těch pozic není tolik a nemám jistotu, že ji dostanu.

Jako plán B mě napadlo vzít si nějakou brigádu, po večerech intenzivně pracovat na GITu a pak začít hledat pozici už jako Embedded developer. Ale bude to stačit?

Nejjednodušší bych to měl v oblasti testování webů, ale bojím se, že se na takové pozici seknu minimálně na několik let, nebo rovnou napořád.

Byl bych rád za pár tipů i co se učení týče nebo obecně čehokoliv co by mi mohlo pomoci.


Re:Jak začít jako Embedded developer
« Odpověď #1 kdy: 11. 03. 2024, 12:15:07 »
Který kraj nebo okres?

Re:Jak začít jako Embedded developer
« Odpověď #2 kdy: 11. 03. 2024, 12:24:02 »
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.

alex6bbc

  • *****
  • 1 673
    • Zobrazit profil
    • E-mail
Re:Jak začít jako embedded vývojář?
« Odpověď #3 kdy: 11. 03. 2024, 12:44:25 »
tak zatim vem jakoukoliv testerskou praci a po vecerech kuchti nejaky hw projekt, vybral bych si rpi, arduino, stm32 a kod dal do verejneho repozitare at to muzes ukazat.
vyleptani a osazeni vlastniho tistaku je dalsi plus, prace s osciloskopem a pajkou taky.

RDa

  • *****
  • 2 744
    • Zobrazit profil
    • E-mail
Re:Jak začít jako embedded vývojář?
« Odpověď #4 kdy: 11. 03. 2024, 13:02:10 »
Pokud chces byt embedded (na vyssich platformach nez bare-metal mcu) tak je taky nutnost znat praci s device tree a psani ovladacu, nebo alespon jejich lepeni.

Typicky mas napr. referencni platformu, a pak customizovanou pro nejaky produkt, ktery jsi dostal jako ukol v te embedded praci.

Idealni je hledat neco, v cem jsi jako doma - mas nejakou specializaci? hw/sw/platformu/segment


Re:Jak začít jako embedded vývojář?
« Odpověď #5 kdy: 11. 03. 2024, 13:44:53 »
Zakladni otazka je, zda Te zajimaji poctive mission critical systemy, nebo IoT kurvitka s Linuxem.

Dale si ujasnit, zda chces delat spis platformy, nebo aplikace.

V mensich CZ mestech je to obecne s IT RD slabsi. Ale v Praze, Brne, Plzni nevidim jediny duvod proc bys v embedded nemel sehnat praci. Webove rozhrani a napojeni do cloudu ma kdejaka krabicka. Znalost HW se nekdy muze hodit, ale neni to nutne. Komplexnejsi systemy maji HAL. Obecne se vyuzije znalost zakladu sitariny.
« Poslední změna: 11. 03. 2024, 13:52:20 od Benutzer »

Re:Jak začít jako Embedded developer
« Odpověď #6 kdy: 11. 03. 2024, 16:43:56 »

Re:Jak začít jako embedded vývojář?
« Odpověď #7 kdy: 11. 03. 2024, 16:46:06 »
Zakladni otazka je, zda Te zajimaji poctive mission critical systemy, nebo IoT kurvitka s Linuxem.

Dale si ujasnit, zda chces delat spis platformy, nebo aplikace.

V mensich CZ mestech je to obecne s IT RD slabsi. Ale v Praze, Brne, Plzni nevidim jediny duvod proc bys v embedded nemel sehnat praci. Webove rozhrani a napojeni do cloudu ma kdejaka krabicka. Znalost HW se nekdy muze hodit, ale neni to nutne. Komplexnejsi systemy maji HAL. Obecne se vyuzije znalost zakladu sitariny.
Těžko říct, tolik se v tom neorientuju. Nejvíc se dívám po automative.
Práce je v Praze samozřejmě hodně, jen nejsem se svými dovednostmi na tuhle pozici ještě zaměstnatelnej.

Re:Jak začít jako Embedded developer
« Odpověď #8 kdy: 11. 03. 2024, 16:49:53 »
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.

Nevadí, výzvy mě baví.

Re:Jak začít jako embedded vývojář?
« Odpověď #9 kdy: 11. 03. 2024, 18:12:07 »
a nebo jdi na zacatku pod platovy limit, cimz budes pro ne levny, rychle se zvedni a pak uz jdi na bezny plat.

Re:Jak začít jako embedded vývojář?
« Odpověď #10 kdy: 11. 03. 2024, 19:52:56 »
a nebo jdi na zacatku pod platovy limit, cimz budes pro ne levny, rychle se zvedni a pak uz jdi na bezny plat.

Nevím, nevzal mi mě ani jako testera za 35. Nechci si kazit reputaci u potencionálních zaměstnavatelů tím, že to budu zkoušet.

_Jenda

  • *****
  • 1 606
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Jak začít jako embedded vývojář?
« Odpověď #11 kdy: 11. 03. 2024, 20:27:35 »
My jsme měli pár internů (placených, ale nevím jestli by ti to stačilo) ze středních škol a někdy to docela šlo a doufám že se tím dost naučili. Nevím jestli zrovna teď nabíráme. U nás teda intern-level HW je hlavně kreslení a oživování plošňáků rádiových a se STM32, hardcore HW je pak DSP na FPGA. Embedded Linux moc neděláme. Sekundárně pak různé vylepšování labu a dílny, případně zapojování rozvaděčů. Tak nevím jestli je to tvoje oblast.

Re:Jak začít jako embedded vývojář?
« Odpověď #12 kdy: 11. 03. 2024, 20:45:56 »
Problem nebude ve znalostech, ale v tom ze vystupujues jako zoufalec.

Ze Te nekde nevzali na testera vubec o nicem nevypovida.
« Poslední změna: 11. 03. 2024, 20:48:45 od Benutzer »

Re:Jak začít jako embedded vývojář?
« Odpověď #13 kdy: 11. 03. 2024, 20:54:01 »
My jsme měli pár internů (placených, ale nevím jestli by ti to stačilo) ze středních škol a někdy to docela šlo a doufám že se tím dost naučili. Nevím jestli zrovna teď nabíráme. U nás teda intern-level HW je hlavně kreslení a oživování plošňáků rádiových a se STM32, hardcore HW je pak DSP na FPGA. Embedded Linux moc neděláme. Sekundárně pak různé vylepšování labu a dílny, případně zapojování rozvaděčů. Tak nevím jestli je to tvoje oblast.
Díky, ale já jsem spíš na to SW.

xPoli

Re:Jak začít jako Embedded developer
« Odpověď #14 kdy: 11. 03. 2024, 21:36:13 »
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;