I have recently attempted to bring back the programming skills I last used in 2002. I have done this first as part of my need to find a job. My employer, IBM, laid me off in February, having decided that my B.S. in Mathematics from Caltech and my Ph.D. in Computer Science from the Courant Institute of Mathematical Sciences (CIMS) of New York University, as well as my decades of experience, no longer justified my salary.
I have also done this to make good use of the spare time that is available while I am looking for work.
It has been in interesting and insightful experience. To wit, notwithstanding IBM’s decision to send me packing, I have found that with practice — as is the case with a musical instrument — one’s skills do come back, even at the ripe old age of 64. While programming may be a young person’s game, even geezer geeks such as myself can still code.
I have also come to appreciate that I did make a wise choice when I decided to abandon mathematics and become a programmer, for it turns out I am damn good at it, if I do say myself.
And even if you might not think I was still good at it, I still find it as much fun now as I did back in 1965, when I began using my programming skills to pay my way in the world.
More importantly, absence has indeed made my heart grow fonder. It has also given me new insight into the craft of programming itself.
I trace my first programming experience back over five decades, around 1959, when I was not yet fifteen. I had acquired a toy/toolkit that consisted of some switchboards, wires, lights, and a battery. It came with instructions showing how to assemble the components to build a simple circuit to play the game Tic-Tac-Toe, and I did so successfully. I also recall that a year or so previously I had read an article in Chess Review — though it might have been Scientific American — about how a computer program produced by Los Alamos Lab had been able to play chess on a small grid, say 5×5 instead of the 8×8 standard
To fully appreciate the Internet you have to be a programmer. This is especially so if you are, as I am, an open-source programmer.
To a first approximation, the Internet, or “the web,” is simply a grand and glorious sandox that we programmers use to ply our craft, sharing our work with each other. We apply the scientific method to the Art of Programming, all the while attempting to make coding as much fun for each of us as the work of our colleagues has made it fun for us.
All the rest is just a side effect of the fun we programmers share with each other. Google, Amazon, Yahoo, and all the other companies that make use of, and also in some cases contribute to, open-source are just bystanders. Some make money. A few make gobs of money, but that is their concern, not the concern of we programmers.
Simply put, the internet is all about open coding. All the rest is details. Those details matter to some, but not to us, for we code with — and for — each other.
This is not a small matter. It has taken over three decades to create the tens of thousands of software packages that collectively comprise what I call the “open-source artifact.” This work is freely available to all at no charge. To replace it would require the efforts of thousands of programmers working over decades, so the total value of the gift we open-source developers have made to society runs into the tens of billions of dollars.
Tens of billions of dollars of the best work we can do, freely available to all. I can think of no other profession save medicine, and science itself, that has made so valuable a gift, so we open-source developers can do more than smile when we think of all the fun we are having.
We can also pat ourselves on the back.
Not for long, though.
We all know we need to keep on coding.