Boot.dev Blog
Pure Functions in Python: A Complete Beginner Guide
by Boot.dev Team - Programming course authors and video producers
If you take nothing else away from this article, please take this: pure functions are fantastic. A pure function has exactly two properties: it always returns the same value given the same arguments (it's deterministic), and running it causes no [side effects](). In short: pure functions don't do anything with anything that exists outside of their scope.
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.
Currying in Python: Transform Multi-Arg Functions
by Boot.dev Team - Programming course authors and video producers
Function currying is a specific kind of function transformation, where we translate a single function that accepts multiple arguments into multiple functions that each accept a single argument. It relies on higher-order functions.
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.
Higher-Order Functions in Python
by Boot.dev Team - Programming course authors and video producers
In Python, functions are just values, like strings, integers, or objects. A programming language "supports first-class functions" when functions are treated like any other variable. That means functions can be passed as arguments to other functions, can be returned by other functions, and can be assigned to variables. Functions that accept other functions as arguments or return functions are called higher-order functions, and they power built-ins like map(), filter(), and reduce().
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 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.
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".
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.
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 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.
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 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 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 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.
