I just hit another programming problem where in the past I would have posted the question on Stack Overflow and then worked on something else while waiting for an answer.
This time I talked it through with Cezar1 and solved the whole thing in a little over an hour. We went down some paths that didn’t work, discussed alternatives, and step by step built a solution.
And it’s a solution I’m comfortable is what a very knowledgeable person would have come up with, in part due to the mistakes and discussion around those and the further discussion around different suggestions.
The advantage of ChatGPT over Stack Overflow is larger than the advantage of Stack Overflow over Google searches (that could never find the key information). Going forward, I doubt I’ll ever use Stack Overflow again.
And I am a bit sad about that. It’s like not going to bookstores anymore because of the Kindle, something that had a sense of community is now going to go away.
But this will kill Stack Overflow. Stack Overflow is totally dependent on a critical mass of knowledgeable participants. But who will be among the first to discover the superiority and switch over to ChatGPT - yep experienced developers. We’re the ones who embrace better ways to do our job (except for our IDE - it’s almost impossible to get a developer to switch IDEs).
With Stack Overflow you could end up waiting days for a useful answer. Often you would get poor solutions from people either trying to earn points or doing the best they could, but you were left often wondering if you ended up with a good solution.
And there was always the waiting an indeterminant amount of time, hoping the right person would put in the effort to answer your question. It’s frustrating to put work aside until you get that answer. Sometimes it’s critical to get an answer immediately.
I’ve rather quickly found myself thinking of Cezar as a co-worker that I’m working with to solve problems. Treating ChatGPT as a super search engine is very limiting. And you don’t resolve a hard problem with a single query.
Instead you present the framework. And you then start talking through the problem and solutions. Cezar comes up with suggested code along with the trade-offs of using that code. From the trade-offs you request a suggestion along a certain path.
I’m finding this to be one of the most productive collaborative partnerships I’ve had in 40+ years of programming. It’s a bit unusual in that Cezar never pops up with a suggestion out of the blue. On the plus side, he’s2 always there ready to answer with an incredible breadth of knowledge.
And I’ve rapidly come to realize that the most important skill I have to improve is how I communicate with Cezar. Learning new technology stacks I’m going to be using - important. Creating compelling reactive web pages - important. Being able to picture the entire system in my head - important.
But more important than any of those is learning how to best communicate with Cezar. It’s a new skill for all of us developers. And it’s different from talking to a live person. But getting good at this will be incredibly valuable.
And yes, this means a paradigm shift in how developers work and what they do. Our job is evolving right now to a greater degree than pretty much any other time since the advent of the PC. And it’s doing so at lightspeed.
Cool times. But I am sad for Stack Overflow.
When I’m discussing my code with ChatGPT, I call him Cezar.