Today, I saw in a forum a question about programming. The OP (original poster) didn’t give a clear description of the question. Instead, he gave an example and that’s pretty much it. It’s clear that some people were confused about his question. Anyway, he had a problem that he could only thought of a brute-force algorithm, and he asked if there was any better algorithm. So, after telling him that his question was not well-posed, I gave him an algorithm which is much faster (for large-scale cases). The algorithm is actually quite simple and uses a binary search algorithm (so it’s O(log n) vs. his O(n) algorithm). Guess what he commented on my answer 🙂 He wrote that he did a pretty good job asking the question, and that the Internet were full of algorithms like mine, but he found it useless because it was “way over his head” (that means he could not understand the algorithm).
I was a bit offended. I don’t want to argue that his description of the question was good or not, but I never think that describing a (mathematical) problem by only giving a concrete example is sufficient. On his other point, it seems that, to him, all the theory of algorithms (and more broadly, computer science) is useless because it is too difficult for him. I wanted to tell him that that he is not capable of understanding something does not make it useless. I wanted to tell him that algorithm theory is not useless, but he is. But I didn’t tell him. We are not in the same league. I think it’s pointless to argue with him.
The fact that he is a software developer (that’s what he wrote on his profile) reminded me of a story I read a while ago. I no longer have the source, so I cannot give a link or quote it here, but I remember it clearly. In the story, the author wrote about his fellow software developers (by that I think he meant people who got some training in programming, either a certificate or a college degree) making fun of research papers and computer scientists. They often relaxed by laughing at research papers and joking at scientists, describing them as useless people who can only write maths but cannot make a good practical piece of software. What those software developers didn’t know is that without those theoretical stuffs, we would not have had the Internet, the wonderful Google apps they are using, the satellite TV’s they are watching, the GPS’ they rely on, probably even the programming languages they are writing code in, and many more beautiful things.
I am no software developer, but I believe that those in the above story and the OP are not representative of all software developers. I am no computer scientist (I am an engineer, so my work is quite practical), but I believe that computer scientists appreciate software developers for their skills in programming. Software developers and computer scientists (or those who learn and use CS theory in their research as I do) are in different domains sharing the same root. We should learn to appreciate others’ skills and work. Without software developers, beautiful theories may never be realized in practical applications. Without scientists, software developers may never create beautiful and useful software.
As to the OP, I can’t understand what kind of software developers he is if he finds the binary search algorithm way over his head. Who hired him by the way?