© 2021 Matt Thomas

Interview Whiteboard Coding

aka

Live Coding

Steps for success!

  1. Gather requirements

  2. Break down problem

  3. Write pseudocode

  4. Code a solution

  5. Test the solution

  6. Consider changes

Gather Requirements

  • Asking too many questions is better than too few
  • Establish what your input and output is supposed to be
  • Find edge cases
  • Write out requirements
  • Establish programming language and expected structure
    • Run once "root" code
    • Function

The goal is the clarify the problem to the point that there are no more questions.

Break Down the Problem

  • Restate the key points

  • Establish the priorities of the problems

 

Pseudocode

  • Don’t write out any code or syntax
  • Focus on structure
  • Just use plain old English, explain it to your Grandma.

Example:

Enter Value
If Value greater than 10
  Log "Your number is greater than 10"
If Value less than 10
  Log "Your number is less than 10"

Write a Solution

  • Write code! Finally!!!
  • Talk with your interviewer about what you are doing
    • THINK OUT LOUD
  • Mistakes are okay! 
  • Syntax errors are NOT the end of the world!
  • Be sure to write neatly so your code can be read

If whiteboarding digitally, you should be able to drop code in a Chrome developer console and execute.

Test

  • Walk through the steps of your code verbally, OUT LOUD.
  • Assign values your variables. Take us on an input’s journey!
  • Test edge cases

Consider changes

  • Review and fix any bugs

  • Discuss ways to improve

Rules/Expectations

  • Do NOT search for the solution for your question.
  • The use of any AI tools is strictly prohibited!
  • You may use the curriculum or MDN as a reference for JavaScript.
  • A team member should present one section:
    • Requirements clarification & questions asked
    • Break down the problem
    • Present the pseudocode
    • Present the code
    • Run through/Test the code
  • The entire class will discuss improvements & enhancements.

Question 1

Write a JavaScript function that takes in two integers and returns their sum, unless the two integers are equal. If the two integers are equal, then return three times their sum.

Examples:

sum2Integers(10, 20) // --> 30
sum2Integers(10, 10) // --> 60

Question 2

Write a JavaScript function that takes in integers and returns the integer with the highest value.

(Do NOT use Math.max()!!!)

 

Example:

findHighest(5, 8, 1) // --> 8
findHighest([4, 1, -3]) // --> 4

Take note of the argument data type options.
Choose one input data type, you don't have to handle both.

Question 3

Write a function that generates a random number between 0-10.

If the number is greater than 5, log “{number} is greater than five!”.

If it is less than 5, log "{number} is less than five!"

Examples

five() // --> 3 is less than five

Question 4

Write a function that counts the number of vowels in a string.

The vowels are "a", "e", "i", "o" & "u"

Examples:

countVowels('hello') // --> 2
countVowels('why') // --> 0

Question 5

Write a function that determines if a string is a palindrome.

A palindrome is a string that is the same forward and backwards.

Examples:

isPalindrome('racecar') // --> true
isPalindrome('table') // --> false

Question 6

Write a function that accepts 2 arguments:
student name and indeterminate number of test scores

The function should output the name, scores and the average of the scores.

The output should be grammatically correct.

Example:

avgTestScores('John', 95, 70, 87, 82)
// --> John took 4 tests, earning these score(s): 95, 70, 87 and 82.
// --> That's an average score of 83.5.

Bonus Exercise

Complete the Thanksgiving Holiday Dinner Exercise

Thanksgiving Holiday Dinner