Recovering from a bout of gastritis working at home last week, I had a moment of wonder when I finished a bit of code that seemed elegant and thought "how amazing is it I can write a few words and symbols and all sorts of wondrous behavior happens".
I've been programming since I was 16 (nearly 39 years) and sometimes it still gets me how I can create something out of nothing and make some electronic device do something it could never do before. Write some text and millions of people can now do something they've always wanted to do but also couldn't before.
Not only that but everything I do is built on the works of thousands of other programmers and designers over the years, each toiling on some little bit of text that by itself might not be all that exciting, but combined with all those others became something extraordinary. All those days of pushing text, debugging it and making something happen, all stacked up on even earlier days. Sometimes we take it for granted, but programming has always been a group effort even when you work by yourself.
When everything breaks, your nice code falls apart, your every attempt to make things right makes things more left, programming can seem to be a terrible profession. Every useless meeting, ridiculous process or random major changes in requirements makes you wish you were a mattress tester instead of writing more code tomorrow. Yet what other vocation lets you create something from nothing? Control electronic machines that otherwise would be paperweights? Create delight in people you don't even know?
As I wrote one line of code I took a moment to wonder at how such a little bit of text could trigger so many things. I requested memory and some complex bit of software provided it (I know, I've written a commercial memory allocator) without my even thinking about it. I managed to get multiple processors working on my behalf without having a clue how the system's process management decided on how to handle my request. Data from a distant server came and was captured and presented to my code to fulfill some earlier request. Did I have anything to do with powering up a radio or managing a battery or keeping everything in sync?
Someone did all of that so that I could write my code and be amazed at how easily it all came together. If you stand back, that's freaking amazing stuff. No matter what language I write in, framework I use, OS I run on, or however I do this programming thing, ultimately a whole bunch of other people's work made my code function. I didn't have to do everything myself. I didn't have to be an expert in everything. My line of code was carried on by the work of thousands of others. It will likely be used by future programmers in some way. Untold people might take advantage of that little bit of functionality without having the slightest inkling of how it was done.
Today we take for granted how things work (and sometimes sadly fail as well). I still remember how little knowledge and documentation we had, how sad the tools were, how small and slow everything was but everything today came from then. I remember the two "old guys" at my first job (General Dynamics), who I am sure were my age today, remembered when programming for them involved wires. Go back even further and even the idea of a computer that could do simple math was amazing.
All we are today is built on that past work, and everything we write is a tiny tip of a huge iceberg. If someone had shown me the programming world of today back in 1981 I would probably have switched careers as there is no way I would have believed the complexities of being a working programmer today. Yet basically the job is the same, we write text and symbols, and then magic happens. Today the magic is bigger, faster, stronger and has to be done much quicker but it's still an amazing result of a few keystrokes.
Few other professions allow you to create new universes every day, have godlike powers of control over machines, change the world and do it all from your comfy (or not) chair.
So take a moment to think about the wonder that is programming the next time you see something you just wrote that is just right. I have no clue what programming will be like in 30 years or if it will still exist, but if it does I hope the programmer can still take a moment and realize what a treat it is to be one.