Artikeln beskriver fem överraskningar en nyutexaminerad mjukvaruutvecklare kan stöta på i arbetslivet. En viktig insikt är att mjukvaruutveckling kräver betydande interaktion med människor och goda skrivfärdigheter, till skillnad från den ensamma bild många har. Mjukvara blir sällan helt 'klar', utan kräver ständig återgång till befintlig kod för nya funktioner, buggfixar eller förbättringar, vilket innebär att nya funktioner nästan alltid integreras i existerande system. I verkligheten används sällan de 'smarta' algoritmer och avancerade datastrukturer som lärs ut på universitetet; istället dominerar enklare lösningar. Systemens komplexitet kommer från aggregeringen av många enkla funktioner snarare än från enskilda komplexa delar, vilket kan leda till oväntade interaktioner och buggar.