Boot.dev Blog
How to Return Multiple Values in Python
by Lane Wagner - Boot.dev co-founder and backend engineer
A Python function can return more than one value by separating them with commas.
What Does git remote -v Do?
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
The git remote -v command lists the remote repositories connected to your local Git repository. The -v means "verbose": it includes each remote's URL and shows whether Git uses it for fetching or pushing.
What Does git push -u origin main Do?
by ThePrimeagen - Ex-Netflix engineer, NeoVim ricer, and Git rebaser
The git push -u origin main command pushes your local main branch to the remote named origin and sets origin/main as its upstream. The push sends commits now; the -u saves the relationship for later.
How Hard Is It to Learn to Code? A Realistic Guide and What to Expect in 2026
by Maya Chen - Computer science and programming educator at Boot.dev
How hard is it to learn to code? Learn what makes coding challenging, how long it takes, which languages are easiest, and how to make the process easier.
How to Learn to Code in 2026: A Step-by-Step Guide
by Lane Wagner - Boot.dev co-founder and backend engineer
Learn to code in 2026 with a realistic, step-by-step roadmap: pick one language, follow a structured path, build real projects, and practice daily until you're job-ready.
Database Normalization: 1NF, 2NF, and 3NF
by Boot.dev Team - Programming course authors and video producers
Database normalization gives each fact in a relational database one reliable home. It reduces duplicate data and prevents rows from contradicting each other. The first three normal forms, 1NF, 2NF, and 3NF, provide a practical way to find those problems.
SQL Constraints: PRIMARY KEY, FOREIGN KEY, UNIQUE, and NOT NULL
by Boot.dev Team - Programming course authors and video producers
SQL constraints prevent invalid data from entering a database. PRIMARY KEY, FOREIGN KEY, UNIQUE, and NOT NULL identify rows, preserve relationships, reject duplicates, and require values.
SQL LIKE Operator
by Boot.dev Team - Programming course authors and video producers
The SQL LIKE operator filters text using a simple pattern. Use it when you know part of a value but not the whole thing: a name that starts with Al, an email address that ends with a company domain, or a product name that contains banana. Its two wildcards, % and , stand in for unknown characters. Case sensitivity depends on the database.
SQL ORDER BY and LIMIT
by Boot.dev Team - Programming course authors and video producers
SQL's ORDER BY clause sorts query results, and LIMIT caps how many rows the database returns. Together, they answer questions like "Which five products cost the most?" Sort direction and tie-breakers determine the order; without ORDER BY, LIMIT doesn't define which rows you'll get.
SQL SELECT Statement
by Boot.dev Team - Programming course authors and video producers
The SQL SELECT statement reads data from a database. Every read query begins by describing the result you want: stored columns, calculated values, or a combination of both. At its simplest, SELECT name FROM users; returns the name column from every row in users. Real queries can select several columns, rename them with aliases, remove duplicate results, and combine SELECT with clauses that filter, group, sort, or limit rows. This guide starts with the basic syntax, then explains wildcards, expressions, DISTINCT, clause order, and the mistakes that most often make a query fail or return a surprising result.
SQL Joins: INNER, LEFT, RIGHT, and FULL JOIN
by Boot.dev Team - Programming course authors and video producers
Relational data is often split across tables, but applications need it brought back together. SQL joins combine those rows: an INNER JOIN keeps matches, a LEFT JOIN or RIGHT JOIN preserves one side, and a FULL JOIN preserves both.
SQL WHERE Clause
by Boot.dev Team - Programming course authors and video producers
The SQL WHERE clause filters out rows that don't meet a condition. It lets a SELECT return specific records and keeps an UPDATE or DELETE from touching rows it shouldn't. You can build its conditions with comparisons, NULL checks, AND, OR, IN, and BETWEEN.
SQL Aggregate Functions: COUNT, SUM, AVG, MIN, and MAX
by Boot.dev Team - Programming course authors and video producers
SQL aggregate functions calculate one result from a set of rows. An aggregate query can return an order count, total revenue, average payment, lowest price, or highest score. The five you'll use most are COUNT, SUM, AVG, MIN, and MAX. GROUP BY, HAVING, and NULL values control what they calculate.
SQL CRUD: Create, Read, Update, and Delete Data
by Boot.dev Team - Programming course authors and video producers
SQL CRUD is the set of operations you use to create, read, update, and delete data in a relational database. In SQL, those operations usually map to INSERT, SELECT, UPDATE, and DELETE.
SQL Indexes: How to Speed Up Database Queries
by Boot.dev Team - Programming course authors and video producers
A query that slows down as its table grows may be scanning far more rows than it returns. SQL indexes give the database a faster route to matching rows, often letting it jump to a small set instead of inspecting the whole table.
SQL Subqueries With Examples
by Boot.dev Team - Programming course authors and video producers
Sometimes one query needs the result of another. A SQL subquery nests that inner query inside another SQL statement so its value or result set can filter, calculate, or select data.
SQL CREATE TABLE: How to Create and Alter Tables
by Boot.dev Team - Programming course authors and video producers
The SQL CREATE TABLE statement defines a table, its columns, and the data each column should hold. It can also enforce rules such as required values and unique identifiers.
What Is SQL?
by Boot.dev Team - Programming course authors and video producers
SQL (Structured Query Language) is the standard language for working with relational databases. You use it to define tables, read data, insert records, update records, and delete records. It's everywhere in backend development and data analysis because it handles repeatable queries over large datasets without spreadsheet busywork.
The Boot.dev Beat. July 2026
by Lane Wagner - Boot.dev co-founder and backend engineer
In June we made a lot of updates to what's inside existing Boot.dev content. You can now work through the Linux course in a real in-browser shell, take multi-question quizzes, format your code with one click, and use OpenRouter on our AI-dependent courses.
Stdin, Stdout, and Stderr: Linux I/O Streams Explained
by Boot.dev Team - Programming course authors and video producers
Programs running in a shell have a standard way of talking to you and to each other: three data streams called stdin, stdout, and stderr. Combine those streams with flags, positional arguments, and exit codes, and you can chain simple commands together into incredibly powerful automations using redirection and pipes.
Linux Package Managers: apt, brew, and How They Work
by Boot.dev Team - Programming course authors and video producers
A package manager is a software tool that helps you install other software. As a developer, you'll frequently use package managers to get access to the software you need to get your work done. In this post we'll cover the two most popular package managers you'll run into on Linux and macOS — apt and brew — how they work under the hood, and how to use them to install real tools like Neovim and VS Code.
Linux Filesystem Commands Every Beginner Should Know
by Boot.dev Team - Programming course authors and video producers
All the data on your computer is organized into files and directories, and as a developer you'll spend a lot of time creating, moving, reading, and deleting them from the command line. This guide covers the core Linux filesystem commands: pwd, ls, and cd for navigation, cat, head, tail, and less for reading files, touch, mkdir, mv, rm, and cp for managing them, and grep and find for searching.
Linux File Permissions Explained: chmod, chown, and sudo
by Boot.dev Team - Programming course authors and video producers
In a Unix-like operating system, permissions control who can do what to which files and directories. If you've ever run a script only to be slapped with permission denied, or typed sudo because the internet told you to, this is the missing context. In this article you'll learn how the rwx permission model works, how to change permissions with chmod, how to change ownership with chown, and when you should (and shouldn't) reach for sudo.
.bashrc vs .zshrc: Shell Configuration Files
by Boot.dev Team - Programming course authors and video producers
Your shell runs a configuration file every single time it starts, and once you know how to edit it, you can customize almost everything about your command line experience. Bash uses .bashrc, while Zsh uses .zshrc. You'll learn how to edit and reload these files and use them to create persistent aliases.
Symlinks in Linux: How to Create and Use Them
by Boot.dev Team - Programming course authors and video producers
A symlink lets one file live at two paths: the real one, and a lightweight pointer that forwards to it. It's one of those Linux features you can ignore for years, then suddenly use every day once you've seen what it's for (dotfiles, versioned tool installs, and log directories, to name a few). Here's what symlinks are, how to create them with ln -s, and how they differ from copies.
