Learn the basics of web development with unforgettable tutorials

Fully understand JavaScript and CSS concepts using memorable analogies and imagery. Eliminate hours of trial and error and guessing.

Give your brain the explanations it deserves!

Over 400,000 people have used CodeAnalogies. I try to release a new guide every week. Want to hear about it first?

Basic web development lessons that use analogies to make new concepts simple

Each tutorial includes images, diagrams and text that explain common coding challenges in a refreshing (and unusual) way

Web Dev Concepts

Web Development Is Hard

At CodeAnalogies, we optimize our tutorials for understanding . What makes each web development topic unique?

Most tutorials include the following steps:

  1. A high-level analogy to real-world concept
  2. Diagrams that tie the real-world to the code
  3. A few examples using actual code

CSS Tutorials

CSS Basics


CSS Positioning Explained by Building an Ice Cream Sundae

Box Model

The CSS Box Model Explained by Living in a Boring Suburban Neighborhood


CSS Display Explained by Packing a Suitcase


CSS Flexbox Explained by Roadtripping across the Country


CSS Floats Explained by Riding An Escalator


CSS Selectors Explained by Going Car Shopping


CSS Specificity Explained by Hopelessly Shopping for New Clothes

JavaScript Tutorials

Javascript Basics

The Very Basics

JavaScript Syntax Explained by Directing a Construction Site


JavaScript Variables Explained by Loading A Truck


JavaScript Booleans Explained By Going to Court


JavaScript Functions Explained by Making A Recipe

Arrays and Objects

JavaScript Arrays and Objects are Just Like Books and Newspapers

For Loops And More

For Loops Explained by Running a Factory


JavaScript Callbacks Explained Using Minions

MVC Frameworks

Model View Controller Explained by Ordering Drinks at the Bar

Key JavaScript Concepts


AJAX Explained By Working In A Fast Food Restaurant


JavaScript Promises Explained By Gambling At A Casino


JavaScript Closures Explained by Mailing a Package


Scoping Explained Through Multiple Levels of Government

Map() Method

Map() Method Explained by Going on A Hike

Filter() Method

Filter() Method Explained by Applying to College

Reduce() Method

Reduce Method Explained By Going On a Diet

Traversing The DOM

Traversing The DOM Is Just Like Creating Your Personal Schedule

The Concept of "This"

JavaScript's "this" Explained by Starting a High School Band

Apply, Call and Bind

Apply, Call and Bind Explained by Hosting a Cookout

Popular JavaScript Frameworks

D3.js Basics

Learn D3.js by Planting a Vegetable Garden

React Props/State

Props/State Explained Through Darth Vader’s Hunt for the Rebels


Express Basics Explained by Running a Restaurant

JavaScript Dev Tools

Basic Dev Tools (Module Bundler, Package Manager)

JS Dev Tools Explained By Cooking In a Restaurant Kitchen

How The Web Works


HTML, CSS and JavaScript

The Relationship Between HTML, CSS and JavaScript Explained by Building A City

File Directories

File Directories Explained by Getting Dressed in the Morning

Dev Tools

Browser Developer Tools Explained By Training To Become a Chef

Front End v. Back End

Front End v. Back End Explained by Starting a Microbrewery


Localhost Explained By Starting A Microbrewery

Web Servers

Web Servers Explained By Running A Microbrewery


Web Caching Explained by Buying Milk at the Supermarket


Web APIs Explained by Selling Goods From Your Farm

Amazon Web Services

Amazon Web Services (AWS) Explained by Operating a Brewery


Webhooks v. APIs Explained by Selling Seasonal Produce At Your Farm


Blockchain Explained by Trying to Pass High School Math Class


Internet Cookies Explained by Taking Your Kid to the Doctor's Office

SQL Tutorials


SQL Basics

SQL Tables Explained by Voting in the Infamous 2016 Election

Git Tutorials

Git Basics

Git Basics

The Basics of Git Explained by Designing a New Car


Hi, I'm Kevin! I taught myself web development over the last couple years on nights and weekends. It was...challenging.

There had to be a better way to teach code than endless videos, blog posts and practice problems. I started studying cognitive psychology, and I realized that analogies and imagery make complex topics much easier to understand.

I wrote the first tutorial in March 2016, "Javascript Callbacks Explained Using Minions". It did over 5000 views, and I knew I was on to something.

Since then, the tutorials have done over 400,000 views. Now, I am trying to create a new way to teach web development

Want to chat? Email me at kevin (at)