Exploring Computer Science
The CS theory behind the production code you write.

Welcome to a practical guide for working engineers who want to understand the computer science foundations underneath the code they ship every day.
The Problem
Your PR got rejected because the reviewer said it's "\(O(n^2)\)". You nodded, made some changes, but couldn't quite explain why the new version is faster. You've debugged stack traces without understanding why they're called "stacks." You use hash tables (Python dict, JavaScript Object) constantly but couldn't explain how they achieve \(O(1)\) lookup.
You know HOW to code. This site teaches you WHY things work.
The Solution
While Exploring Linux, Exploring Python, and Exploring Kubernetes teach practical skills, this site teaches the theory that makes you a stronger engineer. Understand these concepts and you'll:
- Confidently discuss time/space complexity in code reviews
- Recognize when your algorithm won't scale
- Understand what's happening under the hood in your tools
- Answer theory questions in technical interviews
- Debug more effectively by understanding fundamentals
How It's Organized
Content is structured by practical value and depth:
-
Essentials
The CS you need for interviews and understanding performance. Can't call yourself a well-rounded engineer without these.
What is Computer Science? — The CS theory behind the code you write every day
Big-O Notation — Why your code is slow and how to talk about it
Type Systems Basics — The formal contract behind every variable and function signature
Regular Expressions — The complete syntax reference for writing and reading regex in production code
Recursion — Divide-and-conquer problem solving from first principles
Trees — The data structure behind your file system, JSON, and database indexes
Searching, sorting, stacks, queues (coming soon)
-
Efficiency
CS that makes you better at debugging and system design. Deeper understanding that pays dividends.
Computational Thinking — The mental framework behind good engineering
Finite State Machines — The model behind protocols, parsers, and validation
Regular Expressions: The Formal Model — How regex engines compile patterns to automata, why backtracking causes ReDoS, and what regex can't match
How Parsers Work — From raw text to meaning
Compilers vs. Interpreters — What actually happens between your source code and execution
Lists as Recursive Structures — The CS theory behind every map, filter, and reduce you've written
-
Mastery
Deep theory for understanding the limits of computation. For when you want to go beyond practical and into foundational.
Information Theory — Bits, binary, entropy, and why compression has hard limits
Recursive Transition Networks — Visual grammars for nested languages
Backus-Naur Form (BNF) — The notation behind every language specification
Scheme: A Primer — Lambda, closures, and recursion in the language that invented them
Higher-Order Functions — How code becomes data
Scheme & Parse Trees — When code is its own parse tree
Abstract Data Types — The CS theory behind interfaces, protocols, and traits
Computability: Turing machines, halting problem, P vs NP (coming soon)
Who This Is For
You're a back-end engineer, platform engineer, or software developer who:
- Writes production code daily (Python, Go, Java, JavaScript, etc.)
- Has real-world experience shipping features and debugging issues
- Lacks formal CS training and wants to fill that gap
- May be self-taught, bootcamp graduate, or career changer
- Wants to understand the "why" behind the tools you use
You already know how to code. This site teaches the theory underneath.
Integration with Other Sites
This site is part of the BradPenney.io learning ecosystem:
- Exploring Linux - Linux commands and system administration
- Exploring Kubernetes - Kubernetes for platform engineers
- Exploring Python - Python automation and scripting
- Exploring Software Development Tools - Git, tmux, vim, and developer tooling
How they connect:
- CS site + Python site = Understanding why your code performs the way it does
- CS site + Tools site = Knowing the theory behind
grep(regex),git(DAGs), parsers (compilers) - CS site + K8s site = Understanding distributed systems concepts
Ready to understand the theory? Start with What is Computer Science? for context, then Big-O Notation to understand why some code is fast and other code times out at scale.