A Source of Bad Software
I used to joke (good news/bad news) that anyone could program. Not true. If you’ve mastered algebra or trigonometry, you can probably program. Learning (books, courses, degrees, etc.) may be all you need to be hired.
The big question is how well you program. Employers may say they want experience but they settle for cheaper, and plentiful, beginners. However, there is a huge difference between entry level programmers and advanced proficient practitioners.
I keep asking, who writes all this bad software? Now I realize that’s the wrong question. The demand for programmers is so great, they must come from the masses attracted to mass media.
Look at what’s popular in movies, video games, music, and television. It’s mostly fast moving, loud (let’s add more, bigger explosions), and full of superficial CGI.
Since this is what most people like, then this is the kind of software they will write. Their computer screens may be impressive, but code like this is the antithesis of good software.
Online banking software, for example, is not entertainment. It’s not even infotainment. Bad programmers tend to elaborate and embellish mundane software, detracting from its purpose.
In software, like any practical art, form follows function. Extraneous visuals and sounds obscure function. Software cannot be written to please the writer or the writer’s ego.
Pleasing the user comes first, and the first thing the user expects is clarity. What’s this software do? How do I get it to do what I want? How do I make sure it did it?
Software’s job is to do what the user needs—without error, annoyance, or frustration. Good software simply does what you expect it to do. Anything else is bad programming.