Interviews are intimidating and difficult.
They are as dreadful as speaking in public.
The good news is, just like public speaking, interviewing is a skill that we can practice and develop.
The following steps transformed me from a mumbling oaf into a well-oiled interview machine.
Open an IDE, write and test a program for reversing strings.
Repeat for making a queue, a stack, and a linked list.
Then make and test a program for reversing the linked list.
This will help you find out how rusty you are.
And if you are rusty, then finishing these will help you build confidence.
Furthermore, to do well on interviews you need to know the implementation of these data structures like the back of your hand.
Buy these two books and read them from cover to cover:
It's okay if you find the problems too difficult at first.
I did too.
Read the solution and then try to write it out youreslf on the white board.
Somehow, as if by osmosis, you will eventually be able to solve them on your own.
Getting the whiteboard is essential because there is a huge gap between solving a problem on the white board and any other method.
Also, try solving a few in google docs or on http://code.stypi.com/ to prepare for phone interviews.
Go through mock interviews with friends and co workers.
Practice makes perfect. Especially if we are practicing as closely to the real thing as possible.
Read every entry on leetcode, but try to solve the problems on your own first.
Then you can start checking careercup and glass door for more interview questions.
Do some interviews!
Save your dream company for near the end and start with the easier companies first.
Speaking from experience, having Palantir as my first onsite was embarassingly dumb.