יש שני סוגים עיקריים. תוכנת מערכת, ובראשה מערכת ההפעלה, מנהלת את המחשב ומאפשרת לשאר התוכנות לרוץ. תוכנות יישום — אפליקציות — עוזרות לנו לעשות משהו: לכתוב, לחשב, לצייר, לגלוש, לשמוע מוזיקה או לשחק. יש גם תוכנה שצרובה בתוך חומרה, כמו בשלט או במכונת כביסה, ונקראת קושחה.
תוכנות נכתבות בידי מתכנתים ומתכנתות בשפות תכנות, ומתורגמות לשפה שהמעבד מבין. תוכנה גדולה היא עבודה של צוותים שלמים במשך שנים, ויש בה מיליוני הוראות — ולכן גם באגים. בגלל זה תוכנות מתעדכנות: מתקנים טעויות, סוגרים פרצות ומוסיפים אפשרויות. אותה חומרה יכולה לעשות דברים חדשים לגמרי — רק מתקינים תוכנה חדשה.

