I started programming computers in 1968. That means I have some experience in using machine code, assembly languages, high-level languages and interpreters, and systems programming. Unfortunately I stopped developing large projects around 1980, so I do not have experience with version control systems, advanced IDEs, APIs, SDKs and the like.
I do observe though that much is still the same as it was many decades ago: there is lots of debugging and testing, many "patches" and updates go out, and there seem to be just as many bugs around as at any time.
Certainly the quality of some software has improved, but even on the operating system side we seem not to have mastered the art of program correctness: viruses and hacking are still here, proof that designs are not as good as they should be.
In these few pages I will only touch on a few subjects, mostly as introduction for the non-programmers.
There is one exception: there is a longer article on the choice of programming languages and criteria for assessing their qualities. Programming language design was important to me while I was still professionally active, and it still gives high emotional response.
The subjects fall into two categories: general and examples of programs.