Skip to content

Instantly share code, notes, and snippets.

@joshwyatt
Last active February 25, 2018 17:15
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joshwyatt/2c9dde8359f0ba091ffca855982610be to your computer and use it in GitHub Desktop.
Save joshwyatt/2c9dde8359f0ba091ffca855982610be to your computer and use it in GitHub Desktop.
Technical Interviewing at a Whiteboard Cheatsheet

Technical Interviewing at a Whiteboard Cheatsheet

Throughout the entirety of the interview:

  • Be friendly
  • Be talking. Especially when you are not sure what to do next, or, are thinking about what you will do, you need to be sharing these thoughts with your interviewer
  • Be using eye contact to check in with your interviewer
  • Be honest (about what you've done, what you don't know)
  • Be enthusiastic about a challenge
  • Be a delightful coworker

When given a programming challenge to solve:

  1. Consider the amount of whiteboard space you have to work with
  2. Define inputs and outputs (at the top left corner of the whiteboard)
  3. Ask if there are any constraints, especially around inputs and time/space complexity(make note of them below the inputs and outputs)
  4. Try to identify edge cases
  5. Visually / spatially work at a solution on the whiteboard
  6. Write down "rules to the process" as you discover them
  7. Test out your visual representation, and rules, with some inputs (aka test cases)
  8. Try to break your visual representation, and rules, with edge case scenarios
  9. Pseudo code out the solution (feel free to use fantasy functions), always mapping directly from your visuals
    • Revisit and iterate on your visuals if you find your pseudo code not mapping directly
  10. Write actual code (feel free to use fantasy functions), always following your pseudocode precisely
    • Revisit and iterate on your visuals and pseudo code if you find your code not following precisely
  11. Always return to the whiteboard when you find yourself needing to "figure something out" that you have not already explored, such as the details of a fantasy function, or an unforseen aspect of the problem
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment