Main image of article Foundational Coding Skills Still Essential In The Age Of AI

An efficiency gap is emerging when it comes to double-checking the work of artificial intelligence.

In fact, Anthropic researchers recently surveyed 52 software engineers using Python to find out how AI affected their own abilities to produce and understand code. It assessed participants in four areas: debugging, code reading, code writing and conceptual understanding. Participants who used AI averaged 50% on the quiz, compared with 67% for those who coded by hand. The results raised concerns about whether software engineers who rely on AI can recognize when code is incorrect.

“Productivity benefits may come at the cost of skills necessary to validate AI-written code if junior engineers’ skill development has been stunted by using AI in the first place,” an Anthropic blog post stated.

Code literacy and foundational coding skills will be essential for checking AI-generated code, and for stepping in manually when that code breaks down.

“Deep fundamentals are the superpower,” says Fisayo Omojokun, associate dean for undergraduate education at Georgia Tech’s College of Computing. He notes that programmers can only review code that is as complex as they are able to understand.

AI code is taking over some work from programmers, who must then review the AI code for accuracy.

“As AI automates the actual writing of the code, the programmer’s primary job shifts to auditing, code critique, and oversight,” Omojokun says. 

At Copado, a software company that offers an AI and DevOps toolset for the Salesforce ecosystem, back-end developers are writing very little code these days as AI generates most of the code the team outputs, says Mark Lagoa, the company’s CIO.

“The AI assistive tools have become incredibly powerful at writing really good code, so especially with those [developer] teams, we see code being written by the AI tools far outweighing the code that is being manually written by any developer today,” Lagoa says.

Copado developers use AI tools such as Claude and Cursor to write code for Salesforce. Copado also uses its homegrown AI tool Agentia Studio for writing code, Lagoa says.

What Is Foundational Coding?

Omojokun describes foundational coding as the process of programmers thinking through an application step by step.

Programmers create instructions using building blocks such as variables, conditionals, loops, subroutines and data structures. These building blocks allow programmers to address a problem using individual lines of code.

“Since these lines are human-generated, there is always an opportunity for error,” Omojokun explains. “Therefore, foundational coding also includes debugging, which involves following the logic of exactly what the computer will do based on the written lines and identifying mistakes.”

Meanwhile, when AI generates code automatically, the programmer explains what type of program they want, and then the AI produces code by “recognizing patterns” based on past examples, according to Omojokun.

“The output resembles common solutions from its training data,” Omojokun says. “This makes AI coding fast and helpful because it bypasses the need to build logic from scratch.”

The Benefits of Automating Code

Lagoa compares the automation capabilities of writing code to how pilots used autopilot to dogfight in the Top Gun films.

“You have very few people who are actually capable of understanding what the fundamentals of properly piloting a fighter jet are,” Lagoa explains. “I think the same applies for coding.”

Lagoa describes a piece of code at Copado that had never been transferred to the new back end.

With a developer using AI, a three-month ordeal turned into a three-day project, according to Lagoa. However, the AI tool did not understand how to connect to a logging mechanism.

“It took a developer who really understood the specialized requirement after it was in testing to realize we're not picking up logs for this particular part of that function,” Lagoa says.

He notes that AI does make mistakes, and requires developers to spend time redoing work.

“The amount of time you spend on that rework is really a reflection of how good the developer is and how quickly can they understand what the AI might have missed, what they know that the AI doesn't, and how quickly they can use AI or do it themselves to rectify it,” Lagoa says.

When AI Coding Is Wrong

Although AI coding tools have shown vast improvement and can handle complex problems, they still commonly produce flawed solutions, Omojokun explains.

“Often, the syntax is correct and the program successfully runs, but errors still emerge,” Omojokun says. “It is the subtle bugs that are of major concern, as they are the kinds that easily slip past novices and junior developers.”

AI issues include hidden bugs and edge-case failures, security vulnerabilities or unsafe software patterns, and technical debt, according to Omojokun. In addition, AI may cause “patch accretion,” in which bad fixes are layered over bad logic, and it may over-engineer solutions that become costly to maintain in the future, he adds.

Although AI is evolving fast, fixing AI-generated errors slows software engineers down and can be more time-consuming than writing new code, Omojokun says.

How to Learn Foundational Coding Skills

To boost foundational coding skills, Lagoa recommends that developers have “spatial awareness” and understand their environment, including the code and what it needs to do.

Just like someone creating a stew out of vegetables can get the satisfaction out of preparing it themselves rather than going to a restaurant, a developer can appreciate understanding the fundamentals of coding. Restaurants get orders wrong just like AI can get code wrong, Lagoa explains. 

“If you're performing at a much higher level with that understanding, I think you're doing yourself a good service as a developer,” he says.

When it comes to mastering foundational coding skills, Omojokun recommends a “test-first” software development strategy.

“Before you even prompt the AI to write a feature, you should write the tests that define exactly what success looks like,” he says.

Omojokun also advises engineers to use structured prompting. That involves not just asking AI to build a registration page, but defining exact constraints and security requirements, as well as edge cases up front.

In addition, Omojokun says developers should review AI-generated code for technical debt, security vulnerabilities and over-engineered logic.

Georgia Tech offers a course on foundational coding skills called “GTx: Generative AI Coding Readiness Check (Java).” Omojokun teaches the course along with Nimisha Roy, a lecturer in the Georgia Tech School of Computing Instruction and director of online undergraduate initiatives in the university’s College of Computing.

“I teamed up with [Roy] to create something that novices and junior developers can explore to mitigate potentially significant problems,” Omojokun says. “We plan to grow this further as testing generative AI readiness applies beyond coding. It’s a universal concern.”