







Programming as Theory Building - Peter Naur · GitHub
Programming (with AI agents) as theory building
Back in 1985, computer scientist Peter Naur wrote “Programming as Theory Building”. According to Naur — and I agree with him — the core output of software engineers is not the program itself, but the theory of how the program works. In other words, the knowledge inside the engineer’s mind is the primary artifact of engineering work, and the actual software is merely a by-product of that.

Programming as Theory Building: Why Senior Developers Are More Valuable Than Ever
Peter Naur's 1985 theory of programming explains why experience matters more in the age of AI-generated code

Andrew Blinn
I use programming language theory as a lens on UI design, trying to make engagement with abstractions more fluid, tangible, and fun

GATlab: Modeling and Programming with Generalized Algebraic Theories
Categories and categorical structures are increasingly recognized as useful abstractions for modeling in science and engineering. To uniformly implement category-theoretic mathematical models in software, we introduce GATlab, a domain-specific language for algebraic specification embedded in a technical programming language. GATlab is based on generalized algebraic theories (GATs), a logical system extending algebraic theories with dependent types so as to encompass category theory. Using GATlab, the programmer can specify generalized algebraic theories and their models, including both free models, based on symbolic expressions, and computational models, defined by arbitrary code in the host language. Moreover, the programmer can define maps between theories and use them to declaratively migrate models of one theory to models of another. In short, GATlab aims to provide a unified environment for both computer algebra and software interface design with generalized algebraic theories. In this paper, we describe the design, implementation, and applications of GATlab.

Algebra of programming
Algebra of programming by Bird, Richard, 1997, Prentice Hall edition, in English

Reflections of an "Old" Programmer - Ben Northrop
Framing our programming careers in terms of knowledge accumulation and decay can yield some interesting insights.
Programming Language Foundations in Agda – Table of Contents
This book is an introduction to programming language theory using the proof assistant Agda.
Let’s explore the universe of programming resources together
by Quincy Larson Let’s explore the universe of programming resources together There are a lot of free programming resources out there. Here’s a list of more than a thousand free programming books. Here’s a list of hundreds of free online university c...

Co-creating with emergent processes ✦ Hijinx World
Existential musings over algorithmic design with creative programming legend Dan Tapper.


Elements of Programming
After ten years in print, our publisher decided against further printings and reverted the rights to us. Elements of Programming is now available in two forms: a free PDF and a no-markup paperback.
Practical Foundations for Programming Languages
Motivating Adult Learners by Introducing Programming Concepts with Scratch
Novice programmers usually fail to combine abstract concepts and knowledge into program design, even though they know the syntax and semantics of individual statement. Adult novice programmers with little computer background knowledge might face more ...

Category Theory for Programmers: The Preface
Table of Contents Part One Category: The Essence of Composition Types and Functions Categories Great and Small Kleisli Categories Products and Coproducts Simple Algebraic Data Types Functors Functo…

Kanjun 🐙 on Twitter / X
Hiring and firing a DBA

LLMs and performative productivity

Collaborative AI Engineering: One Dev, Two Dozen Agents, Zero Alignment — Maggie Appleton, GitHub

We are Changing our Developer Productivity Experiment Design

Agents want flexible schemas