Article URL: https://fhoehl.com/designing-algodeck Comments URL: https://news.ycombinator.com/item?id=48923209 Points: 24 # Comments: 10

Graphic design solves a communication problem, and software engineering solves an information problem. For many, the world of computer science is a “black box”—dense, abstract, and hidden behind screens. But for me, it is a world of elegant structures and creative problem-solving. With Algodeck, a physical deck of 54 cards featuring bold illustrations and short descriptions, I want to distil computer science and mathematics into an accessible form that makes essential skills and a handful of mind-changing mental models easier to understand. Algodeck is a collection of my favourite algorithms, data structures and mental models, brought together to make computer science easier to explore. They are things I learnt at university and on the job as a software engineer. The cards range from informational to prescriptive. For example, one of the cards advises: “Instead of thinking about what to do, consider what to avoid doing. Oh, and taking a walk is quite good, too!” My vision was to distil complex knowledge into a short, accessible form, so readers could stumble upon something that interests them. The deck breaks away from traditional, linear, dense textbooks on the subject. Following your own path while learning is key. Sometimes a card will feel cryptic, but if it leads someone to search for more information and learn something new, my job is done. When deep into a project, there is always more to learn. I’m a software engineer by trade, but I used this opportunity to learn the fundamentals of graphic design. I blended my love for coding and logic with graphic design to create all 54 illustrations using code. I used the tool of my trade: code. For me, it felt natural, more natural than opening up Illustrator and clicking around. I could change things like the colours or stroke widths of all the cards at once, which helped me quickly test different options. Using code also gave me constraints, which helped me a lot. This project showed me that computer science and graphic design have more in common than you might think. Both solve problems: graphic design solves communication problems, and software engineering solves information problems. In both disciplines, practitioners start by building systems to solve those problems. Graphic designers are often well-versed in mathematical and logical concepts, sometimes without realising it. Deciding on a type scale or dividing a grid requires mathematical thinking. Often, we use concepts like the golden ratio to rationalise our layout choices. Gerstner’s famous book Designing Programmes (1964) is a manifesto for system-oriented design, inspired by the rise of computer systems in the ’60s. More recently, Flexible Visual Systems by Martin Lorenz introduced us to the idea of creating design systems that can be reused and combined to create communication solutions. I found this systems-thinking approach useful for this project because I had the challenge of designing 54 cards with a consistent style and scale.