Within software development, no developer in the world knows all the answers to all of the things. At a certain point, every developer in the world will need to go out into the wild to find answers to their current problems. If you are anything like me, you will want to be able to undertake this research phase as productively and efficiently as possible.
Stackoverflow was released on the 15th of September 2008 and at the time it was a game-changing development tool. The reason for this is that at the time of Stackoverflow's first release, there were limited places for developers to get help. There were blogs, books, as well as a few online forums where developers could ask questions (like an experts exchange), however, the issue with the online communities is that you either had to pay to be a member, or, the forum was on very niche content.
Stackoverflow changed the mold by introducing a level of gamification into the asking and answering process. By allowing developers to win points and badges for helping their peers its popularity and usefulness skyrocketed. By providing challenges and an overall leaderboard, this competitive nature encouraged developers to answer questions like nothing else that had come before it.
Unfortunately, over recent years, a growing number of developers, especially newer ones, seem to be struggling to get the information they need from StackOverflow. If you Google this issue, you will quickly find Reddit threads like these ones (here and here where newer developers are getting frustrated as either their questions get closed, or, they get trolled for not writing something perfectly, or, doing enough research,
I have been programming for over 20 years and seldom ask questions on StackOverflow, however, in the rare times that I have asked a question I have typically had a similar experience to these less experienced developers.
Whenever I have the need to ask a question on Stackoverflow it will typically be about the approach I am thinking about taking. I'm at the stage where I understand the basics of the framework I want to use fairly well, however, the advice I like to hear about is what are the possible ways I could solve a problem. These types of questions violate the rules as they can be subjective, which I get, however, they are still valid programming questions. So the big question is if Stackoverflow is not appealing to newer or more senior developers, does it have a problem?
Up until recently, there weren't really any viable alternatives when it came to asking for help, however, in August 2023 ChatGPT blew up. ChatGPT while not perfect provides a new way for developers to ask for help
I never really thought about the topic of asking for help efficiently until I created a few videos on ChatGPT. In the comments section on one of the videos, a theme started to emerge where a lot of newer developers preferred asking ChatGPT for help rather than going to Stackoverflow as they could feel safer, get a response quicker and get better assistance with less sass.
My first reaction to this feedback was to blame the junior developers for being lazy. They should simply learn to ask better questions on StackOverflow, or, spend more time researching stuff. I am not saying research is not valuable, however, just because something has been done a certain way for soo long does not mean it is the right way.
If you want to be a 10x developer, why would you waste 5 hours doing research, when you can get the same answer in a fraction of the time? If our aim goal is to ship good software, as long as we do that efficiently, isn't that the key thing? In the remaining part of this article, we will think if ChatGPT will be the StackOverflow killer, read on to find out 🔥🔥🔥
ChatGPT Vs Stackoverflow
An interesting article came out on the 31st of January 2023 called Developers seem to be ditching StackOverflow since ChatGPT launch. According to the research in this article, in terms of absolute website visits, StackOverflow has seen its numbers drop about 13% since ChatGPTs release.
The StackOverflow traffic went from 279 million in November 2022 to around 247 million by the end of December 2022. I thought I would extend this research and from my additional findings, traffic stayed at 250 million in Jan, then dropped to 240 million in Feb, and jumped to 260 million in March.
Unfortunately, the research tool I used only reports data for the last 3 months so I can not do a year-by-year comparison which would provide better insights. Google Trends does provide a year-on-year view and searching the term Stackoverflow here shows that the term has definitely decreased throughout the year
Compare this with the trend for ChatGPT and you can potentially see some correlation:
In December 2023 Stackoverflow created a new policy that has banned ChatGPT from being used within people's answers (policy here). This enforcement is an interesting move mainly as the existing StackOverflow policy and review process is already very strict. If we ban answers generated from ChatGPT, should we also ban answers from people with less than 1 year of coding experience? Additionally, is there any real-world data that proves that someone trying to answer something with little development experience, is better or worse than ChatGPT responses? At the end of the day posting a response and then getting that response marked as the accepted answer are different things.
The Stackoverflow reason for this ban is that it puts extra strains on the editors, however, one of the biggest complaints from a lot of developers around the toxicity of Stackoverflow comes from too much editing and scrutiny within the review process. Stackoverflow members get incentivized with badges and points for editing, so will it really ruin the system?
Obviously, it's not my place in this world to say what a company should or should not allow, however, an underlying point that I think is interesting is within the selectiveness of when one thing is OK compared to something else.
Regardless of where you sit on the fence, the facts are a number of developers are becoming increasingly frustrated with using Stackoverflow and there is now an alternative option.
Many developers are turning to ChatGPT with some level of success. YOu will have many trolls instantly say that all responses from ChtGPT are wrong. This is not factual. Just as saying all answers from ChatGPT are correct.
You have StackOverflow which is currently the biggest development resource in the world saying answers from ChatGPT around costing-related questions can not be trusted, so what are people looking for help actually meant to do?
A perfect example of this can be found in this article on Stackoverflow meta. Someone said they found answers on ChatGPT to be better than asking on SO. This question was well written with genuine intention. Straightaway the author of the question has been flooded with abuse, and the post has been down-voted over 60 times, all because someone shared an opinion that many other people also need to share. This example proves the flaw of using SO in the first place.
The term imposter syndrome gets mentioned a lot in tech. Imposter syndrome is the persistent inability to believe that one's success is deserved or has been legitimately achieved as a result of one's own efforts or skills. Imposter syndrome is a thing and it is also a reason why people like asking AI rather than a real person so they can feel like they will not get found out. With examples like the one above, who can blame people when they turn to AI rather than ask a fellow human?
One thing that I have not mentioned so far in this article is the accuracy of the CHatGPT responses. ChatGPTC2 at least was trained a dataset including the results from the Common Crawl (mentioned in this paper so it should contain Stackoverflow answers. This means ChatGPT was likely trained on all StackOverflow data including the downvoted and upvoted content, meaning its response might not have the best context. Also if you are like me, often the answer to my particular question might come from the accepted answer, but in the comments. Often I need to perform multiple searches to find what I need. Again, this is all possible by asking ChatGPT many questions and not just settling with the first one. The way you approach finding information will be important in order for you to get the best answer. Just saying all responses from ChatGPT are wrong, like in some of the comments in the previous post, is inaccurate!
Fundamental ChatGPT might make you start to rethink certain ways of working that you might have taken for granted for years. I have definitely started to question my relationship with StackOverflow recently. Is it a tool to help me be more productive for research? Is it to be a fun game for certain editors to get lots of points? Is it just an escape where some developers can feel superior for casting down other developers? One fact about ChatGPT is that it is unopinionated.
The talk of the toxicity of Stackoverflow has been going on long before ChatGPT. Regardless of which side of the camp you fall in this debate, the universal truth is that we are all working in a community with other human beings and many of them need help. When you get a bunch of people communicating together, there will always be misunderstandings, miscommunications, and disagreements, it's human nature.
Sadly it kind of seems that for newer developers, asking ChatGPT is a less daunting task and quicker than asking for help from real people. If you see a newbie question, instead of flaming it or being negative, either ignore it and spend your time on something productive or, actually help that person as best as you can. Whenever I see someone trolling, I always think it's such a waste of that person's life energy. That person could have spent exactly the same amount of time adding something positive to the world being helpful rather than being a smart arse. As Joel Swoel says, we all need to do better.
Sadly, StackOverflow's toxic nature won't change in the short term. If you want to ask a quick question turning to ChatGPT first for first-line research makes perfect sense to me. Why should anyone waste their time researching just so they can ask a question on StackOverflow without abuse when within much less time I can ask ChatGPT and get a response?
Something to think about. Happy Coding 🤘