Het gebied van computerontwikkeling heeft meerdere takken, waarbij elke tak overeenkomt met een andere theoretische of praktische focus. Computertechniek leent van elektrotechniek en computerprogrammering om zich te concentreren op het bouwen van verschillende computerconfiguraties voor verschillende toepassingen. Om te begrijpen hoe dit gebeurt, is het belangrijk om de basisprincipes van computerhardware en -software, hardware-abstractie te begrijpen en hoe computertechniek van beide leent om computersystemen zoals embedded apparaten te bouwen.
Software-engineering en hardware-engineering
Bij computerontwerp zijn er twee algemene categorieën van zorg: het maken van hardware en het maken van software. Hardware- (of elektrische) ingenieurs maken de fysieke onderdelen van de computer, inclusief chips en circuits. Software-ingenieurs bouwen applicaties die op de computerhardware draaien. Software-ingenieurs zijn niet alleen computerprogrammeurs. In plaats daarvan werken software-ingenieurs aan het correct laten functioneren van grote softwareprojecten op verschillende platforms.
Computertechniek en hardware/software
Computertechniek leent van zowel software- als hardware-engineering. Computeringenieurs houden zich bezig met het bouwen van computers uit onderdelen en hoe die computers zullen functioneren binnen grotere systemen. Dit betekent dat computeringenieurs meer werken aan computer "systemen" en hoe verschillende computercomponenten in die systemen zullen werken. Verder zal een computeringenieur bestuderen hoe verschillende situaties vragen om specifieke implementaties van computerhardware en -software. Denk aan systemen voor verkeersregeling of sensoren in robotica.
Abstractie en hardware
Een manier waarop een computeringenieur zich op deze problemen kan concentreren door het concept van 'abstractie'. Terwijl hardware-ingenieurs specifieke onderdelen voor specifieke doeleinden ontwikkelen, kunnen deze onderdelen voor verschillende doeleinden worden gebruikt door hun interne werking te 'abstreren'. Dit betekent dat de computertechnicus alleen specifieke dingen over de hardware hoeft te weten om hem te gebruiken, zoals wat hij doet of waarmee hij werkt. Vervolgens kan de computeringenieur die hardware in geschikte systemen implementeren.
Ingebedde systemen
Veel computeringenieurs werken op het gebied van embedded systemen. "Embedded" systemen zijn computersystemen die niet de vorm hebben van een traditionele computer, maar in plaats daarvan functioneren binnen een ander apparaat om een bepaalde taak uit te voeren. Ingebouwde systemen zijn te vinden in verkeerslichtsystemen, televisies, radio's en zelfs keukenapparatuur. De computertechnicus zoekt uit hoe welke computerhardware in een apparaat kan worden gestopt om een specifieke taak uit te voeren, zoals het bijhouden van de tijd of het opslaan van configuratiewaarden. Vervolgens zoekt hij of zij uit hoe die opstelling in het apparaat kan worden geïmplementeerd.