Teaching Code to Non-Programmers

Art of Technical Translation

Ken's Programming Musings #27

Yesterday, my neighbor Sarah knocked on my door with a question that made me pause: "Ken, I keep hearing about APIs everywhere, but what heck is one? Everyone acts like I should know, but it feels like they're speaking another language."

As I stood there, looking at her genuinely confused expression, I realized something profound: we programmers have built an entire universe of concepts that feel natural to us, but might as well be alien hieroglyphs to everyone else. And more importantly, it's our responsibility to build bridges between these worlds.

Great Translation Challenge

Programmer's Perspective

function fetchUserData(apiEndpoint) {
  return fetch(apiEndpoint)
    .then(response => response.json());
}

To us, this is poetry. Clean, efficient, purposeful.

Non-Programmer's Reality

"What's a function? What's an endpoint? Why are there so many dots and parentheses? This looks like math had a collision with alphabet soup..."

To them, this is hieroglyphics requiring a Rosetta Stone.

Bridge-Building Moment

Standing on my porch with Sarah, I realized that effective technical translation isn't about dumbing things down—it's about finding right conceptual bridges that connect her existing knowledge to new technical concepts. It's about empathy, patience, and remembering what it felt like before these ideas became second nature.

Art of Finding Right Metaphor

Here's what I've learned from years of explaining code to curious neighbors, family members, and that one brave soul who asked me what I do at parties: best technical explanations start with what people already understand and gently build bridges to new concepts.

APIs = Restaurants

You don't need to know how kitchen works. You just order from menu, and food appears.

Variables = Labeled Boxes

Each box has a name and holds something inside. You can peek in, change what's inside, or use what's there.

Functions = Recipes

You put ingredients in, follow steps, and get a predictable result every time.

Sarah's API Lightbulb Moment

When I told Sarah that an API is like a restaurant menu—she doesn't need to know how kitchen works, she just needs to know what to order and how to ask for it—I watched her face transform.

"Oh!" she said, "So when I ask Alexa for weather, I'm basically ordering from a weather restaurant, and she brings me back exactly what I asked for?" Exactly. And suddenly, APIs weren't mysterious anymore.

Empathy Factor: Remembering Your First Time

ADHD Advantage in Teaching

Here's something unexpected: my ADHD brain, with its tendency to make random connections and see patterns everywhere, actually makes me a better technical translator. While others might explain linearly, I naturally jump between concepts, finding surprising bridges that often click for people in ways traditional explanations don't.

Beginner's Mind Exercise

Before explaining any technical concept, I try to remember: What was I confused about when I first encountered this? What assumptions was I making? What background knowledge was I missing?

❌ What I Used to Do:

"A loop iterates through a data structure until a condition is met."

âś… What I Do Now:

"A loop is like asking someone to count sheep until they fall asleep—keep doing same thing until something changes."

key insight? Technical empathy isn't just about being nice—it's about genuinely understanding where someone is starting from and meeting them there. My INTP-F nature helps here; I naturally want to understand how someone else is processing information, not just dump my knowledge on them.

How Teaching Others Deepens Your Own Understanding

Here's something I didn't expect when I started explaining code to non-programmers: it made me a better programmer. Not because I learned new syntax or frameworks, but because it forced me to understand concepts at a deeper, more fundamental level.

Before Teaching Others

  • I knew how to write functions
  • I understood they took inputs and returned outputs
  • I used them effectively in my code

After Teaching Others

  • I understand functions as abstraction mechanisms
  • I see how they mirror human problem-solving patterns
  • I appreciate their role in making complex systems comprehensible

Feynman Effect in Action

When I had to explain recursion to my curious uncle (a retired carpenter), I couldn't just say "a function that calls itself." I had to think: What does he already understand that works similarly?

breakthrough came when I compared it to Russian nesting dolls: each doll contains a smaller version of itself, until you reach tiny one in center that can't be opened further. That base case, that stopping point, suddenly made perfect sense—and helped me understand recursion more deeply than any computer science textbook ever had.

My Practical Translation Toolkit

Over years, I've developed a few go-to strategies that consistently help bridge gap between technical concepts and everyday understanding. Here's my toolkit for fellow translators:

Start With Their World

Before diving into technical explanations, I ask: "What do you do for work? What are your hobbies?" A teacher understands lesson plans; a gardener understands growth cycles; a cook understands recipes.

Example: Explaining databases to a librarian? "It's like a catalog system, but instead of index cards, we use digital records that can be searched and sorted instantly."

Build in Layers

I never try to explain everything at once. Instead, I build understanding in layers, each one adding to previous foundation without overwhelming.

Layer 1: "A website is like a house"
Layer 2: "HTML is like frame and walls"
Layer 3: "CSS is like paint and decoration"
Layer 4: "JavaScript is like electricity that makes things interactive"

Use Their Language

I pay attention to words they use and mirror their communication style. If they're visual, I draw diagrams. If they're hands-on, I find physical analogies.

Pro tip: When someone says "I'm not good with computers," I know they need extra reassurance and slower pacing. When they say "I'm curious how this works," I can dive deeper into mechanics.

Check for Understanding

most important part: I regularly pause and ask, "Does that make sense so far? What questions do you have?" Understanding is a two-way street.

Red flag: When someone nods along without asking questions, they're probably lost. Time to back up and try a different approach.

Ripple Effect: Why This Matters Beyond Code

Teaching as an Act of Service

Every time we successfully translate a technical concept for someone, we're not just sharing knowledge— we're democratizing access to understanding. We're breaking down barriers that make technology feel exclusive and intimidating.

Building Bridges

Each successful explanation creates a bridge between technical and non-technical worlds.

Inspiring Curiosity

Good explanations don't just inform—they inspire people to ask more questions and explore further.

Creating Advocates

When people understand technology better, they become advocates rather than adversaries of progress.

Sarah Update

Three weeks after our API conversation, Sarah texted me: "I was at a work meeting today, and someone mentioned integrating with a third-party API. Instead of zoning out, I actually understood what they were talking about! I even asked a good question about rate limits. Thanks for restaurant metaphor—it's still helping me understand new things."

That's ripple effect in action. One good explanation creates lasting understanding that continues to serve someone long after conversation ends.

Coastal Reflections on Translation

Standing on Oregon Coast, watching waves crash against rocks and slowly shape them over time, I'm reminded that good technical translation works same way. It's not about forcing understanding through overwhelming explanation—it's about patient, persistent clarity that gradually shapes comprehension until complex ideas feel natural.

Lessons from Tide Pools

best tide pool exploring happens when you move slowly, look carefully, and point out interesting things to your companions. Rush through, and you miss beauty. Move too fast, and you scare away creatures you're trying to observe.

Technical teaching works same way: slow down, look for interesting connections, and give people time to absorb wonder of what they're discovering. goal isn't to show them everything you know— it's to help them see beauty in what they're learning to understand.

Building Bridges, One Explanation at a Time

Teaching non-programmers about code isn't just about sharing knowledge— it's about building bridges between worlds.

It's about empathy, patience, and profound satisfaction of watching someone's face light up when a concept finally clicks. It's about remembering that every expert was once a beginner, and every beginner deserves a patient teacher.

Next Time Someone Asks...

next time someone asks you to explain a technical concept, remember: you're not just answering a question. You're potentially opening a door to a whole new world of understanding. You're building a bridge between technical and human.

Take a deep breath, find your metaphor, and start building. view from other side is worth effort. 🌊