Algodeck

Algodeck logo: a blue triangle next to a red vertical rectangle.

A field guide to problem solving

You don't know where to start. Tired of indecisions. Learn algorithms, data structures, and mental models for a simple life.

Projects, tasks, odds and the casino

An introduction to PERT and stochastic project estimation.

Data compression and the meaning of Life

How can you compress a file without losing any details? Magic? The secret is to look for patterns, repetitions and predictability. Let’s dive into entropy, information and Huffman coding.

How to debug oneself

Keeping notes and reflecting on your work and actions is key to becoming a better developer and problem solver.

How to approach a coding problem

There is no obvious place to start when attempting to solve a problem. Here are four approaches that will help.

No bugs & problems; you might be doing your job wrong

Bugs make us better developers. They help us grow and ameliorate the fruit of our work. Why not actively welcome them?

What is the best word to start a game of Wordle

How can we use statistics to give us an edge at playing Wordle

Being a pessimist is not such a bad thing

How can the Stoics help us become better engineers? Learn two practices that will upgrade your well-being and the quality of your work.

When easy is not enough

What is the difference between easy and simple? Form and effort dictate our relationship with objects and interfaces.

How to create generative designs with a genetic algorithm

Play god by learning how to create a basic genetic algorithm and making some generative art.

Good for what ails you: beyond symptomatic fix

What hides behind a simple bug fix? Tools and techniques to think beyond symptoms.

Want to be more creative? This pattern will teach you a trick or two.

One afternoon I was doing some research for an illustration I had in mind. What I learned that day will stick with me.

How to solve a business problem with dynamic programming

Learn how to use dynamic programming with this funny story. What is the best way to cut a baguette to make the most profits selling sandwiches? Can some computer science help our baker?

Mental models for developers — finding solutions

Mental models are shortcuts that you can use to think differently about a problem. They are an excellent tool to add to your developer’s toolbox. Learn 15 mental models that will help you find answers to tricky problems.

How to engineer your luck

Have you ever wondered how many time you should try something before getting a positive result? Read this to learn how to engineer your luck and minimize your effort.

What is the best way to ship code to your users? Frameworks, patterns and recipes

Learn the differences between frameworks, patterns and recipes to create better abstractions.

Simple simulation of birth and death

How to simulate life with maths? Learn how to use the Poisson distribution to create a simple JavaScript simulator.

Keep in touch

Join the 60+ readers who grow their problem solving skills. Receive an email every 2 weeks packed with tips, and guides on computer science.