Programmers need to be trained. Just because they can do something, doesn't mean they can't do it better.
If you don't know how something works, that doesn't mean it doesn't work. It just means you don't know how it works.
In the 17th century, Alexander Pope famously said: "A little learning is a dangerous thing."
Who would have thought that his words would apply so well to 21st century systems?
Do you know how little you know?
I recently saw a web form hosted by a well-known university. It asks the user to enter data such as his or her first name, surname and email address. Nothing unusual about that. But at the top of the form was the following disclaimer:
“NOTE: There is a well-known bug in this type of form caused by apostrophes (') in text boxes.Please do not use any apostrophes in the text boxes below, even if they are in your name. We apologize for any inconvenience.”
This disclaimer was repeated again at the bottom of the form. This time it explained the error messages that may have been shown to the user:
“If the [error] message starts with 'You have an error in your SQL syntax', the problem is most likely due to the apostrophe bug mentioned at the top of this page. Please remove all apostrophes from the form, even if they are in your name. We apologize for any inconvenience.”
To paraphrase Albert Einstein, the problem is that you don't know what you don't know.
Sometimes programmers (and their managers) don't know what they don't know. I am astounded when a manager tells me: “We only employ trained people. Our programmers have degrees. Our programmers don't need training.”
The more you know, the more you know how little you know
Programmers who are serious about code know that there is ALWAYS more to learn. There are new technologies to learn, new frameworks to try, new ways to write better code.
It’s not hard to understand that the more you know, the better your code will be. And the best way to learn more, is to learn from someone who already knows what you don't know.
P.S. That form I described above? It's not a bug. With a little more knowledge, that programmer could have written the code to handle apostrophes. And if your name is S'fiso O'Reilly, wouldn't that have made you a happier user?