Lecture 3 - Interview Techniques / Testing and Defensive Programming

Interview Techniques

Interviewee

Interviewer

Interviewee Rubrics

Question-Specific
Did the student state the assumptions they are making about the problem and design of the solution verbally or in writing, including drawing diagrams as appropriate?
Did the student “talk-out” (verbally express) their thought process as they were implementing the solution?
Ask the student to explain why some portion of their code is important to solving the problem. Are they able to provide a brief, understandable, and compelling explanation?
Were the solutions syntactically correct for Java (7/8), Python, or Javascript, as appropriate?
Ask for an explanation of the solution they provide and why they think it is best. How well is the student able to explain it to you?
Entire Interview
Was the student attentive and focused on the interview?
How knowledgeable or confident did the student appear to you?
Was the student polite and amiable? (5 = exellent to 0 = poor)
Did the student seem like they would be a good team player? (i.e. were they willing to explore alternative suggestions?)
How many hints did the student need over the entire interview? (5 = none, 4 = one or two, 3 = 3-4, 2 = 5-6, 1 = more than six)

Testing and Defensive Programming

Testing

Unit Testing

Boundary Conditions / Edge Cases

Black Box Testing & White Box Testing


Defensive Programming

The Robustness Principle

The Robustness Principle, a.k.a. Postel's Law, is a design guideline for software and systems, particularly in networking, which states:

"Be conservative in what you send, be liberal in what you accept."

2D Array Performance in Java


Multi-Threading


Back to Home Next Lecture