There are many different ways potential employers will interview you technically. Here are a few of the most common:
Take-Home Coding Test
These are the BEST types of tests. They usually will give you a problem to solve and ask you to deliver it to them within 24 hours.
Some importants points:
- NEVER be late - deliver this test as soon as possible
- Comment functions
- If you have complex code, comment about why you needed to program it this way
- If you ran out of time to finish it, or ran out of time to do some best practices, make comments explaining what you would have done (ie 'I would have normally put error handling here')
- Make sure your code is as perfect as you can make it
- Make sure the program runs properly!
- Write unit tests if you have time (this will impress them!!!)
- Follow the instructions exactly, they are also testing your attention to specs/details
White Board Test
These tests are the most difficult. You will be put in front of a whiteboard (and/or paper) and asked to solve a problem in front of one ore more people.
- Don't show your nervousness
- Ask many questions - especially if you don't understand something. They want to see how you think
- Be sure to speak aloud everything that is going through your head in regard to solving the problem. Again, they want to see how you think
- Try and be real and open. Talk to them like they are humans. Any connections you can make with the interviewer will give you a better chance at getting the job
White Board Preparation
White board tests are usually based around brain-teasers or solving a specific algorithm programming question. They are usually always one of those things. I have found it less common to have programming design-based questions (ie how would you build the game of Monopoly).
- Practice algorithmic problems
- Be able to solve the first 5 problems here: https://projecteuler.net/
- Know sorting algorithms, bubble sort, quick sort, merge sort
- Search Google for common programming interview test problems
- Understand data structures as best you can (and when to use them):
- What is the stack vs the heap in regard to programming?
- Hash maps/dictionaries
- Linked Lists
- Binary Search Trees
- Understand Big-O notation
More and more companies are simply doing verbal quizzes for their technical interview.
They are usually questions about programming in general, as well as platform specific questions:
- What is an array?
- What does
- What does inheritance mean?
- What is polymorphism?
- What would I use on iOS to show a list of data to the user?
- Use flash cards to memorize answers to common programming questions
- Memorize platform specific tools - know as many as possible!
- Don't openly reveal your weaknesses, but if asked about something you don't know, don't lie
- Make sure you have built something worthwhile before going to the interview - a portfolio piece of some kind. You need to be able to have something to talk about.
- Make sure to properly demonstrate your character strengths - often your charisma/other skills can compensate for technical weakness
- Don't sound desperate
- Show your determination to learn
- Research the company and its culture and products before your interview
- Ask questions about the interviewer if they let you - the more you know about them the more insight you will have on how to be the person they want