Pokud chceme využívat výpočetní techniku k tomu, k čemu ji obvykle využívat potřebujeme a chceme, neobejdeme se v žádném případě bez náležitého softwaru. Což vlastně není ničím jiným než cizojazyčným označením pro počítačové programy. Tedy pro posloupnosti instrukcí, jež popisují realizaci zadané úlohy počítačem.
Pokud má tedy počítač být k něčemu užitečný, musí mít v sobě nainstalovaný minimálně jeden podobný program, a to jádro, jež řídí chod počítače a uživatel pak pracuje s dalším, aplikačním softwarem.
Dnes jsou takové počítačové programy vytvářeny programátory, kteří zapisují algoritmus v některém z programovacích jazyků. Zdrojový kód se tu buď překládá překladačem do strojového kódu, jenž je následně přímo vykonáván procesorem, nebo se zdrojový kód vykonává interpretem, tedy bez existence spustitelného strojového kódu.
Software lze rozdělit na systémový a aplikační. Ten systémový slouží k zajištění chodu počítače, aplikační pak umožňuje využít počítač k nějaké užitečné činnosti.
Pokud se bavíme o systémovém software, je základním programem v počítači jádro, jež je součástí operačního systému a jež se zavádí do počítače při jeho startu. A patří sem i další speciální programy uplatňované během startu počítače.
Aplikační software pak umožňuje uživateli počítač ovládat, spouštět další aplikační programy a komunikovat s ním.
Dnes se takové programy zpravidla zapisují v některém z programovacích jazyků ve formě zdrojového kódu, jenž je srozumitelný pro lidi, a do jeho úpravy se zahrnují i testování, analýza či ladění. Takový vývoj softwaru je pak často velmi zdlouhavá činnost vykonávaná programátory, vývojáři softwaru a softwarovými architekty. A následně jsou takové programy zpravidla uchovávané ve stálé paměti počítače, dokud nejsou vyžádány ke zpracování, což znamená načtení operačním systémem do operační paměti, kde je program dosažitelný procesorem. A kde s ním dělá uživatel to, co potřebuje. Pokud tedy pochopitelně vše funguje tak, jak má. Protože jak se říká, jsou i věci mezi Gatesem a zemí…