---
id: "prereq-software-engineering-fundamentals"
type: "prereq"
source_timestamps: ["00:04:45", "00:05:10"]
tags: ["software-engineering", "foundations"]
related: ["framework-rob-pike-agent-rules", "contrarian-agent-engineering-is-not-new"]
reason: "Agentic systems fail when deployed in environments lacking basic software hygiene; understanding these fundamentals is required to prepare the environment."
sources: ["s41-nvidia-open-sourced"]
sourceVaultSlug: "s41-nvidia-open-sourced"
originDay: 41
---
# Fundamentals of Software Engineering

## What You Need to Know

To successfully build and deploy agentic systems, a practitioner must already be fluent in traditional software engineering fundamentals:

- **Data structures** — types, layout, normalization, schema design
- **Static analysis** — type checking, linting, formatters
- **Debugging** — observability, logging, tracing, breakpoints
- **Build systems** — reproducibility, dependency management
- **Testing** — unit, integration, property-based
- **Code quality practices** — modularity, naming, documentation

## Why It Matters Here

The entire [[contrarian-agent-engineering-is-not-new]] thesis depends on the viewer accepting that AI development is an **extension** of these practices, not a replacement. The framework [[framework-rob-pike-agent-rules]] presupposes fluency in this material.

Agentic systems fail when deployed in environments that lack basic software hygiene. Understanding these fundamentals is required to **prepare the environment** ([[concept-agent-environment-readiness]]) before any agent can succeed.

## How to Acquire It

- Kernighan & Pike, *The Practice of Programming*
- Hunt & Thomas, *The Pragmatic Programmer*
- Google's *Rules of Machine Learning* (companion to Pike's rules in the ML era)

## See Also

- [[framework-rob-pike-agent-rules]]
- [[contrarian-agent-engineering-is-not-new]]
- [[concept-agent-environment-readiness]]
