The Kinds of Software
"Software" is one word for a surprisingly varied set of things. The app on your phone, the website you're reading, the system that runs a cash register, the code inside your car — all software, all built quite differently. Before going further, it helps to have a map.
The point isn't to memorize categories. It's so that when you meet any project, app, or job posting, you can place it: "ah, that's a web app", "that's embedded software". The same craft applies across all of them, but the textures differ, and knowing the families makes the rest of the course easier to follow.
Think of it like construction. A house, a bridge, and a stadium are all "building" — same trade, same physics — but the constraints and the day-to-day are worlds apart. Software families are like that.
The Major Families
Most software falls into a handful of families. You don't need depth on each yet — just a feel for what they are and an example you already know.
| Family | What it is | You already use |
|---|---|---|
| Web | Runs in a browser, reached over the internet | Gmail, your online bank |
| Mobile | Apps installed on a phone or tablet | Instagram, your maps app |
| Desktop | Programs installed on a computer | A word processor, a photo editor |
| Backend / systems | The servers behind apps; the software other software runs on | The system answering an app's requests |
| Embedded | Code built into a physical device | A car, a microwave, a thermostat |
| Data / AI | Pipelines that move and analyze data, and the models behind AI features | A recommendation feed |
Same Discipline, Different Texture
Every family shares the lifecycle this course teaches: someone decides what to build, it gets designed, written, tested, shipped, and maintained. The craft is the same. What changes is the constraints.
Embedded software in a car can't be patched as casually as a website, because a bad update could strand a driver. A mobile app has to fit a small screen and a battery. A web app can change a hundred times a day. The discipline holds across all of them; the pressures and the pace differ.
Frontend, Backend, and Full-Stack
Inside web and mobile work you'll constantly hear three more words. The frontend is the part people see and touch — the screens, buttons, and layout. The backend is the part behind the scenes — the servers that store data and do the heavy work, which users never see directly.
A full-stack developer works on both. These aren't different languages or a measure of skill — they're layers of an app, and which one you work on is mostly about where in the system you spend your time.
Cadence, the app you'll follow through this book, is a web app with a frontend its users tap each morning to check off a habit, and a backend that quietly stores those check-ins and works out each streak. Two layers, one app — the shape most examples in this course will lean on.
- "Frontend versus backend is about which language you know." They're layers of an app — the visible part and the behind-the-scenes part — not a language or a skill level. Many languages can build either.
- "Embedded software isn't really software." The code in cars, appliances, and medical devices is software too — and by sheer count there's more of it running in the world than any app.
- "A mobile app is just a small website." They can look similar, but they're built, shipped, and updated differently — a phone's app store, screen, and battery change the whole job.
- Placing any app or project into a family lets you read job postings and team descriptions and actually know what kind of work they mean.
- Knowing the same discipline spans every family is reassuring: what you learn here applies whether you end up in web, mobile, or embedded work.
- "Frontend", "backend", and "full-stack" are words you'll hear on day one of any web team — having them straight saves a lot of quiet confusion.
Knowledge Check
What is the best way to think about "frontend" and "backend"?
- Two layers of an app — the part users see, and the behind-the-scenes part
- Two different programming languages, one for the visible part and one for the rest
- A ranking of developer skill, from beginner to expert
- The hardware versus the software of a device
Why does the course say the "same discipline" applies across all software families?
- They all follow the same lifecycle of building and maintaining software, even if constraints differ
- They are all written in exactly the same programming language, with no real variation
- They all face identical constraints, speeds, and risks
- They all run on exactly the same kind of device
Which statement about embedded software is correct?
- It's the code built into physical devices, and there's a great deal of it in the world
- It isn't really software at all, since it lives inside a physical device rather than a computer
- It's a rare, niche kind of software almost no one builds
- It only ever runs inside a web browser
You got correct