Episode 236: Simon Willison: Using LLMs for Python Development
The Real Python Podcast
Jan 24, 2025 1h 22m
What are the current large language model (LLM) tools you can use to develop Python? What prompting techniques and strategies produce better results? This week on the show, we speak with Simon Willison about his LLM research and his exploration of writing Python code with these rapidly evolving tools.
Episode Sponsor:
Simon has been researching LLMs over the past two and a half years and documenting the results on his blog. He shares which models work best for writing Python versus JavaScript and compares coding tools and environments.
We discuss prompt engineering techniques and the first steps to take. Simon shares his enthusiasm for the usefulness of LLMs but cautions about the potential pitfalls.
Simon also shares how he got involved in open-source development and Django. He’s a proponent of starting a blog and shares how it opened doors for his career.
This episode is sponsored by Postman.
Course Spotlight: Advanced Python import Techniques
The Python import system is as powerful as it is useful. In this in-depth video course, you’ll learn how to harness this power to improve the structure and maintainability of your code.
Topics:
- 00:00:00 – Introduction
- 00:02:38 – How did you get involved in open source?
- 00:04:04 – Writing an XML-RPC library
- 00:04:40 – Working on Django in Lawrence, Kansas
- 00:05:31 – Started building open-source collection
- 00:06:52 – shot-scraper: taking automated screenshots of websites
- 00:08:09 – First experiences with LLMs
- 00:10:08 – 22 years of simonwillison.net
- 00:18:22 – Navigating the hype and criticism of LLMs
- 00:22:14 – Where to start with Python code and LLMs?
- 00:26:22 – Sponsor: Postman
- 00:27:13 – ChatGPT Canvas vs Code Interpreter
- 00:28:23 – Asking nicely, tricking the system, and tipping?
- 00:30:35 – More Code Interpreter and building a C extension
- 00:32:05 – More details on Canvas
- 00:36:55 – What is a workflow for developing using LLMs?
- 00:39:43 – Creating pieces of code vs a system
- 00:42:00 – Workout program for prompting and pitfalls
- 00:53:54 – Video Course Spotlight
- 00:55:14 – Why an SVG of a pelican riding a bicycle?
- 00:57:48 – Repeating a query and refining
- 01:03:00 – Working in an IDE or text editor
- 01:05:45 – David Crawshaw on writing code with LLMs
- 01:08:33 – Running an LLM locally to write code
- 01:14:02 – Staying out of the AGI conversation
- 01:16:07 – What are you excited about in the world of Python?
- 01:18:34 – What do you want to learn next?
- 01:19:53 – How can people follow your work online?
- 01:20:51 – Thanks and goodbye
Show Links:
- Simon Willison’s Weblog
- shot-scraper
- Matt’s Script Archive, Inc. - Free Perl CGI Scripts
- XR - my XML-RPC library, now in WordPress - GitHub
- Adrian Holovaty advertises for someone to join him working in Lawrence (May 2003) - Holovaty.com
- Datasette: An open source multi-tool for exploring and publishing data
- My SQLite tag page - Simon Willison
- Chatbot Arena: Free AI Chat to Compare & Test Best AI Chatbots
- DeepSeek v3 notes on Christmas day
- DeepSeek_V3 - PDF
- Simon Willison on code-interpreter
- Gemini - Google DeepMind
- Claude
- ChatGPT Canvas can make API requests now, but it’s complicated
- Welcome to Click — Click Documentation
- My first experience with Llama in March 2023
- I can now run a GPT-4 class model on my laptop
- Using LLMs and Cursor to become a finisher
- GitHub Copilot - Your AI pair programmer
- In Finland, classes in recognizing fake news, disinformation - Sunday Morning CBS
- 404Media Podcast: Why We Cover AI the Way We Do
- Jason Koebler from 404Media - tags on simonwillison.net
- Building Python tools with a one-shot prompt using uv run and Claude Projects
- How I program with LLMs - crawshaw - 2025-01-06
- pelican-riding-a-bicycle - tags on simonwillison.net
- Things we learned about LLMs in 2024
- Pyodide
- Simon Willison on pyodide
- astral-sh/uv: An extremely fast Python package and project manager
- Simon Willison on uv
- Simon Willison’s Newsletter - Substack
- Semi-automating a Substack newsletter with an Observable notebook
- Simon Willison (@simonwillison.net) — Bluesky
- Simon Willison (@simon@simonwillison.net) - Mastodon
- Simon Willison (@simonw) - X