Lingua-e
← Back

Developer English guide + free exercises

Punctuation Symbols in English: Names and Examples for Developers

October 9, 2026

You type these symbols dozens of times a day. But do you know their English names? When you join a standup, read a PR comment, or pair program with a colleague, you need to say 'backtick', 'pipe', or 'ampersand' out loud. This guide covers every common symbol with its English name, Spanish equivalent, and a real developer example — plus 30 free exercises that practice naming the symbol as you'd say it out loud, explaining where code fails, why it changed, or what it does.

Standard Punctuation

Puntuacion estandar

These symbols appear in everyday writing: emails, PR descriptions, commit messages, and Slack. Many have different names in British and American English, so both are listed.

SymbolEnglish nameExample
.PeriodFull stop“End every statement with a period in your commit messages.”
,Comma“Use a comma to separate items in a list: 'We need to fix the bug, write tests, and deploy.'”
;Semicolon“In JavaScript you can omit the semicolon, but the team style guide requires it.”
:Colon“In TypeScript, add a colon after the variable name to declare its type.”
!Exclamation markBang“The bang operator negates a boolean: if (!isLoading) { ... }”
?Question mark“Use the question mark for optional chaining: user?.profile?.avatar”
'ApostropheSingle quote“Wrap strings in single quotes in Python: name = 'Alice'”
""Double quotesQuotation marks“In JSON, keys and string values must be wrapped in double quotes.”
''Single quotes“The linter prefers single quotes for strings in this project.”
-HyphenDash“Use a hyphen between words in a kebab-case CSS class name.”
–En dash“Use an en dash for numeric ranges in documentation: pages 10–15.”
—Em dash“She opened the PR—without running the tests—and merged it directly.”
()ParenthesesRound brackets“Call the function by adding parentheses after its name: doSomething()”
[]Square brackets“Access an array element using square brackets: items[0]”
...EllipsisThree dots“The spread operator uses three dots: const newArr = [...oldArr, newItem]”
Practice this section →

Developer Symbols

Simbolos tecnicos

These symbols are everywhere in code, terminals, config files, and documentation. Knowing their English names helps you communicate clearly during code reviews, pair programming sessions, and technical interviews.

SymbolEnglish nameExample
{}Curly bracesCurly brackets“Wrap the function body in curly braces.”
<>Angle bracketsChevrons“In TypeScript generics, put the type parameter inside angle brackets: Array<string>”
/SlashForward slash“Separate URL path segments with a forward slash: /api/v1/users”
\Backslash“Use a backslash to escape a special character inside a string.”
*AsteriskStar“The asterisk in a glob pattern matches any file: **/*.ts”
&Ampersand“The double ampersand is the logical AND operator: if (isValid && isReady)”
@At signAt symbol“Use the at sign to tag a reviewer in a GitHub comment: @alice can you review this?”
#HashPound sign / Number sign“Add a hash at the start of the line to write a comment in Python.”
%PercentModulo operator“The percent sign is the modulo operator in most languages: 10 % 3 === 1”
$Dollar sign“In a shell script, put a dollar sign before a variable name: echo $HOME”
_Underscore“Use underscores between words in a snake_case variable name.”
|PipeVertical bar“Pipe the grep output into wc to count the matching lines: grep 'error' log.txt | wc -l”
~Tilde“In package.json, a tilde before a version allows patch updates: ~1.2.3”
`BacktickGrave accent“Wrap the variable in backticks to use it inside a template literal: `Hello, ${name}!`”
^Caret“The caret in package.json allows any compatible minor version: ^2.0.0”
Practice this section →

Key Takeaways

  • The . symbol is called 'period' in American English and 'full stop' in British English.
  • The ` symbol is called 'backtick'. Use it to say: 'Wrap the string in backticks to create a template literal.'
  • The | symbol is called 'pipe' in developer contexts. Example: 'Pipe the output into grep.'
  • The # symbol is called 'hash' in British English and 'pound sign' in American English.
  • The ^ symbol is called 'caret', and the ~ symbol is called 'tilde'. Both appear in package.json version ranges.

English for developers

Practice naming these symbols

Each sentence is a spoken-style explanation — where the code is failing, why something was changed, or what it's doing. Pick the symbol name that fits.

Standard Punctuation

↑ Back to the theory
Why it changed

I end every commit message with a — it's our style guide rule.

What it's doing

This separates the two parameters so the function knows where one argument ends and the next begins: foo(a, b)

Why it changed

I added a at the end of this line because our linter's style guide requires it, even though JavaScript doesn't need it: const x = 5;

What it's doing

This right after the variable name declares its type in TypeScript: let age: number

Where it's failing

The bug is right after the on line 12 — it negates the check, so the function runs when it shouldn't: if (!isReady) { ... }

What it's doing

This right after 'user' is doing optional chaining — it stops the error when user is null: user?.profile?.avatar

Why it changed

This review comment says the error message isn't informative — I used an to write the contraction 'isn't'.

What it's doing

In this JSON file, wrap every key and string value — single quotes aren't valid here: {"name": "Alice"}

Why it changed

I changed the string from double quotes to because our linter prefers them for this project: 'Alice'

What it's doing

The between 'kebab' and 'case' is just part of the naming convention for this CSS class: kebab-case-example

What it's doing

This between 10 and 15 means a numeric range in the documentation, not a minus sign: pages 10–15

Why it changed

I added an here to insert a side comment into the sentence without a full parenthetical: She opened the PR—without running the tests—and merged it.

What it's doing

These right after the function name are what actually calls it — without them, you're just referencing the function: doSomething()

Where it's failing

The crash is happening inside those — we're accessing index 5 on an array that only has 3 items: items[5]

What it's doing

Those three dots — the — are the spread operator here, copying every item from the old array into the new one: [...oldArr, newItem]

Developer Symbols

↑ Back to the theory
Where it's failing

The syntax error is because the never get closed — the function body has no matching brace: function run() { console.log('hi');

What it's doing

Those around 'string' are declaring the generic type for this array in TypeScript: Array<string>

What it's doing

Every in this URL marks the start of a new path segment: /api/v1/users

Why it changed

I added a right before the quote to escape it, otherwise the string ends too early: "She said \"hi\"."

What it's doing

That in the glob pattern matches any file in this folder, no matter the name: **/*.ts

Where it's failing

The condition never passes because there's only one instead of two — it's being read as a bitwise AND, not a logical one: if (isValid & isReady)

Why it changed

I added the before her username in this comment so she gets notified about the review: @alice can you take a look?

What it's doing

That at the start of the line turns everything after it into a comment in Python — it's ignored when the script runs.

What it's doing

This is the modulo operator here — it returns the remainder after dividing 10 by 3: 10 % 3 === 1

What it's doing

That before HOME tells the shell to read it as a variable, not as literal text: echo $HOME

Why it changed

I renamed the variable to use an between each word instead of camelCase, since this file follows snake_case: user_id

What it's doing

That is sending the output of grep straight into wc so we can count matching lines: grep 'error' log.txt | wc -l

What it's doing

That before the version number means npm can install any compatible patch update, nothing bigger: ~1.2.3

Why it changed

I switched to using a here because we need to interpolate the variable directly inside the string: `Hello, ${name}!`

What it's doing

That in package.json means npm can install any newer compatible minor version, not just patches: ^2.0.0

Ready to practice your English at work?

Lingua-e has interactive exercises built around real developer conversations: standups, code reviews, retrospectives, and more. Practice until it comes naturally.

Try Lingua-e for free
Roxana Lafuente

Written by

Roxana Lafuente

Lingua-e's founder

Roxana Lafuente is a software engineer with 8+ years of experience. At the beginning of her career, even though she had already passed the First Certificate in English, she still froze every time she had to speak up in the daily standup. That was a gap nobody was fixing. After 2,000+ standups, she figured out what actually builds fluency: practice that looks like your real work. She built Lingua-e so other developers wouldn't have to take the long road to feel confident working in an international development environment.