The full story
The episode's narration, word for word. Numbers link to the sources below; timestamps play that moment.
The question 0:00
This season we've met HTML, JavaScript and its runtime Node, TypeScript, PHP, Python, C and C plus plus, Java and C sharp, Rust, Go and SQL. So if you've never written a line of code and you want to start, which one should you learn first? The honest answer is that there isn't a single right one. But there is a good way to choose.
What learners actually use 0:28
In Stack Overflow's 2025 survey, about two and a half thousand people who were learning to code answered this question 1. About seventy-two per cent of them had done extensive work in Python over the past year, sixty-seven per cent in HTML and CSS, and sixty-three per cent in JavaScript 1. Among professional developers, the order changes: JavaScript first, then HTML and CSS, then SQL, with Python fourth 1. These are survey respondents, who could tick several, not every programmer 1. Popular with learners isn't the same as right for you.
Four in the morning 1:09
The argument about first languages is older than most of these languages. At four in the morning on the first of May 1964, in the basement of College Hall at Dartmouth College, Professor John Kemeny and a student programmer typed RUN on neighbouring terminals 2. Both got back correct answers 2. That was the birth of BASIC, and of Dartmouth's time-sharing system, where many people use one computer at once from their own terminals 2. Kemeny, Tom Kurtz and their students made computing open to every student and teacher at Dartmouth 2.
Truths that might hurt 1:46
Not everyone approved. In 1975, the computer scientist Edsger Dijkstra wrote a list he called truths that might hurt 3. One said: it is practically impossible to teach good programming to students that have had a prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration 3. The same list said COBOL cripples the mind, and called FORTRAN hopelessly inadequate 3. He stated these as truths, not findings: the list gives no evidence for any of them 3. But it also made a real claim: the tools we use have a profound influence on our thinking habits 3. So does your first language shape how you think?
One course, five languages 2:35
One well-known course has an answer. Harvard's CS50 starts with Scratch, where you snap together blocks instead of typing, then moves to C, then Python, then SQL, then HTML, CSS and JavaScript 4,5. That's much of this season in eleven weeks 4. Its own description says that, more than teaching you one language, it teaches you how to program fundamentally, and how to teach yourself new languages 4. And CS50 says two thirds of its students have never taken computer science before 4.
What carries over 3:10
So what actually carries over? CS50 names the building blocks: functions, variables, conditionals and loops 4. A variable is a named box for a value. A conditional is an if. A loop does something again and again. And a function is a named, reusable piece of code. Here's one small job in three languages, all run: count from one to three, and print each number's square. The punctuation differs, but the ideas are the same, and all three print exactly the same three lines.
Like learning to drive 3:50
Think of it like learning to drive. Once you know the road rules, a different car is mostly the same job: the wheel steers, one pedal goes, another stops. But here's where that picture breaks. In programming, a control can look exactly the same in two languages and do something different 6.
Old habits 4:10
Researchers at North Carolina State University and Microsoft tested the idea that a second language comes easily 6. They read four hundred and fifty Stack Overflow questions across eighteen languages, and found two hundred and seventy-six cases where something a programmer knew from another language had led them astray 6. Then they interviewed sixteen professionals 6. The interviews revealed programmers making failed attempts to relate a new language to what they already knew 6. Knowing one language helps, but it brings habits with it.
Seven divided by two 4:47
Here's one, run in six languages. Seven divided by two. Python, JavaScript and PHP all say three point five 7,8,9. C, Go and SQLite all say three 10,11,12. When both numbers are whole, those three keep the answer whole, and throw away the remainder 10,11,12. Neither is a bug: each language documents its own rule 7,10,11,12,8,9. But move from one to the other, and you get no error at all, just a different number.
Python changed its mind 5:19
Python itself used to give three 13. In March 2001, Guido van Rossum and Moshe Zadka proposed changing it, calling the old behaviour a real design bug in Python 13. Because it would break old code, and after what the proposal itself calls a major flamewar, the full change waited for Python 3 13. Now one slash gives three point five, and two slashes ask for the whole-number answer on purpose, and we ran both to check 13,7.
Start with what you want to make 5:54
So instead of asking which language is best, ask what you want to make.
Websites
For websites, start where the browser starts. HTML describes the page, CSS styles it, and JavaScript, the third layer, makes it behave, as we saw in episodes three and four 14. Mozilla's free Learn web development guide starts from zero 15. Frameworks expect you to know those three first, and TypeScript is JavaScript with types added, so both can wait 16,17. On the server, the computer that sends you the page, you'll meet Node and PHP, from episodes five and eight 18,19.
Data and AI 6:36
For data and AI, the usual pair is Python and SQL. As episode nine found, Python gives the orders, while the heavy maths runs in compiled code underneath 20. The PyTorch team say that what you write is a regular Python program, under your full control 20. And the data often lives in a database you question in SQL, the language from episode thirteen, which sixty-one per cent of professional respondents in that survey had done extensive work in 1.
Apps and games 7:08
For phone apps, it depends on the phone. Google says that if you're building an Android app, it recommends starting with Kotlin 21. Apple calls Swift its programming language for all Apple platforms 22. For games, the engine decides. Unity runs C sharp scripts, and Unreal Engine uses C plus plus 23,24. The free, open-source Godot engine has its own language, GDScript, which its makers say will feel familiar if you've written Python 25.
Hardware and systems 7:42
For hardware, the tiny computers on a single chip that sit inside gadgets, C from episode ten is still at home. Dennis Ritchie described C as close to the machine 26. But MicroPython brings Python to those small chips too 27. And Rust and Go, from episode twelve, each have a free official guide online 28,29.
Hello, eleven ways 8:06
Whichever you pick, the traditional first program is the same: make it say hello, world, the greeting from episode ten. Here it is in eleven languages. We ran eight on the computer that made this video, and each printed exactly hello, world. Java, C sharp and Rust aren't installed here, so those three are quoted from their own official tutorials, and marked not run here 30,31,32. Python takes one line; Go, laid out the standard way, takes seven.
What about AI? 8:40
And what about AI that writes code? In the same 2025 survey, eighty-four per cent of respondents used AI tools or planned to 33. Those named in the survey included ChatGPT, GitHub Copilot, Google Gemini and Claude Code, which is made by Anthropic, whose Claude helps research and script this channel, so we're naming it, not recommending it 33,34. As we saw last episode, more distrusted the accuracy of AI output than trusted it: forty-six per cent, against thirty-three 33. Their biggest frustration, at sixty-six per cent, was answers that are almost right, but not quite 33. To spot almost right, you need to be able to read the code yourself.
Free places to start 9:29
So where do you start, without paying anything? In the same survey, respondents, most of them working developers, said the way they'd most often learned in the past year wasn't a course at all: it was technical documentation, at about sixty-eight per cent 35. Many languages have free official guides, like the Rust book and the Tour of Go, and the Python tutorial once you've written a little code 36,28,29. Harvard's CS50 is free to take online, and MIT's OpenCourseWare puts its introductory Python course online for free 4,37,38. For younger learners, Scratch is free and run by a non-profit, and the Raspberry Pi Foundation, a charity, has free coding projects 5,39. CS50 even gives you a free certificate of its own if you finish the work 40.
Looking back 10:19
This season we asked fifteen questions, from what separates a language from a framework, to how code reaches a chip. We asked whether HTML is a programming language, how JavaScript took over the web and then escaped the browser, and why anyone would add rules to it. We met frameworks, a much-mocked language, a so-called slow one, and a fifty-year-old one. And we asked what write once, run anywhere means, why people still invent languages, why apps still talk to databases in a 1970s language, and what an IDE actually does.
So, which first? 10:58
So, which language should you learn first? The one that builds the thing you actually want to make. Learn its variables, conditionals, loops and functions properly, because, as CS50 puts it, the aim is to learn to program fundamentally, and how to teach yourself new languages 4. Just watch for the habits you bring across, like seven divided by two 6. There's no best language, only better fits for a job.
Next season 11:27
That's the end of our season on programming languages, and thank you for watching. Next season, we'll take on a fresh set of questions, and keep asking why until the answers make sense.
Sources
Every factual claim in the episode is tied to one of these. Spotted an error? Tell us.
- Stack Overflow Developer Survey 2025, Technology (programming, scripting and markup… — survey.stackoverflow.co
- Dartmouth College, "BASIC at 50" — dartmouth.edu
- Edsger W. Dijkstra, "How do we tell truths that might hurt?" (EWD498), 18 June 1975,… — cs.utexas.edu
- Harvard University, "CS50x 2026: CS50's Introduction to Computer Science" (OpenCourseWare) — cs50.harvard.edu
- Scratch Foundation, "Scratch" (about page; scratch.mit.edu/about redirects here) — scratchfoundation.org
- Nischal Shrestha, Colton Botta, Titus Barik and Chris Parnin, "Here We Go Again: Why… — doi.org
- Python documentation, "Built-in Types: Numeric Types" (x / y quotient; x // y floored… — docs.python.org
- PHP Manual, "Arithmetic Operators" — php.net
- MDN Web Docs, "Division (/)" — developer.mozilla.org
- cppreference.com, "Arithmetic operators" (C: integer division truncated towards zero… — en.cppreference.com
- The Go Programming Language Specification, "Arithmetic operators: Integer operators" — go.dev
- SQLite, "SQL Language Expressions" ("Integer divide yields an integer result,… — sqlite.org
- Moshe Zadka and Guido van Rossum, "PEP 238 – Changing the Division Operator", 11 March… — peps.python.org
- MDN Web Docs, "What is JavaScript?" — developer.mozilla.org
- MDN Web Docs, "Learn web development" — developer.mozilla.org
- TypeScript, "TypeScript: JavaScript With Syntax For Types" (home page) — typescriptlang.org
- MDN Web Docs, "Introduction to client-side frameworks" — developer.mozilla.org
- Node.js, "About Node.js" — nodejs.org
- W3Techs, "Usage statistics of server-side programming languages for websites", 7… — w3techs.com
- Adam Paszke, Sam Gross, Francisco Massa et al., "PyTorch: An Imperative Style,… — arxiv.org
- Android Developers, "Android's Kotlin-first approach" — developer.android.com
- Apple Developer, "Swift" — developer.apple.com
- Unity Manual, "Scripting back ends" — docs.unity3d.com
- Epic Games, "Epic C++ Coding Standard for Unreal Engine" (carried from S05E10 research) — dev.epicgames.com
- Godot Engine documentation, "Frequently asked questions" — docs.godotengine.org
- Dennis M. Ritchie, "The Development of the C Language" (HOPL-II, 1993) (carried from… — bell-labs.com
- MicroPython — micropython.org
- Steve Klabnik, Carol Nichols and Chris Krycho, The Rust Programming Language (online book) — doc.rust-lang.org
- The Go Programming Language, "Documentation" (A Tour of Go) — go.dev
- Oracle, The Java Tutorials, "A Closer Look at the "Hello World!" Application" — docs.oracle.com
- Microsoft Learn, "A tour of the C# language" (Hello world) — learn.microsoft.com
- Steve Klabnik, Carol Nichols and Chris Krycho, The Rust Programming Language, ch. 1.2… — doc.rust-lang.org
- Stack Overflow Developer Survey 2025, AI (AI tools in the development process;… — survey.stackoverflow.co
- Anthropic, "Claude Code" — anthropic.com
- Stack Overflow Developer Survey 2025, Developers (Education: "How did you learn to… — survey.stackoverflow.co
- Python documentation, "The Python Tutorial" (3.14) — docs.python.org
- MIT OpenCourseWare, "6.100L Introduction to CS and Programming using Python", Fall 2022 — ocw.mit.edu
- MIT OpenCourseWare, "About Us" — ocw.mit.edu
- Raspberry Pi Foundation, "About us" — raspberrypi.org
- Harvard University, "CS50 Certificate" (CS50x 2026: "you will be eligible for a free… — cs50.harvard.edu
Image credits
- illustration (AI-generated), not the actual Dartmouth room
- illustration (AI-generated)
Researched and scripted with AI assistance, fact-checked claim by claim, with synthetic narration and diagrams drawn in code. How we make episodes.