I often go onto StackOverflow when I have some free time to help answer some questions other programmers may have. The site is great, well built, but the content on the site and the users are not. If you are unaware of what StackOverflow is, it’s part of the “Stack Exchange” group of websites. It’s a Question and Answer type of site where anyone (even “anonymous” users) can post questions and answer them. The StackOverflow site is dedicated to programming issues and questions across all languages. It’s not to be confused with the “Programmers” Stack Exchange site.
The reason why the site is awful, is solely because of the people who answer questions on the site, and sometimes the people who ask them. Today I answered probably 20 questions, and of those probably 15 or more were essentially the same. I understand that sometimes finding the correct answer to your solution is difficult, but these questions were very basic. They were all about “undefined variables” or getting unexpected results (because of undefined variables).
Now, all of these questions have a very basic cookie cutter answer that is given to them, which will “solve” the issue, if you believe the issue is the code and not the person posting the question. Hardly ever I will see someone answer the question telling the poster to enable error reporting, check for the line number that the error happens on, and then manually debug their code and check to make sure all the variables are correctly assigned. All the answers simply post modified code with a single change of adding an “isset()” if-statement, which is correct but doesn’t help anyone. But posting “fix it yourself asshole by turning on the error reporting” probably wouldn’t go too well.
The site heavily awards users who post those cookie cutter answers by giving them points, achievements (badges) and all the internet super programmer reputation. Users should be awarded for only unique answers that have never been asked about before.
The site StackOverflow does try to combat this by having a “flag” feature where people can flag if a post is a duplicate. I try to use this feature as often as I can, but for the thousands of other questions that are duplicates and are answered over and over again are up there forever with no value, unless you answered one of those questions, then you now have a few more points.
The second issue I have with StackOverflow is that users answer only the question at hand. If you look at the PHP / MySQL tags for a few seconds, you will run into a few questions that have tons of security flaws such as SQL Injections, XSS issues, File Upload flaws and more. Do people help these questioners know that they are doing something wrong? Well, sometimes, but I often times only see the answer to the initial question. The questioners exploitable code pasted into their answers that will eventually cause a ton of problems. I get not wanting to re-type all of their code and making it a ton better, but at least pointing out the issue to them so they can consider fixing their code in the future would be nice.
And now for the third reason why I hate StackOverflow (users), is that people posting questions will want YOU to do their work for them. People just post a random question which has been done to death with tutorials online, free scripts available and thousands of other questions of the same. One that I often see is “How do I upload an image using PHP”. I can’t tell you how many tutorials are out there on this subject (a lot of them are pretty bad / have security flaws) that will help the user get started with their task.
What I’m trying to say is, people need to use the available resources they have at hand. Such as all of the PHP.net documentation, MySQL documentation, and any other language, library, service, tool documentation that the creators of that software wrote. All the answers are there in black and white. Your code may seem unique, but trust me, it’s all the same issue and if you can’t look in the documentation and error log to figure it out, you will have to post that same question a hundred more times.
The final issue that I can recall about StackOverflow is when users downvote questions that are difficult to answer. I’m not talking about poorly written questions. Whenever I come across a question that is challenging compared to all the others posted on the site, in a few seconds I will see a few down votes on the question. If a question is too hard for you to answer, it doesn’t deserve to be asked? I have some of the most fun answering challenging questions since it helps me and the user. When you keep practicing or answering questions that you already know, you don’t learn anything. But if you go out of your way to try something new, different, out of the box, that is where you can learn a lot more.
Now, don’t get me wrong, I also ask questions on sites also, I believe I asked 2 on StackOverflow. But before you ask your questions, do at least a little bit of work. You may have been told that “asking questions is important”, it’s not when it’s the same question over and over again.