From 1cb81bc9b303c83c198c6555594dc5df95703dae Mon Sep 17 00:00:00 2001 From: Yangshun Tay Date: Sat, 14 Sep 2019 15:45:29 -0700 Subject: [PATCH] contents: add coding signals --- contents/coding-round-overview.md | 1 + contents/coding-signals.md | 96 +++++++++++++++++++++++++++++++ website/sidebars.js | 1 + 3 files changed, 98 insertions(+) create mode 100644 contents/coding-signals.md diff --git a/contents/coding-round-overview.md b/contents/coding-round-overview.md index 334afde8..85e0ff1b 100644 --- a/contents/coding-round-overview.md +++ b/contents/coding-round-overview.md @@ -9,5 +9,6 @@ Coding interviews are tough. But fortunately, there's a tried and prove method t 1. Study CS fundamentals 1. Practice solving algorithm questions 1. Internalize the [Do's and Don'ts of interviews](./cheatsheet.md) +1. Know what [signals and behaviors](./coding-signals.md) interviewers are looking out for 1. Practice doing mock interviews 1. Interview successfully to get the job diff --git a/contents/coding-signals.md b/contents/coding-signals.md new file mode 100644 index 00000000..7c6be788 --- /dev/null +++ b/contents/coding-signals.md @@ -0,0 +1,96 @@ +--- +id: coding-signals +title: 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) diff --git a/website/sidebars.js b/website/sidebars.js index 7a31f4f5..81664458 100755 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -19,6 +19,7 @@ module.exports = { 'best-practice-questions', 'during-coding-interview', 'cheatsheet', + 'coding-signals', 'mock-interviews', ], },