Programming Basics
Values, control flow and functions: what every line of code is built from.
Backend Engineer track
Junior
Write correct code, ship small changes safely, ask good questions.
Core: start here
- Dates and TimesTime zones, UTC, ISO 8601, and why date bugs are everywhere.
- Floating-Point NumberA binary approximation of real numbers, and why 0.1 + 0.2 != 0.3.
- Naming ThingsChoosing names that reveal intent; one of the hardest parts of programming.
- Null / None / nilA value meaning "nothing here", and the source of countless crashes.
- Time ZoneOffsets from UTC that change with location and daylight saving.
44 more junior concepts
- ASCIIThe original 7-bit character set that UTF-8 is backward compatible with.
- Base CaseThe condition that stops recursion.
- Block Scope vs Function ScopeWhether a variable lives until the end of its block or of the whole function.
- BooleanA true/false value.
- Boolean Flag ArgumentsPassing true/false to switch a function's behavior, and why it hurts readability.
- Character EncodingHow characters map to bytes: ASCII, UTF-8, UTF-16.
- Code CommentText for humans in code, best used to explain why rather than what.
- Conditional (if/else)Running different code depending on a condition.
- ConstantA name bound to a value that cannot be reassigned.
- Control FlowThe order in which statements execute: branches, loops, returns.
- Data TypeThe kind of value something is, which determines what operations are valid on it.
- Default ParameterA parameter value used when the caller omits it.
- Expression vs StatementAn expression produces a value; a statement performs an action.
- FunctionA named, reusable block of code that takes inputs and returns an output.
- Global VariableA variable visible everywhere, and why it makes code hard to reason about.
- IntegerA whole-number type, usually with a fixed size and range.
- ISO 8601The standard text format for dates and times, like 2026-10-10T09:00:00Z.
- IterationStepping through the items of a collection one at a time.
- LoopRepeating code with for, while, do-while or for-each.
- Magic NumberAn unexplained literal in code that should be a named constant.
- Off-by-One ErrorA loop or index that runs one step too many or too few.
- OperatorA symbol that performs an operation on values, like +, == or &&.
- Operator PrecedenceThe rules for which operators bind first in an expression.
- Parameter vs ArgumentParameters are in the definition; arguments are the values passed at the call.
- Primitive TypeA built-in basic type such as integer, float, boolean or character.
- RecursionA function solving a problem by calling itself on smaller inputs.
- Regular ExpressionA pattern language for matching and extracting text.
- Return ValueThe result a function hands back to its caller.
- ScopeThe region of code where a name is visible.
- ShadowingAn inner variable hiding an outer one with the same name.
- Short-Circuit Evaluation&& and || stopping as soon as the result is known.
- Stack OverflowCrashing when the call stack runs out of space, usually from runaway recursion.
- StringA sequence of characters, usually immutable.
- String InterpolationEmbedding values directly inside a string literal.
- Switch / MatchChoosing between many branches based on a value.
- Ternary OperatorA compact inline if/else expression.
- Truthy and FalsyNon-boolean values that act as true or false in conditions.
- Type CoercionImplicit conversion by the language, like "5" + 1 in JavaScript.
- Type ConversionTurning a value of one type into another, explicitly or implicitly.
- UnicodeThe universal character set, and why string length is trickier than it looks.
- Unix TimestampSeconds since 1970-01-01 UTC; a simple, unambiguous point in time.
- UTF-8The dominant variable-length encoding of Unicode.
- VariableA named reference to a value stored in memory.
- Variadic FunctionA function that accepts any number of arguments.
Mid-level
Own a feature end to end without hand-holding.
- Bitwise OperationOperating on individual bits: AND, OR, XOR and shifts.
- Integer OverflowA value exceeding its type's range and wrapping around or failing.
- Pattern MatchingBranching on the shape of data and destructuring it at the same time.
- Tail RecursionRecursion where the call is the last action, which some languages turn into a loop.
Senior
Own a system, its failure modes, and its trade-offs.
Nothing here yet.
Staff
Shape how many teams build, across systems.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.
Data Analyst track
Junior
Write correct SQL, build trusted dashboards, ask good questions.
- Null / None / nilA value meaning "nothing here", and the source of countless crashes.
- Off-by-One ErrorA loop or index that runs one step too many or too few.
- StringA sequence of characters, usually immutable.
Mid-level
Own an analysis end to end, from vague question to recommendation.
- Dates and TimesTime zones, UTC, ISO 8601, and why date bugs are everywhere.
- Floating-Point NumberA binary approximation of real numbers, and why 0.1 + 0.2 != 0.3.
- ISO 8601The standard text format for dates and times, like 2026-10-10T09:00:00Z.
- Regular ExpressionA pattern language for matching and extracting text.
- Time ZoneOffsets from UTC that change with location and daylight saving.
- Unix TimestampSeconds since 1970-01-01 UTC; a simple, unambiguous point in time.
- UTF-8The dominant variable-length encoding of Unicode.
Senior
Own experimentation and metrics design; call out bad numbers.
Nothing here yet.
Staff
Shape how the organization measures and decides.
Nothing here yet.
Principal
Set measurement strategy across the company.
Nothing here yet.
Data Engineer track
Junior
Build and fix pipelines from clear specs; write correct SQL.
- ASCIIThe original 7-bit character set that UTF-8 is backward compatible with.
- Base CaseThe condition that stops recursion.
- Block Scope vs Function ScopeWhether a variable lives until the end of its block or of the whole function.
- BooleanA true/false value.
- Boolean Flag ArgumentsPassing true/false to switch a function's behavior, and why it hurts readability.
- Character EncodingHow characters map to bytes: ASCII, UTF-8, UTF-16.
- Code CommentText for humans in code, best used to explain why rather than what.
- Conditional (if/else)Running different code depending on a condition.
- ConstantA name bound to a value that cannot be reassigned.
- Control FlowThe order in which statements execute: branches, loops, returns.
- Data TypeThe kind of value something is, which determines what operations are valid on it.
- Dates and TimesTime zones, UTC, ISO 8601, and why date bugs are everywhere.
- Default ParameterA parameter value used when the caller omits it.
- Expression vs StatementAn expression produces a value; a statement performs an action.
- Floating-Point NumberA binary approximation of real numbers, and why 0.1 + 0.2 != 0.3.
- FunctionA named, reusable block of code that takes inputs and returns an output.
- Global VariableA variable visible everywhere, and why it makes code hard to reason about.
- IntegerA whole-number type, usually with a fixed size and range.
- ISO 8601The standard text format for dates and times, like 2026-10-10T09:00:00Z.
- IterationStepping through the items of a collection one at a time.
- LoopRepeating code with for, while, do-while or for-each.
- Magic NumberAn unexplained literal in code that should be a named constant.
- Naming ThingsChoosing names that reveal intent; one of the hardest parts of programming.
- Null / None / nilA value meaning "nothing here", and the source of countless crashes.
- Off-by-One ErrorA loop or index that runs one step too many or too few.
- OperatorA symbol that performs an operation on values, like +, == or &&.
- Operator PrecedenceThe rules for which operators bind first in an expression.
- Parameter vs ArgumentParameters are in the definition; arguments are the values passed at the call.
- Primitive TypeA built-in basic type such as integer, float, boolean or character.
- RecursionA function solving a problem by calling itself on smaller inputs.
- Regular ExpressionA pattern language for matching and extracting text.
- Return ValueThe result a function hands back to its caller.
- ScopeThe region of code where a name is visible.
- ShadowingAn inner variable hiding an outer one with the same name.
- Short-Circuit Evaluation&& and || stopping as soon as the result is known.
- Stack OverflowCrashing when the call stack runs out of space, usually from runaway recursion.
- StringA sequence of characters, usually immutable.
- String InterpolationEmbedding values directly inside a string literal.
- Switch / MatchChoosing between many branches based on a value.
- Ternary OperatorA compact inline if/else expression.
- Time ZoneOffsets from UTC that change with location and daylight saving.
- Truthy and FalsyNon-boolean values that act as true or false in conditions.
- Type CoercionImplicit conversion by the language, like "5" + 1 in JavaScript.
- Type ConversionTurning a value of one type into another, explicitly or implicitly.
- UnicodeThe universal character set, and why string length is trickier than it looks.
- Unix TimestampSeconds since 1970-01-01 UTC; a simple, unambiguous point in time.
- UTF-8The dominant variable-length encoding of Unicode.
- VariableA named reference to a value stored in memory.
- Variadic FunctionA function that accepts any number of arguments.
Mid-level
Own pipelines and models end to end, including their quality.
- Bitwise OperationOperating on individual bits: AND, OR, XOR and shifts.
- Integer OverflowA value exceeding its type's range and wrapping around or failing.
- Pattern MatchingBranching on the shape of data and destructuring it at the same time.
- Tail RecursionRecursion where the call is the last action, which some languages turn into a loop.
Senior
Design the platform's storage, processing and modeling choices.
Nothing here yet.
Staff
Shape how the whole organization produces and uses data.
Nothing here yet.
Principal
Set data strategy and architecture across the company.
Nothing here yet.
Frontend Engineer track
Junior
Build UI that works, ship small changes safely, ask good questions.
Core: start here
- Null / None / nilA value meaning "nothing here", and the source of countless crashes.
- Truthy and FalsyNon-boolean values that act as true or false in conditions.
- undefinedJavaScript's value for a variable or property that was never assigned.
47 more junior concepts
- ASCIIThe original 7-bit character set that UTF-8 is backward compatible with.
- Base CaseThe condition that stops recursion.
- Block Scope vs Function ScopeWhether a variable lives until the end of its block or of the whole function.
- BooleanA true/false value.
- Boolean Flag ArgumentsPassing true/false to switch a function's behavior, and why it hurts readability.
- Character EncodingHow characters map to bytes: ASCII, UTF-8, UTF-16.
- Code CommentText for humans in code, best used to explain why rather than what.
- Conditional (if/else)Running different code depending on a condition.
- ConstantA name bound to a value that cannot be reassigned.
- Control FlowThe order in which statements execute: branches, loops, returns.
- Data TypeThe kind of value something is, which determines what operations are valid on it.
- Dates and TimesTime zones, UTC, ISO 8601, and why date bugs are everywhere.
- Default ParameterA parameter value used when the caller omits it.
- Expression vs StatementAn expression produces a value; a statement performs an action.
- Floating-Point NumberA binary approximation of real numbers, and why 0.1 + 0.2 != 0.3.
- FunctionA named, reusable block of code that takes inputs and returns an output.
- Global VariableA variable visible everywhere, and why it makes code hard to reason about.
- IntegerA whole-number type, usually with a fixed size and range.
- ISO 8601The standard text format for dates and times, like 2026-10-10T09:00:00Z.
- IterationStepping through the items of a collection one at a time.
- LoopRepeating code with for, while, do-while or for-each.
- Magic NumberAn unexplained literal in code that should be a named constant.
- Naming ThingsChoosing names that reveal intent; one of the hardest parts of programming.
- Off-by-One ErrorA loop or index that runs one step too many or too few.
- OperatorA symbol that performs an operation on values, like +, == or &&.
- Operator PrecedenceThe rules for which operators bind first in an expression.
- Parameter vs ArgumentParameters are in the definition; arguments are the values passed at the call.
- Primitive TypeA built-in basic type such as integer, float, boolean or character.
- RecursionA function solving a problem by calling itself on smaller inputs.
- Regular ExpressionA pattern language for matching and extracting text.
- Return ValueThe result a function hands back to its caller.
- ScopeThe region of code where a name is visible.
- ShadowingAn inner variable hiding an outer one with the same name.
- Short-Circuit Evaluation&& and || stopping as soon as the result is known.
- Stack OverflowCrashing when the call stack runs out of space, usually from runaway recursion.
- StringA sequence of characters, usually immutable.
- String InterpolationEmbedding values directly inside a string literal.
- Switch / MatchChoosing between many branches based on a value.
- Ternary OperatorA compact inline if/else expression.
- Time ZoneOffsets from UTC that change with location and daylight saving.
- Type CoercionImplicit conversion by the language, like "5" + 1 in JavaScript.
- Type ConversionTurning a value of one type into another, explicitly or implicitly.
- UnicodeThe universal character set, and why string length is trickier than it looks.
- Unix TimestampSeconds since 1970-01-01 UTC; a simple, unambiguous point in time.
- UTF-8The dominant variable-length encoding of Unicode.
- VariableA named reference to a value stored in memory.
- Variadic FunctionA function that accepts any number of arguments.
Mid-level
Own a feature end to end without hand-holding.
- Bitwise OperationOperating on individual bits: AND, OR, XOR and shifts.
- Pattern MatchingBranching on the shape of data and destructuring it at the same time.
- Tail RecursionRecursion where the call is the last action, which some languages turn into a loop.
Senior
Own an app's architecture, performance, and failure modes.
- Integer OverflowA value exceeding its type's range and wrapping around or failing.
Staff
Shape how many teams build, across apps.
Nothing here yet.
Principal
Set technical direction for the organization.
Nothing here yet.