Boot.dev Blog
Function Transformations in Python: A Quick Guide
by Boot.dev Team - Programming course authors and video producers
"Function transformation" is just a concise way to describe a specific type of higher-order function. It's when a function takes a function (or functions) as input and returns a new function.
Sum Types in Python: Using Enums, Unions, and Match
by Boot.dev Team - Programming course authors and video producers
Sum types are a staple of functional programming, but Python doesn't really support them. We have to use a workaround and invent our own little system and enforce it ourselves.
Python Decorators: A Complete Guide With Code Examples
by Boot.dev Team - Programming course authors and video producers
Remember function transformations, where a higher-order function takes a function and returns a function with new behavior? Python decorators offer a kind of syntactic sugar around that. ("Syntactic sugar" just means "a more convenient syntax.") In this guide you'll learn what decorators are, how args and kwargs let them wrap any function, how to write decorators that take arguments, and how to use functools.lrucache for memoization.
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.
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.
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.
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.
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.
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.
GitHub + Git: Push, Pull, and Pull Requests
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 Remote: Add Origin, Fetch, and Merge 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.
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 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 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.
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 Merge: Combine Branches and Understand Fast-Forwards
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.
