I've seen tens if not more people from my unknown middle EU university nail the interviews, ending up with jobs at Google, Facebook, Microsoft etc. and I've cooperated with some of them, knowing that their programming skills and knowledge, teamwork are lacking. But they can solve some simple dynamic programming problems, or maybe a silly breadth-first-search, and they'll get the job.
I, personally, wouldn't like to be hired at a firm that evaluates me that ridiculously. Yes, I'm a fresh graduate but thinking that knowing Dijkstra's algorithm evaluates my abilities makes me believe the whole culture is entirely deformed and I do not want to be fascinated by these ridiculous puzzles when I'm working with others.
Give them a week to implement something of larger complexity and they are drowned by so many concepts they decided to skip to earn an internship/full-time position at their beloved giants.
But I guess giants can afford having engineers that aren't that productive, or aren't doing projects that matter. I wouldn't like to be one of these engineers.
So, the real question is do you want that, or is the cash blinding you? :D
Books like these below can increase your chances significantly:
Gayle also has a number of YouTube videos such as:
and a web site:
Elements of Programming Interviews: The Insider's Guide by Adnan Aziz
Programming Interviews Exposed: Secrets to Landing Your Next Job by John Mongan, Noah Kinder, and Eric Giguire
Algorithms by Dasgupta, Papadimitriou and Vazirani:
And Elements of Programming Interviews by Aziz, Lee and Prakash:
As for study, I highly recommend the index page of this book, Elements of Programming Interviews, as a reference. It contains a catalogue of questions, whose complexity exceeds that of CTCI or PIE. Here are the links.
For the entire book, http://www.amazon.com/Elements-Programming-Interviews-Inside...
For just the index page, http://elementsofprogramminginterviews.com/pdf/epi-toc.pdf.
You can see the proof for yourself when you burn through the following two books within the three months.
You need to spend 4hrs+ on weekends though. You will get to talk to candidates already working in the top companies and will be working in a group of 20+ highly motivated and intelligent peers.
2.) Work through one of the popular coding interview books .
3.) Practice off-keyboard things like white-boarding and public speaking. Get up in front of your white board and work through a problem like you're teaching a class on the subject.
I recognize that 1 and 2 might feel like gaming the system a bit - they are, but as long as companies continue to practice contrived interviews targeted preparation will naturally follow.
As stated, you don't lack the ability to perform in general, just within the artificial confines of an interview.
Get dozens of book recommendations delivered straight to your inbox every Thursday.