Why this matters: In code reviews, you don't just write "LGTM" — you explain what the code does and why changes are needed. In interviews, you walk the interviewer through your solution. In documentation, you describe API behaviour. All of these require precise, confident technical English.

Example: Describe this function

TypeScript
function debounce(fn: Function, delay: number) {
  let timer: ReturnType<typeof setTimeout>;
  return function (...args: any[]) {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), delay);
  };
}
Plain English description

This function takes another function and a delay in milliseconds as arguments. It returns a new function that, when called, waits for the specified delay before executing the original function. If the returned function is called again before the delay expires, the timer resets. This prevents the original function from being called too frequently — a pattern called "debouncing".

Useful language for describing code

Describing purpose

  • "This function takes X and returns Y."
  • "This class is responsible for managing…"
  • "This method checks whether…"
  • "This query retrieves all records where…"

Describing sequence

  • "First, it validates the input…"
  • "Then, it calls the database…"
  • "If X is true, it returns Y; otherwise…"
  • "Finally, it cleans up the resources."

Describing errors

  • "This error occurs when…"
  • "The stack trace shows that the error was thrown in…"
  • "The root cause is…"
  • "This is a NullPointerException, which means…"