Interview gone wrong

Python comparison chaining (a == b == c)

  • Many see chained comparisons as standard, idiomatic Python that mirrors math notation (e.g., 5 < x < 25, x == y == 10).
  • Others find it obscure or unclear, especially coming from languages where it parses as (a == b) == c.
  • Discussion highlights edge cases: non‑transitive __eq__, numpy arrays raising ambiguity errors, and unintuitive behavior with !=.
  • Some argue Python’s behavior is less surprising than the “C/JS style” once learned; others think introducing a special rule for comparisons increases cognitive load.
  • Alternative design choices: D and Rust reject chained comparisons and force explicit a == b && b == c, which some consider more predictable.

Interview dynamics and evaluation

  • Many argue the interviewer erred by confidently misjudging valid Python syntax, confusing the candidate and then blaming the language.
  • Others see an opportunity: a strong candidate could explain the semantics, demonstrate checks in a REPL, or rewrite to a clearer form.
  • There’s disagreement on using “language tricks” in interviews:
    • One view: show idiomatic mastery (e.g., itertools, generators) and communicate tradeoffs.
    • Another: avoid constructs the interviewer may not know, or at least be ready to explain them.
  • Several commenters criticize judging “style” or concision in a 45‑minute interview; correctness and reasoning are seen as higher signal.
  • Some advocate including tests and even looking up documentation live, as that reflects real‑world practice.

Tic‑tac‑toe logic and correctness

  • Multiple commenters note that checking only cell[0][0] == cell[1][1] == cell[2][2] is insufficient: it also matches three empty cells.
  • Others respond that the overall game flow might avoid this (e.g., only checking after a move on the diagonal), so correctness is unclear from the snippet alone.

Language choice and readability

  • Allowing candidates to use any familiar language is common, but interviewing in a language the interviewer doesn’t know well is seen as risky.
  • Some prefer avoiding chained comparisons for readability across mixed‑background teams; others argue idiomatic, concise expressions are desirable as long as they’re well understood.