Skip to content
DevMeme

Calvin's Dad's Taxonomy: All Programming Projects Are Either Math or Files — Meme Explained

Calvin's Dad's Taxonomy: All Programming Projects Are Either Math or Files
View this meme on DevMeme →

Level 1: The Kitchen and the Pantry

A dad tells his kid there are only two kinds of jobs in a restaurant: cooking and carrying boxes. Fancy chef? Cooking. Delivery guy? Boxes. Then he points at the most glamorous job of all — the cake decorator, the one with all the artistry — and says: "Mostly boxes. She spends her day unpacking sprinkles and finding the right-sized containers." The kid lies awake that night because he can't prove dad wrong. The joke is that the flashy, brainy-looking work everyone admires usually turns out to be mostly moving stuff from one container to another — and once someone tells you that, you see it everywhere.

Level 2: Sorting the Buckets

What each classification in the strip actually means:

  • Compilers → math: a compiler transforms source code through parsing, type checking, and optimization — work governed by formal language theory and graph algorithms. The "interesting" problems are provable properties, not I/O.
  • Databases → files: under the SQL surface, a database's core job is arranging bytes on disk so reads are fast and crashes lose nothing. Storage engines, indexes, and logs — all file plumbing, elevated to an art.
  • Machine learning → math: training is calculus (gradients) and linear algebra (matrix operations) at scale. Though ask any ML engineer how much of their week is actually data_loader.py.
  • Operating systems → files: Unix's founding slogan is literally "everything is a file" — devices, sockets, processes all exposed through file-like interfaces. The dad is quoting kernel design philosophy whether he knows it or not.
  • Computer graphics → files: the twist. Yes, it's built on geometry and matrices — but day-to-day graphics work is importing, converting, compressing, and streaming assets: models, textures, animations. Formats, not formulas.

The early-career version of this discovery: you join a game studio expecting to write shaders, and your first six tickets are about why the texture importer mangles file paths with spaces in them.

Level 3: The Asset Pipeline Ate the Linear Algebra

The edited Calvin and Hobbes strip has the dad announce a complete taxonomy of software engineering: "The two types of programming projects are math and files. All programming projects fall into these two categories." Then come the sorting rounds, exactly as printed in the panels: "Languages/compilers? Math. Databases? Files." — Calvin manages a wary "YEAH..." — then "Machine learning? Math. Operating systems? Files." And then the kill shot that puts Calvin wide-eyed in bed in the final panel:

Despite containing more math than almost any other type of programming project, computer graphics is usually files.

Anyone who has shipped a renderer feels this in their bones. The idea of computer graphics is gorgeous mathematics — projective geometry, quaternions, the rendering equation, BRDFs. The job of computer graphics is a customs office for data formats: glTF importers, texture compression variants (DXT, ASTC, BC7), shader permutation caches, mesh serialization, mipmap baking, endianness, alignment padding, and the eternal question of whether this particular PNG exporter premultiplied alpha. The matrix multiply is three lines and was written in 1998; the asset pipeline is the other 97% of the codebase and breaks every time an artist upgrades Blender.

The taxonomy is funny because it's secretly a statement about where engineering effort actually goes versus where prestige lives. Compilers get to be "math" because their hard part is the type system and optimization theory, even though they too end with object file formats. Databases are "files" because, beneath the relational algebra (math!), the defining battles are B-trees on disk, write-ahead logs, fsync semantics, and page layouts — the parts that page you at 3 AM are always the file parts. Even machine learning, sorted confidently into "math," spends most of its practitioners' hours wrangling datasets, checkpoints, and tensor serialization. The dad's framework survives every counterexample by reclassifying it, which is exactly how all grand engineering taxonomies work in practice — unfalsifiable, irritating, and correct just often enough to keep you up at night. Hence panel four: the canonical Watterson existential-dread frame, hair on end, model of reality quietly rewritten.

Comments (9)

  1. Anonymous

    Twenty years of graphics programming and the dad is right: the matrix multiply is three lines, the texture format loader is thirty thousand

  2. Anonymous

    The renderer solves billions of equations per second, then outputs magenta because `albedo.png` moved.

  3. @vlonedevller

    And

  4. @nwordtech

    Boring ahh nothing burger last 2 memes

  5. @deimossos

    Yay meme I stole from bluesky

  6. @Art3m_1502

    And files are math

  7. @Art3m_1502

    It's all math

  8. @Art3m_1502

    Until it's just a mess

  9. @vladfaust

    I like this file, thank you for sharing!

Join the discussion →

Related deep dives