Where the ampersand comes from
The ampersand began as a ligature of the Latin word et, meaning "and". Roman scribes writing quickly joined the e and the t into one shape, and examples of the joined letters survive in Roman cursive writing from the first century. Over the centuries the shape drifted until the letters were hard to see, but in many italic fonts you can still read the E and the t.
The name is much younger than the sign. In the 1800s, many English schoolbooks listed & after Z as an extra letter of the alphabet. Children ended their recitation with "X, Y, Z and per se and", meaning "& by itself means and". Said quickly, "and per se and" ran together into ampersand. The old abbreviation &c. for et cetera is a leftover from the time when & was read as "et".
The ampersand in typography and style
Type designers love the ampersand because it gives them freedom. Upright (roman) styles usually show a compact form like a figure eight, while italics often go back to a looser "Et" shape, and some fonts ship several alternate ampersands. For a wedding invitation or logo, try the italic of a classic serif font: its ampersand is often the most decorative character in the set.
Style guides treat & as informal in sentences. Use the word "and" in running text and keep & for names, fixed pairs and tight spaces (Smith & Sons, Q&A, rock & roll). In academic writing, APA style uses & between author names inside parentheses (Smith & Jones, 2020) but "and" in the sentence itself.
Ampersands in HTML, URLs and code
In HTML the ampersand starts a character reference such as ©, so a literal & should be written as & (or &). Browsers usually forgive a lone &, but a sequence like © in text can turn into ©︎ by accident, and XML formats such as SVG and RSS treat an unescaped & as an error.
In a URL, & separates query parameters (?size=m&color=red). If a value itself contains an ampersand, encode it as %26, otherwise everything after it becomes a new parameter. In shell scripts a trailing & runs a command in the background, and in C, Java and JavaScript && means logical and while & is bitwise and.
For other ways to write "and", including &, ∧ and fancy fonts, see the and symbol page. More entities are listed on the HTML symbol codes page.