Learning from Interview


Talking aloud
Communication


- Have a good/friendly/happy conversation with the interviewer
- Eye contact, real discussion
- Make interviewer like you: your personality, your skills etc
- Show the process how you tackle the problem

Always think whether there are different/better approaches
- If you find it (even after you finish your current approaches) , still say it

If there are somethings that you didn't solve or understand
- Ask for hints/solutions 
- if possible
- Even that questions maybe not that important: that shows you want to learn in any cirsumstances

Before interview
- Know how many questions they would ask
- Some companies/interviewers likes to ask simple code questions as warm up, if you spend too much time on it, there may be no much time left for the next real question.
- Though, personally lots of warm up coding questions is not that useful - as it only causes confusion.
- Good warm up questions: 
-- different types: simple dfs/recursion question

When write code
What expectations from the interviewers:
- Do they care about details such as sanity check, corner cases
- Or they focus on the high level algorithm and your problem solving skills
- If they ask you simple coding questions, pay more attention to details when you write the code and later when re-check

- If possible - depend on timings
- Always say: let me check the code again after you finish your first draft code
- Always run some examples:
  - Generalize your example: isPalindromOneDiff

Never say:
I don't know
- Try to solve it, infer from your existing knowledge 

Even after you finish your code/design, think aloud what you can improve
What's the time/space complexity of your current approach
How you can improve it:
- your current approach: O(1) time, O(n) time,  can you use lesser space but still O(1) time, or lesser space but more time: like O(logn) time

When find/realize there are something you can improve: in the code, design
- Say it,
- Fix it 
- in the code, if possible before the interviewer takes the picture

Even after all this, ask the interviewer:
- Take this as a chance to learn something
Is there any better approach?
Did I miss anything in the design?

Reflection
- Think what you can do better, what mistakes you made, what lessons you learned after interview

When write code
What states/variables/invariants you are trying to maintain

Source of bugs
loop variables 
- forget to change them: next=current.next; 

Labels

adsense (5) Algorithm (69) Algorithm Series (35) Android (7) ANT (6) bat (8) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) Java (186) JavaScript (27) JSON (7) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) regex (5) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) xml (5)