There is a curious annual cycle in my life that arrives abruptly in autumn. It begins on the first truly crisp clear autumn day. You know the day — you step outside, take a deep breath, and find yourself flooded with back-to-school memories and recollections of the joy of learning new things. As the season progresses, I am gently urged by subconscious forces to go to the computer on an unhurried day, to construct in my head an abstract and imaginary landscape addressing some curious question, and to write some code.
It’s a peculiar urge acquired from years of professional code writing. When I was paid to do it, we called it programming, and the objectives were usually concrete and business related. Now I need to find new problem assignments on my own. It makes no difference if the work is practical or whimsical. Either works well. In the end I am rewarded for going deep into some imaginal realm and exercising my mind’s eye. And I am reminded of the joy of learning something new, because to dive into a problem or puzzle or picture, and code some aspect of it, whether seeking simulation or solution or something else, is to learn about it in a unique way, from the inside out. The results can sometimes be surprising. And the journey, often tedious, frustrating, and humbling. And for some reason it simply feels good.
I realize I am not unique in this. Also, this is nothing new. I remember back to the February, 1982 cover of Byte Magazine. The surreal scene showed an old-fashioned pot-bellied stove fueled by a roaring fire shown on a desktop computer (artwork by Robert Tinney). The subject was Winter Computing, conjuring an image of geeky coders from a bygone era, ensconced indoors at their desks, coffee at the ready, happily plugging away at their keyboards, performing their personal programming on their personal computers at a special time of year.
It’s difficult to pinpoint exactly why such recreational coding exercises feel good. Many super luminaries from the early days of programming have opined about the joy of programming1. Maybe it’s just the pleasure that arises from taking a foggy idea and hammering it into the abstraction of code. Diving deep into the flow of that kind of work reliably provides a few moments of mental focus and clarity. In the end, some mysterious interior resources are somehow replenished, and we feel like shouting, “Aha!”.
More precisely, like so much of human behavior, the motivation to code likely has its basis in brain chemistry. There are studies that suggest neuroplasticity works to change the brains of those who gain programming skills. The evidence may be thin, but they point to stronger cognitive functioning such as improved planning, logical structuring of problems, and perhaps maybe even better attention control2.
I certainly don’t pretend to be exceptional in any of these, but I can’t help but feel the years of coding have somehow improved my native abilities. And I use those abilities even on projects where coding is not a factor. When I work on creative pursuits, like music, video, and writing, those practiced thought patterns automatically come into play3.
Some writers refer to those kinds of thought patterns as “thinking skills”, but for my own part, I like to think of them as sensibilities; sensibilities that arise from the exercise of the genuine programming skills of structuring data and organizing logical operations. I make the distinction because sensibilities are stronger and distinct from mere skills. Skills can evaporate with the passing years, but the sensibilities remain, permanently ingrained like ancient etchings carved into the scrimshaw of our souls.
Among such sensibilities are:
- An appreciation that a big problem can be addressed in a series of incremental steps;
- An understanding that taking the time to care in the early stages of a project can save vast stretches of time in the later stages;
- A realization that sometimes “good enough” is a better solution than trying to achieve perfection;
- A sensitivity to the unintended consequences that can arise from small changes.
The list goes on.
Of course, these and other sensibilities can also be learned through practice at professions and skills other than programming. But as I think of my own lessons from decades of coding, I am struck by the notion that these are among the very attitudes and concerns often sorely missed from the decisions and processes that run the world.
In the USA, the craft of writing code took a big hit in the 80’s, 90’s and into the 21st century as increasingly more of that work was (and is) outsourced to coders in other countries. And now, as multiple AI tools become adept at producing useable code, the craft is again poised for another reduction. Much has been written about the impact of the AI revolution on these and other jobs. But it is also worth noting that, along with it go, not just the jobs, but also the sensibilities those jobs engendered. Perhaps in this new era, they will be replaced by new sensibilities. We shall see.
But this post is not meant as a lament. My final point is that, in addition to the time of year, Winter Computing can also refer to a time of life; a time when achieving a few moments of mental clarity can be a rewarding end in itself. So, if you are like me and find yourself in need of the occasional cognitive fitness exercise, you might want to find a few quiet moments on an unhurried day, pour yourself a cup of coffee, sit down at your electronic device of choice, and write some code. You just might have some fun. And you might also improve your brain, your life, and who knows? Maybe the world as well.
Notes:
1. Donald E. Knuth, “Computer Programming as an Art,” Communications of the ACM 17, no. 12 (1974).
Knuth: Computer Programming as an Art
Frederick P. Brooks, The Mythical Man-Month (Addison-Wesley, Anniversary Edition), Chapter 1, “The Joys of Craftsmanship.”
Edsger W. Dijkstra, “On the Cruelty of Really Teaching Computer Science” (1988).
https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html
2. Hishikawa et al., “Changes in functional brain activity patterns associated with computer programming learning in novices,” NeuroImage 273 (2023).
https://pubmed.ncbi.nlm.nih.gov/37474776/
Liu et al., “Code comprehension shares neural resources with formal logical reasoning rather than natural language,” eLife 9 (2020).
https://elifesciences.org/articles/58906
Siegmund et al., “Understanding understanding source code with functional magnetic resonance imaging,” Proceedings of the International Conference on Software Engineering (2014).
https://www.cs.cmu.edu/~ckaestne/pdf/icse14_fmri.pdf
3. The curious reader can find the products of my other creative efforts by searching their streaming portals for RKeithElliott.

There are many resources available to coders of all experience levels and objectives. Many are free. When I began this article I thought of including a list of links but I realized the reader is better served by running a search on their own. If you are curious and would like the most current information you might want to conduct your own search using a prompt or query such as:
“What are some good resources for people wanting to learn programming and gain coding skills as a recreational activity?”