About Us

James and Dana Gray have been educating programmers all over the world for the better part of two decades. Between them, they have taught corporate trainings, college workshops, conference trainings, and private lessons. Both have been active in the tech conference circuit as speakers and organizers.

When they aren't hanging out with 800 of their closest nerd friends, they are battling it out over their favorite board games, working logic grids, and solving crosswords. Their daughter tells them they spend way too much time thinking about the processes needed to get the onion soup ready in Overcooked.

What We Believe

1. Syntax is the Easy Part

A lot of programming education is centered around language details like syntax. While programmers obviously need to know this, the languages of compilers are very small compared to spoken languages and they represent only a portion of what's needed to write code. We round out our lessons with problem solving, visualizations that lead to understanding, metaphors, and exploration of the unknowns.

2. Examples Matter

Crack open a middle school math book and you may see, "Juan decides to arrange his straws into an equilateral triangle…" No he doesn't. We know that. You know that. Juan knows that. Even when we use goofy problems about chasing animals through ASCII art pipe mazes, we go out of our way to zero in on the aspects of the solution that apply to the real work programmers do. We have actually opened our lessons and followed the instructions to do our work in our day jobs.

3. Train Fluency, Stay Scrappy

Carpenters, swimmers, and NASA astronauts all train to succeed in their chosen career. Programmers need the same attention. We have to practice modeling data structures, debugging numerous mysteries, and exploring the universe of algorithms. Each new programming task is a mini world of its own filled with a new set of laws that we must interpret and use to our advantage. We always have to be ready for anything.