# Learn computer science fundamentals — how computers actually work

From bits to operating systems — the knowledge that makes you a stronger engineer

Computer science fundamentals cover the layers of abstraction that every computer is built on: how transistors become logic gates, how logic gates become a CPU, how a CPU executes instructions, how an operating system manages resources, and how compilers turn source code into machine code.

Most working programmers use these layers without understanding them — and for many tasks, that's fine. But when something goes wrong at the system level, or when you need to optimize for performance, or when you want to understand why certain architectural choices were made, this foundational knowledge becomes invaluable.

Planana's AI tutor guides you through the conceptual stack from bottom to top, building a mental model of the entire system before diving into any single layer in depth.

## What you'll learn

### Boolean Logic & Digital Circuits

How AND, OR, NOT gates implement binary arithmetic and how combinational logic builds up to a functional ALU.

### Computer Architecture

The CPU: fetch-decode-execute cycle, registers, memory hierarchy (cache, RAM, disk), and the Von Neumann model.

### Operating Systems

Process management, virtual memory, file systems, and how the OS abstracts hardware for applications to use safely.

### Compilers & Interpreters

How source code is tokenized, parsed, and transformed into executable instructions — and how interpreted languages differ.

### Networking Fundamentals

The TCP/IP stack, DNS, HTTP, and how data moves across the internet — the foundation of every networked application.

### Memory Management

Stack vs. heap, garbage collection, reference counting, and manual memory management — why memory bugs happen and how to prevent them.

### Concurrency & Parallelism

Threads, processes, locks, deadlocks, and the difference between concurrent and parallel execution.

## Why learn Computer Science Fundamentals?

Understanding CS fundamentals makes you a more effective engineer regardless of what you're building. Knowing how memory allocation works helps you write more efficient code. Understanding how the OS schedules processes explains why your concurrent code behaves the way it does. Knowing how compilers work makes you better at understanding performance.

It also prepares you for systems programming, embedded development, and any role that requires working close to the hardware — and it gives you the vocabulary to communicate precisely with engineers who work at different layers of the stack.

## Start learning Computer Science Fundamentals today

Tell Planana's AI tutor your goal and get a personalized daily study plan — free.
