Day 25

1 min readMay 17, 2021


If you can’t describe what you are doing as a process, you don’t know what you’re doing.

It’s easy to forget the high-level objective of programming: take some data, process it, and output it (or make it available for later).

All programs transform data, taking inputs and producing outputs, yet this is sometimes neglected in favour of actually implementing the code in the first place.

Today’s pages present a convincing argument for getting back in the mindset of thinking of programs as inputs being transformed into outputs: to clarify the structure, to make error handling easier, and to decouple components of the code.

By abstracting the smaller details in your program, it becomes much easier to focus on building solid and useful transformations instead:

“Sometimes the easiest way to find the transformations is to start with the requirement and determine its inputs and outputs. Now you’ve defined the function representing the overall program. You can then find steps that lead you from input to output. This is a top-down approach.”

And as the final tip closes off an insightful perspective, it’s important to remember that “Programming Is About Code, But Programs Are About Data”.

Thank you for reading, see you tomorrow!