Having a Creative Practice as a Programmer
The author opens by asserting that programming is inherently artistic — a program serves both as executable code and as "an artifact shared with other humans" whose source code can be appreciated for its beauty, style, and intent.
They contrast how programmers have optimized intellectual collaboration through tools like JIRA, Scrum, pull requests, and code reviews, arguing that "we have lots to learn from artists" regarding what the author calls "creative practice."
Creative practice is defined as "the act of continuously working on one's art" — encompassing craftsmanship, studying other artists, developing personal style, risk-taking, reflection, and even workspace organization.
Lessons from Drawing and Music
The author describes a lifelong interest in both computers and the arts (drawing, music) that didn't fully materialize until age 30, when they pursued drawing through early online classes. Key lessons included that "quantity trumps quality," carrying a sketchbook everywhere, and that even accomplished veterans practice fundamentals like drawing lines and ellipses.
This revealed that "there can be a separate track within one's career that runs parallel to one's 'productive output.'" Using a painter working on a grand painting as an example, the author notes the painter also sketches daily, studies colors, paints studies, and maintains tools. The point: "you are an artist because every day you work on your art."
After years of sketchbooks, the author found greater resonance with music, referencing a prior article whose core insight is that "it is the act of adopting a creative practice, in all its mundanity, that finally made me a 'real' musician."
What Is a Creative Practice?
The author lists several key characteristics:
A creative practice is a habit — ideally daily, with time-boxing (e.g., two pomodoros before work) as a useful technique.
It's more about practice than results. The pressure to create something good leads to burnout. The author deliberately creates terrible things because "nothing is worse than making something good and then trying to replicate that success."
It's time dedicated to your art. The advice to "always make music" means stopping or shifting direction if frustration sets in. The author gives the example of wanting to learn Rust but feeling frustrated — in that case, switching to JavaScript, reading a Rust book, or practicing typing speed is better than grinding through misery.
It's a way to explore your craft. This is time for experiments and techniques you'd never use professionally. "Everything you do is valuable, but nothing you create is of value." The author notes they lost this experimental mindset over 15 years as a professional and are slowly recovering it.
Across drawing, music, and programming, letting go of results and embracing messiness "unlocks my inner creativity."
It's often deliberate practice. The author cites a drawing course that began every session with warm-ups drawing lines, ellipses, curves, and simple 3D shapes. They parallel this with practicing tools like vim movement, keyboard macros, and window navigation, arguing that velocity at the computer is "fundamental to the quality of my cognition as a programmer."
Quick studies are essential. Borrowing the term "studies" from a Recurser colleague (originally called "software prototypes" by the author), a study focuses on one element and is meant to be throwaway. In programming, this means building prototypes that sidestep full infrastructure — using hash tables instead of databases, function calls instead of HTTP APIs. The author warns: "We are often overly precious with our source code," when we should "try and try again until we finally understand what we want."
Creative practice doesn't need to be creative. Much of creative work involves problem-solving, iterative improvements, and organizational tasks — cleaning brushes, untangling cables, renaming files. For programmers, this means tasks like emptying your inbox or upgrading credential management. The time spent on pedestrian tasks "is that much time you will have won" later.
A creative practice needs reflection. The author emphasizes keeping artifacts from practice to compare work across weeks, months, or years. For programmers, this means preserving digital artifacts through changing formats. One solution: "keep a diary or a blog and record what you worked on" since writing "is such a potent catalyst for thought."
Keeping a Creative Practice as a Programmer
The author is still exploring what this looks for them. They know it is not working on an open-source project in spare time, which is "too big of a project" requiring commitment and sustained effort, akin to "rendering a painting" — known work that still takes time.
Instead, over the last two years they've focused on exploratory software work: many small JavaScript snippets (noting that JavaScript "unlocks a creative dimension in my brain"), tweets, Slack musings, Obsidian vault entries, blog posts, reading books, and practicing IDE shortcuts.
They conclude that while they've done such things all their life, they've never done them "in such a consistent manner, focused yet devoid of expectations," allowing them to rekindle passion and "develop and refine an underlying artistic vision" of their journey as a programmer.