Loading...
Loading...
Explains Andrej Karpathy's framework for understanding the three paradigms of software (1.0- traditional code, 2.0- neural network weights, 3.0- LLM prompts). Use when users ask about software paradigm shifts, the evolution of programming, how LLMs fit into software development history, Software 1.0/2.0/3.0 distinctions, prompt engineering as programming, or when they need to explain or apply Karpathy's mental model for understanding modern AI development. Also useful when discussing how to think about building software in the AI era, choosing between traditional code vs neural nets vs LLM prompts, or explaining the significance of "programming in English."
npx skill4agent add jona/ycombinator-skills software-paradigms-karpathyTraditional OS LLM "OS"
─────────────────────────────────────────────────────
CPU → LLM inference engine
RAM → Context window
Disk storage → Training data / weights
Programs → Prompts
System calls → Tool use / function calling
Multi-tasking → Agentic loopsQuestions to ask:
- Is the input/output well-defined or open-ended?
- How much does context/reasoning matter?
- What's the latency requirement?
- How often will the logic need to change?
- What data is available for training?| Characteristic | Best Paradigm |
|---|---|
| Deterministic logic | 1.0 |
| Perceptual processing | 2.0 |
| Flexible reasoning | 3.0 |
| Sub-millisecond latency | 1.0 or optimized 2.0 |
| Rapid prototyping | 3.0 |
| Large-scale pattern matching | 2.0 |
Example: Tesla Autopilot Stack (as described by Karpathy)
┌─────────────────────────────────────────┐
│ Software 1.0 (C++) │ ← Vehicle control, safety systems
├─────────────────────────────────────────┤
│ Software 2.0 (Neural Nets) │ ← Perception, prediction
├─────────────────────────────────────────┤
│ Inputs: Cameras, Sensors, Maps │
└─────────────────────────────────────────┘Example: Modern AI Application
┌─────────────────────────────────────────┐
│ Software 3.0 (LLM Prompts) │ ← Reasoning, user interaction
├─────────────────────────────────────────┤
│ Software 2.0 (Embeddings, Classifiers)│ ← Retrieval, routing
├─────────────────────────────────────────┤
│ Software 1.0 (Python/APIs) │ ← Orchestration, I/O, tools
└─────────────────────────────────────────┘┌────────────┬─────────────────┬─────────────────┬─────────────────┐
│ │ Software 1.0 │ Software 2.0 │ Software 3.0 │
├────────────┼─────────────────┼─────────────────┼─────────────────┤
│ Medium │ Code (Python, │ Weights │ Prompts │
│ │ C++, etc.) │ (parameters) │ (English) │
├────────────┼─────────────────┼─────────────────┼─────────────────┤
│ Created by │ Writing logic │ Training on │ Describing │
│ │ │ data │ behavior │
├────────────┼─────────────────┼─────────────────┼─────────────────┤
│ Repository │ GitHub │ Hugging Face │ (emerging) │
├────────────┼─────────────────┼─────────────────┼─────────────────┤
│ Debugging │ Step through │ Inspect │ Iterate on │
│ │ code │ activations │ prompts │
├────────────┼─────────────────┼─────────────────┼─────────────────┤
│ Iteration │ Edit code │ Retrain model │ Edit prompt │
│ │ │ (LoRA, etc.) │ │
└────────────┴─────────────────┴─────────────────┴─────────────────┘