Coding and Programming Symbols: Complete Reference Guide
If you write code, you use dozens of special characters every single day. Brackets, operators, arrows, logical symbols — they are the punctuation of programming. But when you need to type one you don't use often, or reference one for documentation, it helps to have them all in one place.
This guide covers every commonly used coding symbol, what it means in major programming languages, and how to type it.
Bracket and Delimiter Symbols
Brackets are the backbone of code structure. Here is every type:
Parentheses: ( )
Used for function calls, grouping expressions, and defining parameters. In Python, print("hello") uses parentheses to call the print function. In JavaScript, Math.max(1, 2) passes arguments inside them.
Square Brackets: [ ]
Used for arrays, lists, and indexing. fruits[0] accesses the first element. [1, 2, 3] defines an array literal in JavaScript or a list in Python.
Curly Braces: { }
Used for code blocks, objects, and dictionaries. In JavaScript, { name: "Alice" } defines an object. In Python, {"key": "value"} defines a dictionary. In C-style languages, they wrap function bodies and control flow blocks.
Angle Brackets: < >
Used in HTML/XML tags, TypeScript generics, and comparison operators. <div> in HTML, Array<string> in TypeScript generics, x < 10 as a comparison.
Assignment and Comparison Operators
Assignment: =
The single equals sign assigns a value to a variable. let x = 5 in JavaScript, x = 5 in Python. It does NOT mean equality in math — that trips up every beginner.
Equality: == vs ===
In JavaScript, == checks loose equality (with type coercion), while === checks strict equality (no coercion). 5 == "5" is true, but 5 === "5" is false. Python only uses == for equality comparison.
Inequality: != vs !==
!= is loose inequality, !== is strict inequality (JavaScript). Python uses != only.
Comparison: < > <= >=
Less than, greater than, less than or equal, greater than or equal. Universal across virtually all programming languages. Also used as the stream operators << and >> in C++.
Logical Operators
AND: &&
Returns true only if both operands are true. if (isLoggedIn && hasPermission). Python uses the word and instead.
OR: ||
Returns true if at least one operand is true. if (isWeekend || isHoliday). Python uses or.
NOT: !
Reverses a boolean value. !isTrue becomes false. Python uses not.
Ternary: ? :
Shorthand for if-else. let status = isAlive ? "active" : "inactive". JavaScript, C, Java, and many others support this.
Arithmetic and Math Symbols
+— Addition / string concatenation / unary plus-— Subtraction / unary negation*— Multiplication / pointer dereference (C/C++)/— Division%— Modulo (remainder) / percent in CSS**— Exponentiation (Python, JavaScript)++— Increment by 1--— Decrement by 1
Arrow Functions and Lambda Syntax
Fat Arrow: =>
JavaScript arrow function syntax. const add = (a, b) => a + b. Also used in type annotations in TypeScript: (): void => {}.
Thin Arrow: ->
Python lambda and return type hints: lambda x: x * 2 (no arrow needed, but def func() -> str: uses it). In C/C++, used for pointer-to-member access. In Rust, used in match arms and function return types.
Reverse Arrow: <-
Used in R for assignment: x <- 5. Also in Haskell and Scala for similar purposes.
Special Operators
Nullish Coalescing: ??
JavaScript operator that returns the right operand when the left is null or undefined. let name = user.name ?? "Anonymous". Unlike ||, it does not trigger on falsy values like 0 or empty string.
Optional Chaining: ?.
Safely access nested properties without errors. user?.address?.street returns undefined instead of throwing an error if any property in the chain is nullish.
Spread: ...
Expands an iterable or object. [...arr1, ...arr2] merges arrays. {...obj1, ...obj2} merges objects. Works in JavaScript and can be typed with the spread syntax.
Pipeline: |>
Passes the result of one expression as the first argument to the next. Used in Elixir, F#, and proposed for JavaScript. data |> transform() |> filter().
String and Template Symbols
" "— Double quotes (string delimiter)' '— Single quotes (string delimiter)` `— Backticks (template literals in JS, raw strings in some languages)\n— Newline escape sequence\t— Tab escape sequence\\— Literal backslash
Bitwise Operators
&— Bitwise AND|— Bitwise OR^— Bitwise XOR~— Bitwise NOT (complement)<<— Left shift>>— Right shift>>>— Unsigned right shift (JavaScript)
Common Symbols Quick Reference
| Symbol | Name | Common Use |
|---|---|---|
# | Hash / Pound | Comments (Python, Ruby), IDs (CSS), Preprocessor (C) |
@ | At sign | Decorators (Python), Annotations (Java) |
$ | Dollar sign | Variable prefix (PHP, shell), Template literals (JS) |
_ | Underscore | Private variables, snake_case naming, ignored values |
: | Colon | Key-value pairs, type hints (Python), pseudo-selectors (CSS) |
:: | Double colon | Scope resolution (C++, Ruby), method references (Java) |
; | Semicolon | Statement terminator (JS, C, Java). Not needed in Python. |
. | Dot | Property access, method calls, decimal point |
, | Comma | Separator in lists, arguments, arrays |
\ | Backslash | Escape character in strings |
/ | Forward slash | Division, regex delimiters, closing tags |
How to Type These Symbols
Most of these are directly on your keyboard. For the ones that aren't:
- Fat arrow (=>): Equals sign + greater than sign
- Optional chaining (?.): Question mark + period
- Nullish coalescing (??): Two question marks
- Template literal (`): Top-left key on US keyboard, above Tab
- Pipeline (|>): Pipe + greater than sign
- Spread (...): Three periods
Final Thoughts
Programming symbols become second nature after a few months of coding. The tricky ones are the less common operators like nullish coalescing, optional chaining, and bitwise operations. Bookmark this page and come back whenever you need a quick reference. Every developer — junior and senior alike — googles syntax from time to time.