Coding Signals
The point of interviews is for interviewers to extract signals from certain candidate behaviors. In coding interviews, the signals can be broadly classified into the following categories: Problem Solving, Technical Competency, Testing, and Communication.
When interviewers take down interview feedback, these are likely what is on their feedback sheet.
#
Problem solving#
Understanding the problem- ๐ Understood the key aspects of the problem quickly
- ๐ Had difficulty in understanding the key aspects of the problem
#
Solution/approach- ๐ Approached the problem in a systematic and logical manner
- ๐ Did not demonstrate a logical thought process for approaching the problem
#
Improving the solution- ๐ Suggested a more efficient solution when prompted, or proactively coming up with a better solution
- ๐ Had difficulty in coming up with a more efficient solution even after being prompted
#
Trade-offs analysis- ๐ Explained the trade-offs of different approaches clearly and correctly
- ๐ Failed to describe trade-offs of different approaches
#
Hinting- ๐ Did not require any major hints
- ๐ Needed plenty of hints
#
Technical competency#
Speed- ๐ Quickly implemented a working solution
- ๐ Was not able to complete the solution
#
Correctness/Accuracy- ๐ Implemented the solution correctly (e.g., working solution, minimal bugs)
- ๐ Unable to correctly implement a solution (e.g., non-working solution, incorrect logic, and/or serious bugs)
#
Complexity analysis- ๐ Able to determine the algorithmic time and space complexity
- ๐ Was not able to determine the algorithmic time and space complexity (explain why TC came up with such an answer)
#
Mastery of chosen programming language- ๐ Demonstrated mastery of the chosen programming language
- ๐ Does not seem to be familiar with the chosen programming language
#
Implementation- ๐ Implementation was clean and straightforward
- ๐ Implementation was unnecessarily complex and/or messy
#
Coding style- ๐ Coding style was neat (proper indentation, spacing and no bad practices)
- ๐ Coding style was messy (inconsistent indentation, weird spacings, etc)
#
Testing#
Common cases- ๐ Tested their code against various typical cases
- ๐ Failed to test the code against typical cases
#
Corner cases- ๐ Found and handled corner/edge cases
- ๐ Failed to consider corner/edge cases
#
Self-correction- ๐ Identified and corrected bugs in the code (where applicable)
- ๐ Was not able to discover and fix bugs even after being prompted
#
Communication#
Clarify problem- ๐ Appropriately asked good, clarifying questions about the problem
- ๐ Failed to confirm understanding/ask appropriate questions
#
Communicating approach- ๐ Able to explain overall approach, technical terms and acronyms (where applicable)
- ๐ Failed to effectively explain overall approach, technical terms and acronyms (where applicable)
#
Explains while coding- ๐ Explains what the code is doing while coding, especially for parts which aren't obvious
- ๐ Keeps silent during coding, or just reading out the code without much explanation