January 25, 2025
I wrote this essay in response to my friend's tweet. This version is also my first draft.
When I am programming I think of myself as doing either one of two things: designing or implementing. Designing is when I encounter a technical problem; I mean the “problem” with the same connotation the word has in the phrase “mathematical problem”. But implementing is just grunt work. It involves implementing a solution in code. Programming is fun the more I am able to design, and the less I have to implement. Sometimes, projects have only to be implemented and are not at all about designing. Like making a website according to some strict specification. This is a chore. It is just mentally intensive enough to be a pain and not interesting enough to be considered fun. I will have to type the characters on the screen to make my chore go away. I enjoy programming the more I get to design. It's cool that I don't have to center my divs anymore.
Examples of technical problems I enjoyed: