Cześć, za rok kończę studia z elektrotechniki w przyszłości chciałbym pracować jako programista Embedded, jak wiadomo na studiach znaczny nacisk jest na teorie, pomijając praktykę. Proszę o radę co powinien umieć junior embedded developer aby dostać pierwszą pracę.
- umieć napisać jakiś kod (jak czasami rekrutuje, to ludzie zaskakująco często odpadają na prostym zadaniu z kodowania, gdzie mogą wybrać dowolny język, a w CV mają +2 lata doświadczenia).
- c/c++
- git
- jakiś framework do testów: gtest/catch2/boost.test
- rozumieć polimorfizm.
- zależnie od pofilu firmy przydatnym umięjętnością może być też elektronika: lutowanie posługiwanie się multimetrem, oscyloskopem itp.
to zalezy co rozumiesz przez Embedded. Z grubsza podzielmy to na dwa branche
- "Duże" komputery arm/czasami legacy misp czy nawet x86. Coś w rodzaju gateway, stb itp. które de facto odpalają linuxa. To już wyższa warstwa abstrakcji jak goy mikroprocesor.
- mikroprocesory np. stm32 itp. To tutaj sporo C ale też C++. Systemy czasu rzeczywistego jak freertos. Generalnie bardziej low level
Zapoznaj się z yocto, freertos,stm32. Takie sprawy a reszta jak wyżej typowo. U nas dużo automotive szczególnie legacy kodu.
C++ możesz sobie darować, musisz bardzo bardzo dobrze znać C. Do tego to co wszędzie - Git, make, i protokoły komunikacyjne jak I2C, UART, SPI etc.
Kumanie C i umienie zaimplementować podstawowe struktury danych w nim będąc obudzonym o 3 nad ranem. Arytmetyka wskaźników wysoko na liście rzeczy którym poświęcasz uwagę.
Rozumienie podstawowych bebechów systemów operacyjnych (schelduler, proces, stos sieciowy) przynajmniej na poziomie "wiem że to istnieje i co to robi w systemie" (przy czym ja bym polecał ogarniać jakie mniej więcej algorytmy są w nich wykorzystywane).
Kumać tematykę architektury przynajmniej jednego rodzaju CPU - jak to ustrojstwo startuje i co się potem dzieje, jak korzysta z pamięci, czy ma jakieś mechanizmy do gadania z podzespołam, tryby procesora itd. Jak masz szerszą wiedzę o procesorach - typu jakie mechanizmy/rozwiązania w nich występują to też ci nikt złego słowa nie powie.
Wspomniane już protokoły. UART, I2C, SPI powinny wystarczyć na start.
Jak widzisz C++ w ofercie to radzę salwować się ucieczką, chyba że kochasz ból lub masz pistolet przystawiony do skroni.
Oscyloskop i tematyka około obwodów drukowanych – jak rozumiem miałeś styczność? Jeśli tak to powinna być wystarczająca raczej. W sumie to nie zawsze się nawet wchodzi w te rejony, chyba że pracujesz przy egzemplarzach ptototypowych.