Boot.dev Blog
Recursion in Python: A Beginner's Guide
by Boot.dev Team - Programming course authors and video producers
[Recursion]() is a famously tricky concept to grasp, but it's honestly quite simple, so don't let it intimidate you. A recursive function is just a function that calls itself.
Closures in Python: How They Capture State
by Boot.dev Team - Programming course authors and video producers
A [closure]() is a function that references variables from outside its own function body. The function definition and its environment are bundled together into a single entity, so it keeps track of some values from the place where it was defined, no matter where it's executed later on.
Deep Blue Was Not ChatGPT
by Boot.dev Team - Programming course authors and video producers
It's May 11th, 1997, and Garry Kasparov sits in front of a chessboard on the 35th floor of a Manhattan skyscraper.
SHA-1 Was Shattered
by Boot.dev Team - Programming course authors and video producers
A couple of weeks ago I downloaded a copy of OBS, and my operating system yelled at me. Told me I shouldn't trust it. And it was right, I shouldn't have been trying to download from fastandrealobsfree.ru.
The Boot.dev Beat. June 2026
by Lane Wagner - Boot.dev co-founder and backend engineer
May was a fun month. Interactive widgets (the ones we teased last month) are now live in select lesson content, sound effects rolled out to everyone, and every Python project course got type hints.
WannaCry: The Ransomware Attack That Shut Down Hospitals
by Boot.dev Team - Programming course authors and video producers
It was 3 PM on a Friday. A doctor at an NHS hospital in the UK tries to check his email. Instead, one of the PCs in the room reboots into a scary red screen demanding $300 in Bitcoin.
12 Best Ways to Learn JavaScript
by Maya Chen - Computer science and programming educator at Boot.dev
JavaScript is one of the best languages to learn, powering 98% of websites. Build in-demand skills whether you're a beginner or an experienced developer.
13 Best Web Development Courses
by Maya Chen - Computer science and programming educator at Boot.dev
Compare the best web development courses for 2026. Explore platforms, skills, pricing, and paths to become a frontend or backend developer.
Open Source Maintainers Are Crashing Out
by Boot.dev Team - Programming course authors and video producers
Open source is a safe, sustainable development model. Right?
GitHub Keeps Going Down
by Boot.dev Team - Programming course authors and video producers
On February 9th, 2026, GitHub went down.
The AI Land Grab Looks Familiar
by Boot.dev Team - Programming course authors and video producers
In May of 2013, Yahoo announced plans to buy Tumblr for 1.1 billion dollars. Yahoo's CEO, Marissa Mayer, stood in front of the press and said, "We promise not to screw it up".
The Boot.dev Beat. May 2026
by Lane Wagner - Boot.dev co-founder and backend engineer
April was a polish-heavy month for us here at Boot.dev. We shipped many small improvements to the lesson experience, added Custom Learning Paths, made the Training Grounds easier to navigate, and cleaned up mobile UX annoyances.
Nvidia CEO: AI Doomers Could Cause a Software Engineer Shortage
by Lane Wagner - Boot.dev co-founder and backend engineer
It feels like every week Dario (Anthropic's CEO) is yelling about how AI is going to destroy white-collar jobs, particularly software engineering jobs. Well, in April 2026, about 4 years into the "in 6 weeks, AI is taking your coding job" cycle, Nvidia CEO Jensen Huang is finally talking about the potential consequences of that narrative:
The Boot.dev Beat. April 2026
by Lane Wagner - Boot.dev co-founder and backend engineer
March was a monster month. We shipped the new DevOps learning path (18 DevOps courses!), 2 brand new courses, upgraded the in-browser Python coding experience, and made Boot.dev noticeably better on phones.
Git Reset: Undo Commits With --soft and --hard
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
If you've ever made a commit and immediately thought "noooope", then git reset is what you need. It's one of the most useful Git commands for undoing work, but it's also one of the easiest to misuse. The --soft version is usually safe and predictable. The --hard version is powerful and can absolutely nuke your local changes.
Git Remote: Add Origin and Fetch Remote Branches
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
Git is distributed, which means your repo and my repo can both be valid "sources of truth". In practice, teams usually pick one remote as the shared source (often GitHub) and sync local work against it... but that's just a convention. Let's dig into how syncing Git repositories to GitHub works, and how that's just one way to work with Git.
Gitignore Patterns: What to Ignore and Why
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
Many devs adopt the git add . (yolo, just yeet it all into the commit) workflow. It is fast, simple, and usually correct. But eventually you'll have files in your repo directory that should never be committed: secrets, generated artifacts, dependency folders, and random local junk. That's what .gitignore is for.
Git and GitHub: A Practical Pull Request Workflow
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
Git is the open-source command-line version control tool, and GitHub is basically just a collaboration on top of it. You can absolutely use Git without GitHub, but for most teams, GitHub (or something similar) is where a lot of the collaboration happens. Linus Torvalds created Git, and... well we don't talk about who owns GitHub these days...
Git Rebase: Keep History Linear Without Merge Commits
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
If git merge feels noisy, that's because it can be. Lots of noisy merge commits make history harder to scan, especially when you're just trying to understand what actually changed. git rebase takes a different approach: instead of creating a merge commit, it replays your branch commits on top of the latest base commit so your history stays clean and linear.
Git Config: Set Your Name, Email, and Branch Defaults
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
Git stores author information so that when you're making a commit it can track who made the change. Here's how all that configuration actually works.
Git Branching: Create, Switch, and Manage Branches
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
A Git branch allows you to keep track of different changes separately. For example, you can create a new branch to experiment with changing a color scheme without affecting your primary branch. If you like the changes, you merge (or rebase) the branch back into main. If you don't, you delete it.
Git Merge: Combine Branches and Read Merge History
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
"What's the point of having multiple branches?" you might ask. They're most often used to safely make changes without affecting your (or your team's) primary branch. Once you're happy with your changes, you'll want to merge them back into main so that they make their way into the final product.
Git Internals: How Git Stores Data and History on Disk
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
Let's take a look at some of Git's "plumbing", that is, the commands that are mostly used for working "under the hood" with Git, and that you'll only use if you're trying to debug your Git files themselves.
Python Encapsulation vs Abstraction: What Matters
by Lane Wagner - Boot.dev co-founder and backend engineer
If classes and objects are the "what" of OOP, encapsulation and abstraction are the "how." They're how you keep code understandable after the project gets big, your team grows, and six months pass. They sound similar because they're close cousins, but they solve slightly different pains.
Clean Code in Python: Write Readable, Maintainable Code
by Lane Wagner - Boot.dev co-founder and backend engineer
If you ask ten developers for a definition of clean code, you will get twelve answers and one argument in the comments. Still, most of us agree on the practical goal: write code that other humans can understand quickly and change safely. That matters way more than writing clever one-liners that only make sense to your past self at 2 AM.
