How to learn programming and CS in the AI hype era – interview with prof Mark Mahoney [Podcast #215]

| Programming | April 10, 2026 | 14.7 Thousand views | 1:16:06

TL;DR

Dr. Mark Mahoney argues that while LLMs excel at low-stakes prototyping and visualizations, learning programming fundamentals through manual debugging remains essential to avoid technical debt and build resilient engineering skills that persist regardless of tool availability or cost.

🤖 LLM Capabilities & Limitations 3 insights

Visualizations over complex systems

Mahoney uses Claude Code to create single-page educational simulations like Git workflow animations, but stresses that high-stakes software like pacemakers requires expert human development, not prompt engineering.

Architectural technical debt risks

LLMs frequently misunderstand nuanced requirements, such as placing data in global objects instead of appropriate containers, creating invisible maintenance burdens that compound in complex codebases.

Iterate on plans before coding

Experienced developers should require LLMs to present implementation plans first and iterate multiple times on those plans before generating any code, catching misunderstandings early that novices would miss.

🧠 Learning Fundamentals First 3 insights

Manual stepping is non-negotiable

Students must trace through LLM-generated code line-by-line to observe execution flow and variable states, as simply accepting working outputs prevents deep learning of computational logic.

Resilience requires struggle

Developing debugging skills and mental models requires enduring the 'hard way' without AI shortcuts, creating engineers who can reason through failures rather than prompting repeatedly until something works.

Competence versus confidence trap

Relying primarily on LLMs creates 'tutorial hell' where learners feel capable but cannot independently reproduce solutions or explain why code functions, lacking the foundational knowledge that survives tool changes.

👨‍🏫 Human Instruction Irreplaceable 3 insights

Motivation over information delivery

Great professors inspire passion and curiosity through enthusiasm and personal connection, which LLMs cannot replicate despite being infinitely patient tutors with broad technical knowledge.

Adaptive pedagogical judgment

Human instructors tailor explanations based on individual student psychology, knowing precisely when to provide direct answers versus when to pose probing questions that force independent discovery.

Supplementary not substitutive

LLMs serve best as tools for reluctant students to ask questions they avoid posing to humans, but should augment rather than replace human mentorship that provides career context and inspiration.

⚠️ Professional Practicalities 3 insights

Economic uncertainty of AI tools

Current LLM capabilities rely on unsustainable VC subsidies; future per-token costs may restrict access or make full-time AI-assisted development economically unfeasible for some companies.

Legal liability concerns

Some organizations already prohibit AI coding tools entirely due to intellectual property and lawsuit risks, requiring developers to maintain capability to code production software without assistance.

Foundational knowledge ensures portability

Manual coding skills guarantee professional capability regardless of regional internet access, corporate policy shifts, or future regulatory restrictions on AI technologies.

Bottom Line

Use LLMs as infinitely patient tutors for specific questions, but build genuine competence by manually writing, debugging, and stepping through code to develop resilience against tool limitations and economic changes.

More from freeCodeCamp.org

View all
CUDA Programming for NVIDIA H100s – Comprehensive Course
freeCodeCamp.org freeCodeCamp.org

CUDA Programming for NVIDIA H100s – Comprehensive Course

This comprehensive 24-hour course teaches advanced CUDA programming for NVIDIA H100 Hopper GPUs, covering asynchronous execution models, Tensor Memory Accelerator operations, WGMMA pipelines, and multi-GPU scaling strategies necessary for training trillion-parameter AI models.

4 days ago · 10 points
Learn Drone Programming with Python – Tutorial
1:47:41
freeCodeCamp.org freeCodeCamp.org

Learn Drone Programming with Python – Tutorial

This freeCodeCamp tutorial teaches drone programming using Python and the Pyimverse simulator, enabling developers to master autonomous flight and computer vision through five practical missions without risking expensive hardware.

6 days ago · 10 points
SaaS Marketing for Developers – Automate Sales Tasks with AI
39:37
freeCodeCamp.org freeCodeCamp.org

SaaS Marketing for Developers – Automate Sales Tasks with AI

Simon Severino, CEO of Strategy Sprints, demonstrates how developers can automate their entire sales pipeline using Claude Code integrated with Obsidian, Notion, and Hunter to eliminate administrative tasks and scale personalized outreach. The system replaces manual CRM management with AI 'collaborators' that handle ideal client profiling, lead generation, and AB-tested cold email campaigns, reducing 8-hour tasks to 10 minutes.

11 days ago · 10 points