设计54张计算机科学卡片教会我的图形设计经验
What designing 54 computer science cards taught me about graphic design

原始链接: https://fhoehl.com/designing-algodeck

Algodeck 是一套由 54 张卡片组成的卡牌,旨在让计算机科学和数学思维模型变得易于理解且充满趣味。它摒弃了冗长晦涩的教材,将复杂的工程概念提炼为图文并茂、易于消化的卡片,从而激发用户的好奇心与自主学习的动力。 作为一名软件工程师,该项目的创作者通过编程——具体而言是使用基于 Python 的绘图工具 Drawbot——来设计这套卡牌。该项目将平面设计视为一套约束与变量的系统,凸显了编程与视觉传达之间意想不到的交集。其美学风格采用简约的红蓝双色调与基础几何图形,以此向二进制逻辑与包豪斯运动致敬。 在人工智能与屏幕学习主导的时代,Algodeck 提供了一种触手可及的替代方案。它既是教育工具也是解题锦囊,鼓励用户远离电子设备,通过物理媒介探索基础概念。归根结底,该项目向人们展示了:无论是通过代码解决信息问题,还是通过设计解决沟通难题,其背后对系统化思维的依赖始终如一。 欢迎访问 algodeck.com 探索这套卡牌。

所提供的文本摘录了 Hacker News 上关于用户 “marukodo” 所写博文《设计 54 张计算机科学卡片教会我的图形设计之道》的讨论。 该项目是一套以计算机科学为主题的卡片,在社区中反响不一。用户 ChuckMcM 对其设计表示赞赏,并表示有兴趣与创作者探讨设计过程。相反,用户 kfjeifjejfj 则提出了更为尖锐的批评。他们认为,作者关于“图形设计师拥有对数学和逻辑的内在理解”这一论断不仅是显而易见的,甚至缺乏洞见,并将其比作“人们理所当然认为程序员应理解逻辑”。该评论者还指出,这篇文章与其说是关于设计原则的科普,不如说是一次旨在展示该项目的自我推广。
相关文章

原文

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.

With the first prototype of the deck, all the cards had different scales. Some illustrations looked tiny; others looked large. It looked messy, but it was an exploration phase. For the second prototype, I selected the best parts I liked and crystallised them into a design system. To make things uniform, I divided the space into a grid. The size of a cell would dictate the sizing of everything, even the size of strokes. Using code for design lets you create variables and encode your design system’s rules. Defining rules and variables makes things easier by imposing constraints. A design system also means you don’t have to start with a blank page. You can pull shapes, colours and basic elements and begin from there. Play with them and see what happens.

For the visual language, I was drawn to simplicity, choosing a classic red-and-blue duotone. It echoes the binary system used by computers, while also paying homage to the Bauhaus movement and old French elementary school books. Primary shapes and colours appear throughout.

What tools did I use? Drawbot is a Python-driven graphic design tool. Fun fact: Drawbot was created by Just van Rossum, the brother of Python’s Guido van Rossum.

What about AI LLMs? When I started this project, none of that existed as mainstream tools. I designed and wrote everything myself, though I did use Grammarly to check grammar. Things have changed. I’m not sure I will start this project again, but I’m confident that Algodeck has an even more important role now: it’s about thinking outside the screen and taking the time to flick through some cards. Sure, you could prompt the LLM: “Give me the 54 things I should learn from computer science, maths, and engineering in short form (100 words for each topic).” It will regurgitate words that go well together to form sentences and do a good job.

Ultimately, Algodeck is a learning tool and a problem-solving kit. It helps people learn about computer science, develop new problem-solving skills, and change how they approach problems.

Want to check out the deck? It’s available at algodeck.com.

联系我们 contact @ memedata.com