Programming is in a niche in comparison to other hobbies / professions in that it is a creative process where you can repeat the experiment endlessly and without physical costs or destruction (assuming your code is not operating a robot or something in the physical world). Re-writing pieces of your code and re-running never fails to bring joy to me. Painting, carpentry, racing, etc; do not have an analogue. Producing digital art (music, for example), writing and tinkering with mathematics come close.
Researchers in chemistry and biology may enjoy a similar joy, but I assume it is much more difficult to re-run your experiment with slightly different ingredients. One aspect where these fields are leaps ahead of code is "code producing code": chain reactions are common in the real world and in fact, probably key to the whole thing.
My story is similar. I’ve been programming nearly every day for over 35 years and don’t see myself stopping any time soon.
Occasionally someone (usually at work) will ask “why do you know that?” or “how did you learn how to do that?” (where “that” is typically something outside of my direct job responsibilities).
I’ve been programming for so long and have dabbled or seriously worked with so many parts of the computing landscape - mostly out of simple curiosity and love of craft - that I admit to being somewhat annoyed at questions like this. I have trouble connecting with the premise.
But I don’t want to offend, and it’s not my place to judge when it feels like my interlocutor works in my field simply because the money is there. So I came up with a succinct way to answer those questions.
> Occasionally someone (usually at work) will ask “why do you know that?” or “how did you learn how to do that?”
This comes up a lot from business people, and I think at least one answer is because learning to program is a master class on how to break down a problem into actionable parts, while also considering as many failure and unexpected scenarios as possible. For many business jobs, that might be a full time job for one person who focuses only on one specific area. When someone trained in programming just “gets it” right away, it can be unnerving.
I think this is one reason there can be so many disconnects between IT and Business—the stuff IT does is just so magical they can’t understand it at all, and as a result don’t care if that magic comes from a local employee, an overseas one, or an AI.
My answer is typically “I read a lot”. Not untrue - if they read what I read they’d know what I know. I’m no genius (pretty dumb actually) but I do like researching and learning new stuff, mostly by reading.
Of course "how did you learn how to do that?" could come from a place of curiosity! There is too much in the programming landscape for anyone to even scratch the surface with their life's work.
This is the most common mistake engineers make. Code is not worth anything. Solving a user's problem, which they're willing to pay for (not just any problem), is what can be converted to wealth. The intersection of these 2 is very small, and very dense - since all engineers aim for it.
If you venture out of that region and try to discover and solve problems (and if needed use code/automation/tech), you have a surer chance of generating wealth.
I get paid to implement one very badly specified but important programming language in another programming language that is painful to use and rife with pitfalls even when used defensively.
But each year, there's Advent of Code, and I enjoy using pure functional programming to solve interesting problems in a minimal amount of code. It's fun and challenging, and reminds me of the magic that computers seemed to hold fifty years ago.
As a high school student in the early 70's I was allowed batch access to the Naval Postgraduate School 360/67 as part of an Explorer scouting program. On the first day, I was shown how to use the 029 keypunch (in itself an amazing machine), then the hot card reader, how to wait for your 1403 printouts, and where I could get some IBM self-guided tutorials to learn FORTRAN. I could come and go as I pleased. It was like being transported to another dimension, and I was hooked on programming for life. I still program almost every day.
Why I do programming, as a non professional programmer, is to make my life easier; to have the computer do my work for me. I program to automate manual tasks.
I've stitched disperate corporate systems that don't communicate together with autohotkey. I've used powershell to complete jobs in minutes that take other people hours. I've even used MS Access for data analysis.
As a non professional programmer I learn to use what I have access to, which you can likely see from some of the things I've used above, is not much and stuff you probably wouldn't chose.
However in my personal life where I can follow my interests I struggle with choosing which technologies to learn. I want to learn what's going to last, like SQL for example. An example might be when I went with dart and flutter for cross platform app development, despite it constantly being said that Google will abandon. There were just too many we'd frameworks to chose from, flutter seemed like a no brainer, and it's been pretty great.
This is a bit of a ramble so tl;dr, I learn was useful and hopefully long lasting.
For me, the reason I do programming, is the wonderful rollercoaster of feeling like a god in one moment, to feeling like a moron in the next. I think I kind of got addicted to that :D
Then trying to get drunk or laid took over and I only dabbled with it here and there. Got married, had kids, did other things and might as well say abandoned it.
For about the past 10 years I've been doing programming nearly every day.
I wish from circa 1993 to 2010 I had been more heavily involved with it than I was.
i remember when i was like 8, i used to take apart stuff like RC cars to see what's in them and if i can do anything else with them, and after i got into programming i felt like this is the best thing for me cause programming allowed me to do whatever i wanted, more than what can normally be done with computers.
As someone who also loves the act of programming, I find the idea of transitioning to using AI agents difficult. Not because they are better or worse at the job, but because it shifts me into a role of writing specs and shepherding robot monkeys with typewriters. I hope I'm wrong.
I also love programming. Out of curiosity (and possibly job stability) I've spent the past solid week building an app from scratch using Claude code.
I'm overall impressed with the result. There are things I might have approached differently, and there are things I would have gotten done much faster, but the result is more thorough than I might have done it.
I think what's most interesting is that I've never written specs to this level of detail before. I now have this series of project specs that hold every decision and consideration of this project written in plain english that's incredibly easy for any human to understand regardless of their ability develop software.
Whether or not I keep coding this way, I think this tool is incredible for figuring out exactly what to work on and how to approach it
I love programming and I love building things and these are two separate things.
I've been making a lot of stuff vibe coding, where I'm only talking to the agent about what I want to build, features and such. That's really cool but doesn't scratch the programming itch at all.
However you CAN talk to the agent about code. This is a lot slower to make things than talking about features. But if your goal is to make a codebase that's easy to work with and that you fully understand and have ownership of, you can talk to the agent about code instead of about features and then work with the output rather than just accept the output.
since i actually love the act of solving real-world problems by building programs (and not the act of programming itself), writing specs and shepherding robot monkeys with typewriters is an acceptable means to an end
This article resonated with me, another fellow pawn script, but I used to do mods in the old half life and counter-strike and some other hl mods.
Similarily I started from ms-dos, pascal from school and slowly went to the html part.
I had the impression that my programming desire just faded in time with so many jobs, but It might be what you described as burnout... who knows, but I learned something from this.
went on a walk through the park while meeting a dev from finland the other day, we both talked about how SecondLife, Gary's Mod, HL, minecraft, roblox, etc were all catalysts for us and our friends getting into programming aha. It felt really nice being able to tinker and experience new ways to play with friends.
I recall in third grade coming across a QBasic program on my families second hand 286 that could read from the mouse. I have no clue how it worked looking back. Convinced however that the ball mice at the time must use little generators rather than the optical encoder wheels they truly used, and knowing generators were also motors when used in reverse, I spent literal months trying to essentially write to the mouse so I could move the mouse around the desk and spook my friends.
This of course never worked out, and eventually I told my uncle who worked in IT what I was trying to do and he explained why it wouldn't work and we actually disassembled my Microsoft Bus mouse to see how it worked.
Despite my disappointment, I'd learned some things about computers and BASIC in the process and frankly I was hooked.
Here I am 30+ years later still looking for novel uses for things.
An example of passive voice would be “Why programming is done by me.” And of course no one would write that.
You may prefer “Why I program”, which is indeed more concise and straightforward. But that's a stylistic preference, not a difference between active and passive voice.
For a similar example, consider “Why I do science”. Here there isn't a convenient way to shorten it, but it's still active voice.
In general, for any X, “Why I do X” is active voice, and “Why X is done by me” is passive voice.
He probably didn’t fail at grammar in Spanish, his native tongue. Writing “why I do programming” in an ESL evaluation may get a few points docked off but unlikely to be grounds for flunking.
Researchers in chemistry and biology may enjoy a similar joy, but I assume it is much more difficult to re-run your experiment with slightly different ingredients. One aspect where these fields are leaps ahead of code is "code producing code": chain reactions are common in the real world and in fact, probably key to the whole thing.
reply