This is true; but it does open the door to those who do.
They're taught to write software to work around their own lack of knowledge. They don't know how to analyze a specific problem or requirement and then develop an efficient and effective solution.
Tell me about it; I recently ran into a situation where randomization for "selecting candidates from a pool" was done via a loop of get random, continue looping if already-selected... fortunately I was allowed to replace this with Fisher-Yates shuffling. (This was in actual production code.)
That's the truth of it right there. And I agree that OO isn't always the best fit. Therein lies the crux of the issue. They're not taught to solve the actual problem with the best tools.
Which is why I'm rather against using C as a systems-level language; I don't think it's the best tool for the job. -- Sadly we're also seeing this sort of "go with the popular" mentality in application (especially Web) development: nothing else explains why anyone would willingly use PHP in any serious endeavor/project.
re: randomization ... *snort*
Don’t get me started telling stories. I once had to fix a bug in some software that loaded all of the records from a file into an array for the sole purpose of counting the number of records in the file. The database had an integrated method that returned the number of records. And then it cleared the array and began reloading the records in order to update the contents of one field in each record.
*chuckle* I’ve written some things in LAMP because the shop required low cost (read free) and needed something quick and dirty. It was ... quick and dirty. Had to grit my teeth.
I’m a C-lover so we disagree there, but I am always open to other tools.