I Learned a New Programming Language with NotebookLM—and It Worked

Exploring a New Way to Learn Swift
As a Computer Science student, I find myself in the midst of summer break, which means more free time than usual. While I’m catching up on Netflix and working more than I do during the academic term, I still feel a sense of obligation to learn something new. Programming has always been a big part of my studies, and it's something I've loved since I was ten years old. However, despite my passion for programming, I don’t know many programming languages. I can code well in Python, C, and C++, but I’ve always wanted to get into mobile development. With a lot of free time on my hands, I decided this was the perfect opportunity to dive into learning Swift.
Since I’ve always used Apple products, I naturally started looking into Swift. I’ve been using Google’s AI-powered research assistant, NotebookLM, a lot lately, mainly because of its source-grounded nature. That led me to an idea: why not use NotebookLM to learn Swift? That’s exactly what I did, and the results were surprising.
Why Use NotebookLM to Learn Swift?
Using a "research assistant" to learn a programming language you haven’t touched before might seem unconventional. But hear me out. There are several traditional ways to learn a new programming language:
- Go the traditional route and learn using a book.
- Enroll in an overpriced online course and hope you complete it.
- Watch tutorial videos on YouTube until your brain melts.
- Dive straight into a project and Google your way through it.
- Use AI tools like chatbots to vibe-code your way through it.
While I could definitely vibe-code my way through Swift, I actually want to learn the language. For me, the fun part of programming is the actual coding. I'm not a fan of just copying and pasting things and hoping they work. Using AI tools like ChatGPT or Gemini is an option, but I’ve noticed they often give conflicting information.
NotebookLM, on the other hand, builds a personalized AI trained on the information you feed it. This meant I could create a notebook and add relevant sources like Apple’s official Swift documentation, brief YouTube tutorials, and Swift cheat sheets.
What I Included in My Swift NotebookLM Notebook
The sources I added made all the difference. The first step was populating my notebook with resources that would help me learn best. I spent hours browsing Reddit, reading blog posts, and asking Swift developers about the best resources for beginners. Most suggested Apple’s official Swift documentation, "The Swift Programming Language."
Though I could download the documentation as an eBook from the Apple Books Store, there wasn't a built-in way to export it as a PDF. The documentation was also available on Apple's Swift docs site, but it was divided across different pages, making it difficult to upload as a single source. I tried uploading the URL for each page, but it didn’t work well. It kept uploading the same page repeatedly.
To solve this, I used the Myndo Chrome extension, which converts content you clip into markdown that LLMs like NotebookLM can easily understand. I manually clipped all the pages I needed to get started with the basics of Swift from Apple’s documentation and uploaded it as a source. Since the source is added as a Google Doc, I can hit the "Sync with Google Drive" button to avoid having to remove the Doc from NotebookLM and upload it again every time I update it. This way, once I’m done with the basics and begin clipping more advanced Swift topics, I can sync the existing Doc instead of creating a new one from scratch.
Though I found Apple’s documentation good enough to start off with, I also filled my notebook with a few highly recommended YouTube tutorials. NotebookLM doesn’t “watch” the videos, but it does pull in their transcripts. I found using NotebookLM to “watch” YouTube tutorials much better than sitting through hour-long videos and trying to remember what was said halfway through.
How NotebookLM Actually Helped Me Learn Swift
Once the sources were sorted, the real learning began. I started with a single document that included the clipped pages from Apple’s official Swift documentation, focusing on the absolute basics. Given that I already know Python, C, and C++, I prompted NotebookLM with the following:
"I'm a beginner learning Swift. I know Python, C and C++, but haven't learnt Swift before. Can you explain the absolute basics to me and give me an idea of the syntax? We can skip the theory, and focus on what would help me code. Keep in mind my existing knowledge of Python, C and C++."
The best part about NotebookLM is that it does exactly what you ask without giving unnecessary information or hallucinating. It pulled the relevant information from my sources and explained all the basics of Swift to me. It even included examples of how Swift’s syntax differs from the programming languages I already know, which I found really helpful.
There were some concepts I hadn’t heard of before and was still confused about. With NotebookLM, instead of having to Google each term individually or watch multiple YouTube tutorials for every confusing concept, I just asked follow-up questions. Since it only pulls from the sources I added, I didn’t have to worry about outdated or contradictory info, which is something I often run into with regular chatbots.
Though I found that NotebookLM's Audio Overviews feature didn’t help much, the Mind Maps feature was a game-changer. It summarized all the core concepts in a visual branching diagram, which helped me quickly review the material and understand how different topics were connected, especially when jumping back into learning after a break.
Would I Do It Again?
This was far from my first time learning a new programming language, but using NotebookLM was probably the most engaging way I’ve learned one so far. That’s because NotebookLM made the process feel less like studying and more like having a tutor that just… gets me and how I learn best.