Skip to content
3 min read plotly plotting datetime grouping csv

Bamboo Weekly #196: Stack Overflow

Get better at: CSV files, plotting with Plotly, dates and times, and grouping.

Bamboo Weekly #196: Stack Overflow

You're not sure how to solve a programming problem. Or maybe you know how to solve it, but want to see if there's a better way. What do you do?

In 2026, the answer is obvious: Fire up AI, and get your answer that way. (Ideally, you'll also have a conversation with AI so that you can learn, rather than just copy its output, but that's a lecture for another time.)

But for nearly two decades, a major repository of programming knowledge has been Stack Overflow, founded by Joel Spolsky and Jeff Atwood. Stack Overflow allowed you to ask a question on nearly any programming-related topic, and about nearly any language or library. Other members could answer your question, and if their answers were upvoted, then they gained status points. People were thus incentivized to answer questions, improve existing answers, and generally participate.

I never became very active on Stack Overflow, but I certainly used it -- often to research topics that I was teaching, in order to ensure that my class covered the most commonly asked questions.

As you can imagine, Stack Overflow has become much less popular in the last few years. And indeed, I recently read that the number of new questions posed on Stack Overflow in the last few weeks is dramatically lower than it was just a few years ago, before AI became so popular. As a result, we'll spend some time this week examining that data and seeing just how popular Stack Overflow is (or isn't).

Data and five questions

The data itself comes from the Stack Exchange data explorer, where "Stack Exchange" is the umbrella site for Stack Overflow and many other community-powered question-and-answer sites. You can enter your own queries using SQL, or you rerun queries that were created and named by other users, at https://data.stackexchange.com/stackoverflow/queries .

Each query is limited to 50,000 result rows, and is downloadable as a CSV file.

For each question, I'll specify a query that I used to get the data, via URL. You can use that URL anonymously, but you'll need to solve a CAPTCHA to use it.

Paid subscribers, both to Bamboo Weekly and to my LernerPython+data membership program (https://LernerPython.com) get all of the questions and answers, as well as downloadable data files, downloadable versions of my notebooks, one-click access to my notebooks, and invitations to monthly office hours.

Learning goals for this week include: Working with CSV files, dates and times, grouping, and plotting with Plotly.

Here are my five questions and tasks for this week. I'll be back tomorrow with my solutions and explanations.

  1. How many new questions have been posed each week over the course of Stack Overflow's life? Use query https://data.stackexchange.com/stackoverflow/query/1926661 . Create a line plot with this data. On which date did Stack Overflow have its greatest number of questions? Was that before, after, or about the same time as Stack Overflow was bought in June 2021?
  2. You can get the frequency of the top 100 tags on Stack Overflow for each month at https://data.stackexchange.com/stackoverflow/query/1982380/tag-count-by-month . Read it into a data frame. Looking just at these tags, how many were applied to questions in each month? Create a bar plot with this info. What were the 5 most popular tags in Stack Overflow's first 3 years? What about the most recent 3 years?