Thursday, June 30, 2016

Effective Whiteboarding during Programming Interviews



http://www.coderust.com/blog/2014/04/10/effective-whiteboarding-during-programming-interviews/
Notes and figures on the side
Use one corner of the whiteboard to note down the requirements you have heard or an example figure that your interviewer has drawn. As you are thinking and asking clarifying questions to your interviewer take notes there. These can just be one-word bullets to make you remember all the scenarios
Write Clearly
Try to write as clearly as possible while not slowing down a lot. Yes they are not interested in seeing your calligraphy skills BUT you are still writing this for someone else to read. It has to be legible. The cleaner you write the easier it is for your interviewer to understand. Design diagrams should also be easily understandable
Use the Space Efficiently
Several times, candidates start writing XL size code and then have to inevitably write in super small font cramming in many lines in a small area. Then they turn to use arrows to point to other parts of the board where they will write the remaining code.Avoid that. It’s hard to follow code written on different parts of the board.
When you start writing code for problems, remember that most interview problem solutions span at least 15 – 20 lines of code. You need to make enough room for this much content.
Adapt to the size of whiteboard on which you are going to solve the problem. Sizes of the whiteboard vary a lot even within different rooms of the same company. Always leave some room for potential edits e.g. extra parameters, null checks, trivial if conditions etc.
One pro tip to use space efficiently is to structure your code in small functions.
Edits are part of the game
Don’t be afraid to change code. Several times, interviewers would modify requirements to see how you handle a slightly different or challenging variation of the same problem.
You will also have to edit your code if you find a bug during testing. In such cases, instead of overwriting or crossing out code, it’s better to erase and re-write that part of the code

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts