Today, Infusion held a talk in Columbia University about tech interview.
Talker: Nishit Shah @ Infusion, Techinical Account Manager, Dev -> Team Lead -> Manager
3 Real Questions
Smart?
Gets Things Done?
Fit the team?
The Introductions
Tell me about yourself?
Tell me about your last job?
Goal: First Impression + Attitude
Highlight positives from prior roles; things you learned, or unique experiences.
Keep it to 1 minute!
CS Fundamentals
OOP Fundamentals
Data Structure/ Memory Management
Multithreading/ Concurrent Programming
Coding Best Practices
Databases
Goals: Measure experience, aptitude
Access breadth and depth - find gaps
Do not memorize definitions and read out! Provide examples, not just definitions!
Cite bult-in examples from major frameworks.
Show you understand/ have used it.
Don't go overboard! (brevity is beautify)
- "Why"/ "How does"
- Can you give me an example?
- How have you applied this in a project?
- What happens if...
OOP Fundamentals
"What is Object Oriented Programming?"
Polymorphism
Overload vs Override
Abstarct Classes
Interfaces
Access Modifiers
Static, Final, Read only
Constructors & Destructors
Data Structures
Array[], ArrayList
HashMap
...
Memory Management
Scopes
Struct vs Classes
Pass By Value vs Pass By Referrence
Stack vs Heap
Pointers vs Referrences
Garbage Collector
Disposable pattern/ using scopes
Multithreading/ Concurrent Programming
Treads vs Processes
Async, wait, notify, sleep
Context Switching
Race conditions, deadlock
Locks/ Mutexes/ Semaphores
Coding Best Practices
Exception Handling
Logging
Source Control
Commenting
Naming Conventions
Testing
Debugging
Build Management
Databases
Schema Design/ Normalization
Select Statements
Joins
Aggregate Funcs/ Group By
Transactions/ ACID
Tables vs Views
Stored Procedures
ORMs
Algorithms & Problem Solving
Measuring Aptitude:
Applying what ou know
Solving "new" problems
"Hands On" vs Theory: Whiteboarding, writing codes
Thought Process & Reasoning
Communication
Tips:
"Right" matters less than thought process.
Talk your way through the problem.
Break it down. State/ clarify assumptions
Draw/ write it out: visualize your logic.
BUT "knowing the answer" isn't the point, you need to be able to explain it!
Get started; how quickly you can solve matters.
Write out pseudo code/ comments.
State assumptions, think about corner cases.
Example:s
9 balls, same size, 8 are the same weight. Find heavy ball using a balance in the least number of weighings.
Do you have any questions for me?
Tips:
Know what factor you're looking for in a job/ company.
Skip "administrative" questions; (ask the recruiter)
Show you've done your homework
Know the company
Know the interviewer
Example:
1. Everyone seems friendly and energetic - can you tell me more about the culture?
2. How do you support continual learning for your employees, especially new grads?
3. I was really impressed with XXX<case study>. What have been some of your favorite projects?
4. What do you see as the near term challenges and long term opportunities of this role/ position?
5. Do you have any feedback on how today went?