Il campo dello sviluppo informatico ha più rami, ogni ramo corrispondente a un diverso focus teorico o pratico. L'ingegneria informatica prende in prestito dall'ingegneria elettrica e dalla programmazione informatica per concentrarsi sulla costruzione di diverse configurazioni di computer per varie applicazioni. Per capire come ciò accade, è importante comprendere le basi dell'hardware e del software del computer, l'astrazione dell'hardware e come l'ingegneria informatica prende in prestito da entrambi per costruire sistemi informatici come i dispositivi embedded.
Ingegneria del software e ingegneria dell'hardware
Nella progettazione dei computer, ci sono due categorie generali di interesse: la creazione di hardware e la creazione di software. Gli ingegneri hardware (o elettrici) creano i pezzi fisici del computer, inclusi chip e circuiti. Gli ingegneri del software creano applicazioni che vengono eseguite sull'hardware del computer. Gli ingegneri del software non sono solo programmatori di computer. Invece, gli ingegneri del software lavorano per far funzionare correttamente progetti software di grandi dimensioni su piattaforme diverse.
Ingegneria informatica e hardware/software
L'ingegneria informatica prende in prestito sia l'ingegneria del software che quella dell'hardware. Gli ingegneri informatici si occupano della costruzione di computer da parti componenti e di come funzioneranno tali computer all'interno di sistemi più grandi. Ciò significa che gli ingegneri informatici lavorano di più sui "sistemi" informatici e su come i diversi componenti del computer funzioneranno in quei sistemi. Inoltre, un ingegnere informatico studierà come diverse situazioni richiederanno implementazioni specifiche di hardware e software per computer. Questo può includere sistemi per il controllo del traffico o sensori nella robotica.
Astrazione e hardware
Un modo in cui un ingegnere informatico può concentrarsi su questi problemi è attraverso il concetto di "astrazione". Sebbene gli ingegneri hardware sviluppino parti specifiche per scopi specifici, queste parti possono essere utilizzate per una varietà di usi "astraendo" il loro funzionamento interno. Ciò significa che l'ingegnere informatico deve solo conoscere cose specifiche sull'hardware per usarlo, come cosa fa o con cosa funziona. Quindi l'ingegnere informatico può implementare quell'hardware in sistemi appropriati.
Sistemi integrati
Molti ingegneri informatici lavorano nel campo dei sistemi embedded. I sistemi "embedded" sono sistemi informatici che non assumono la forma di un computer tradizionale, ma funzionano invece all'interno di un altro dispositivo per eseguire un determinato compito. I sistemi integrati si trovano nei sistemi a semaforo, nei televisori, nelle radio e persino negli elettrodomestici da cucina. L'ingegnere informatico capisce come l'hardware del computer può essere inserito in un dispositivo per svolgere un compito specifico, come tenere il tempo o memorizzare i valori di configurazione. Quindi, lui o lei capisce come implementare quella configurazione all'interno del dispositivo.