I Love Code

Executability makes it possible to use computers to perform extensive experiments on ideas expressed in a programming language, and the lack of ambiguity makes possible precise thought experiments. -- Ken Iverson, Notation as a tool for thought

This quote from Iverson, and the notion of "Notation as a tool for thought" reflects something important in programming that I think makes coding so interesting and useful. Code can be used as a tool to experiment and explore ideas in a way that we really can't do through other means.

When I learn some new concept in computer, my ability to understand it is always improved by my ability to write it in code. Then it is only improved further when I can build on that code, implement it in some specific case or extend it. The fact that I can write it then execute it means I can easily and immediately test the validity of what I've written.

Code also serves as a tool for communication. It gives a common language that people can work with and it gives the tools to ensure that people use that language in a consistent way.

At the time of writing this in 2026 it is possible to generate code effectively with LLMs. This let's us forego notation and use natural language as a method to make computers do what we want. This improves the efficiency when the goal is to produce code and especially where natural language is more efficient than code in expressing something.

However, natural language is not always the most efficient. "The result of adding 27 and 15" is not more efficient 27 + 15. More importantly, writing in natural language does not require the same level of thought and does not offer the same opportunities that expressing an idea in code does. While natural language can be better for communication it cannot achieve the same level of precision in communication. You don't have to guess what someone meant when they write code, the computer can just execute it.

Code helps you think, code helps you learn. Never stop thinking, never stop learning.