I was sitting at my desk last Tuesday, halfway through a nasty WooCommerce checkout refactor, when my five-year-old niece wandered into the office. I had VS Code open on one screen and a mess of unstyled <div> tags on the other. She stood there for a second, tilted her head, and asked, “Wassat you typing?”
I usually give the “it’s for the computer” line, but something about her curiosity stopped me. I realized that if I couldn’t explain HTML and CSS basics to a child, maybe I didn’t understand the “why” as well as I thought. It’s easy to get lost in React hooks or API endpoints and forget that the web, at its core, is just structure and paint. Total nightmare if you overthink it, really.
The Bricks and the Paint: HTML and CSS Basics
My first instinct was a total failure. I tried to explain that I was “semanticizing the markup to improve accessibility.” Her eyes glazed over immediately. I felt like an idiot. I had to pivot, fast. I looked at her LEGO set on the floor and it clicked. I told her we were building a house. The stuff I was typing in the dark screen? Those were the bricks.
HTML is the structure. It’s the “what is there.” I showed her how I could tell the computer to put a roof (header), a floor (footer), and a few rooms (sections) on the screen. Without it, the house doesn’t exist. This builds on the roadmap concepts I’ve discussed before regarding WordPress development roadmaps.
<!-- bbioon: The basic structure of our "house" -->
<div class="bbioon-house">
<header class="bbioon-roof">Roof</header>
<main class="bbioon-living-room">
<p>This is where we sit.</p>
<button class="bbioon-door">Open Door</button>
</main>
<footer class="bbioon-basement">Basement</footer>
</div>
She watched me refresh the browser. “It’s ugly,” she said. She wasn’t wrong. It was just black text on a white void. That’s when I explained CSS. If HTML is the bricks, CSS is the bucket of paint and the carpet. It’s the “how it looks.” I told her I could make the roof red and the door blue just by writing a different set of instructions.
/* bbioon: Making the house look like a house */
.bbioon-house {
border: 2px solid #333;
padding: 20px;
width: 300px;
}
.bbioon-roof {
background-color: #e74c3c; /* Red roof */
height: 50px;
color: white;
}
.bbioon-door {
background-color: #3498db; /* Blue door */
border: none;
color: white;
padding: 10px;
}
The Feynman Technique in the Trenches
Taking the time to strip away the jargon reminded me of the Feynman Technique: if you can’t explain it simply, you don’t know it. We often hide behind complex terms because they’re comfortable. But when you’re troubleshooting a broken layout or a legacy codebase, you have to get back to these fundamentals. Trust me on this.
I realized I’d been rushing through my work lately, treating tags like chores rather than building blocks. Seeing her excitement when a blue box appeared reminded me why I started doing this 14 years ago. The web is literal and logical, a concept Rachel Andrew has championed for years in her work on fundamental web design. It’s about the separation of concerns—structure vs. style.
This experience was originally inspired by a similar story I read over at CSS-Tricks, and it’s a lesson every senior dev should revisit. We spend so much time debating build tools that we forget the browser just wants to know where the bricks go and what color to paint them.
So, What’s the Point?
The lesson here isn’t just about teaching kids. It’s about clarity. When your code is messy, your logic is usually messy too. Here are my three main takeaways from an afternoon with a five-year-old:
- HTML is the skeleton: If your structure is weak, no amount of CSS “makeup” will fix it.
- CSS is the skin: Keep it separate. Don’t let your presentation logic bleed into your structure.
- Simplify: If you can’t explain your solution to a non-dev, you’re probably over-engineering it.
Look, this stuff gets complicated fast when you add layers of logic and dynamic data. If you’re tired of debugging someone else’s “house” that feels like it’s held together by duct tape and prayers, drop me a line. I’ve probably seen it before and I know exactly where the bricks are loose.
How would you explain a “race condition” or a “hook” to a five-year-old? I’d love to hear your analogies.
Leave a Reply