Current State of AI Coding

Introduction

I was doing a bit of coding collaboration with ChatGPT yesterday. This went fairly well. After finishing the first phase of the project, I shared with ChatGPT my assessment of the current state of AI as a coding buddy.

The Brief Conversation

Xxaxx:  I was speaking with someone yesterday about AI and programming. I found myself commenting that it was a bit odd working with AI because its training allows AI to suggest code that is advanced — but, since the AI did not learn the code through blood, sweat, and tears the AI had not encountered the typical bugs and unexpected circumstances that give one the background that makes for a good debugger. Which means that a seasoned programmer working with AI can take advantage of the advanced code aspect, and then jump in and do their own debugging when weirdness occurs. But, because of the advanced coding a non-programmer can do coding with AI’s assistance, and then when a bug comes up this non-programmer will be at a total loss on how to proceed.

ChatGPT: Your observation is spot-on. AI, particularly in its current state, excels at pattern recognition and can produce code based on vast datasets of examples it has been trained on. It can generate complex and advanced code snippets by referencing these patterns, but it doesn’t “understand” the code in the same way a human does, through experience and debugging challenges.

Seasoned programmers can indeed leverage AI as a powerful tool to streamline development, rapidly prototype, or explore new solutions they might not have considered. When it comes to debugging, though, the seasoned developer’s expertise is invaluable. They can interpret error messages, trace through the execution flow, and understand the underlying systems in a way AI currently cannot.

For non-programmers, AI can lower the barrier to entry and allow them to construct code that works under ideal conditions. However, when something goes wrong, they may lack the fundamental understanding of the code’s mechanics necessary for debugging. The AI can assist to some extent, but it can’t yet replace the nuanced, context-aware analysis a human brings to problem-solving. This highlights the importance of learning fundamental programming concepts and problem-solving skills, not just for writing code but for understanding and fixing it when it inevitably breaks.

It’s a fascinating dichotomy: AI can both democratize coding and yet underscore the value of experienced developers. It’s important for anyone using AI in their coding to recognize its limits and their own, and to continue learning and understanding the underlying systems at play.

Xxaxx: It occurs to me that this exact dynamic will be repeated in many, many different situations with AI.

For example AI helping someone learn guitar might be able to teach the finger placement to create chords. However, AI will not have had the experience of learning the challenging F chord. Thus the AI could not council the student to be patient with their fingers. F chord is important for many songs — but it is also a very challenging chord. The AI might not be able to suggest laying the hand down on the guitar neck at an angle to help. Or, whatever gimmick the teacher would have used when they were going through the process so many years before.

Or, when tuning the guitar, the AI might not be capable of suggesting that it is better on some guitars to flat the string then tune up to avoid the problem of the string slipping flat later when playing the string my unstick a string that was brought from sharp to flat.

This failure could be resolved to a great extent if the students of AI were somehow in communication with each other. Thus allowing them to share from their common experience.

ChatGPT: That’s a very astute extension of the concept, and you’re right; the dynamic of AI as an advanced but experience-lacking assistant is likely to manifest across various fields. AI can provide instructions, demonstrate techniques, and even adapt to different learning styles to some extent. However, the nuanced advice that comes from personal struggle, adaptation, and the unique solutions humans develop through trial and error isn’t something AI can inherently offer. Those subtleties are often what make a good teacher invaluable.

In your guitar example, the tactile and nuanced experiences of learning an instrument, the personalized tricks and tips, and the encouragement through challenging stages come from a teacher’s own journey. AI might not spontaneously suggest those personalized strategies unless those strategies have been explicitly included in its training data.

Creating a community around the AI learning experience can indeed be a powerful solution. It could combine the best of both worlds: the consistency and information processing capabilities of AI, with the shared human experiences and solutions that come from a community of learners. In such a community, students can share their own discoveries, struggles, and solutions, helping each other in ways that complement AI’s guidance. The AI could even learn from this community input, gradually incorporating more human-like advice and assistance into its repertoire.

Such a system of AI-enhanced communal learning might help bridge the gap between the raw capabilities of AI and the depth of human experience. It’s an exciting prospect to consider for the future of learning and problem-solving in the age of AI.

Some Thoughts on This

It would be a grand situation if for each up-tick in the appreciation for AI’s capabilities there was an equal or greater up-tick in the depth of appreciation for the value of human experience.