W ostatnim poście zaczęłam z 'wysokiego C’, czas zająć się tematem low-level. Nie wiem, czy dla kogoś embedded brzmiał kiedykolwiek tak tajemniczo, jak niegdyś dla mnie 🙂 Małymi krokami spróbuję rozjaśnić, co za tym wszystkim się kryje, przybliżę podstawy, narzędzia, a na koniec dam sporo wskazówek rekruterskich, które z pewnością ułatwią poszukiwanie odpowiednich kandydatów. No to lecimy!
Wrzucając w search na Linkedin słowo klucz “embedded” wyskoczy wielu specjalistów, a w skillach standardowo: C, C++, Linux, Kernel, RTOS.
Czy to niszowy obszar? Absolutnie nie. Jeżeli ktokolwiek rozejrzy się teraz wokół siebie, znajdzie niejedno urządzenie, które działa za sprawą Embedded Software Engineera, ja właśnie zerkam na telefon, zegarek i telewizor.
A teraz konkrety. Embedded, inaczej systemy wbudowane. Spece w tej domenie sprawiają, że konkretny sprzęt, gadżet działa. Pracują na styku hardware`u i software`u, czyli inaczej – łączą ze sobą świat programowania ze światem elektroniki. Zobacz: ekspres do kawy sam z siebie, jako plastikowe pudło, nie przygotuje 'małej czarnej’. Zrobi to jego 'mózg’, czyli taki tyci, tyci komputerek, który programista miał wcześniej w swoich rękach. Zakodował na nim wszystkie polecenia instrukcje, które ekspres ma wykonywać, gdy tylko wciśniemy guzik. No i jak klikasz, urządzenie posyczy, popierdzi, coś porobi i voilà, poranna kawa gotowa.
Prosto, systemy wbudowane, czyli systemy znajdujące się w 'bebechach’ różnych urządzeń. Co jeszcze ważne, a co może już zostało przez Ciebie zauważone, zazwyczaj ograniczone są do wykonywania kilku zadań, a nawet tylko do jednego. Wracając do ekspresu, no zdjęcia tutaj nie zrobisz 🙂
Idźmy dalej, bo to będzie ciekawe (dobra mnie kiedyś frapowało), a mianowicie, nasuwa się pytanie, jak to z tym „mózgiem” jest? Jak wszystko działa? Oczywiście w środku nie ma komputera w znaczeniu takim, jaki używamy na co dzień. Raczej jest to… jakby to powiedzieć… wizualnie… to taka płytka z kwadracikami, łączeniami, “nibynóżkami”, fachowo: mikrokontroler, którego sercem jest mikroprocesor (odpowiedzialny za przetwarzanie i wykonywanie zakodowanych instrukcji). Także owa płytka, choć ciężko nazwać ją komputerem, ma sporo jego cech, czyli ma wspomiany mikroporcesor, ma pamięć, może tutaj działać system operacyjny.
Sporo tu było o sprzęcie AGD, jednak trzeba zaznaczyć, że systemy wbudowane wykorzystywane są w wielu innych obszarach, praktycznie tego jest mnóstwo. Urządzenia otaczają nas wszędzie, gadżetów cieżko zliczyć, a każdy ma ich wiele. Możemy tu wspomnieć o całym obszarze RTV, ale także samochody – takie nowoczesne auto może mieć wgranych nawet ponad 30 indywidualnych systemów: od skrzyni biegów, czujników parkowania, hamowania, klimatyzacji, GPSa etc. Inne branże to dla przykładu: lotnictwo (oprogramowanie do sterowania samolotami), marynarka, wojsko (kamery termowizyjne, satelity, krótkofalówki, drony), cała produkcja (maszyny wszelkiego rodzaju), medycyna (urządzenia monitorujące funkcje życiowe podczas operacji, kardiologia, protetyka i serio wiele innych), IoT. Ciężko wymienić wszystko, ale zapewne już łapiesz i widzisz tę całą gamę zastosowań.
Więcej, może właśnie dostrzegasz fakt, że skoro ten wachlarz jest taki obrzerny, to jak zatem znaleźć właściwego kandydata? O tym już w kolejnym poście: narzędzia, języki programowania – słowem zawiłości techniczne i przede wszystkim wskazówki rekruterskie, czyli crème de la crème tematu!
*Photo made by Vishnu Mohanan