How to crack a coding interview of biggest tech companies like Google (I did), Facebook, etc?

in #coding7 years ago (edited)

This is a 5 step formula that I followed and I tell everyone this only whenever someone asks me.
Please note that this answer assumes that you want start from scratch.

Step 1: Do CS50. There is a catch though. Do it in less than a month. All standard edition Psets and lectures (and shorts if you require) in less than a month.
Course link: CS50 from Harvard

Step 2: Do algorithms course on coursera by Tim Roughgarden offered by stanford university. Do this according to course's pace. Design and analysis of Algorithms : part 1.
Course link: Algorithms: Design and Analysis, Part 1

Step 3: Time to enter the world of competitive coding. Start with codechef and spoj. Do atleast 150-175 easy problems which require basic logic within 2-3 months.
Further steps include step 3 running in parallel. You have to continue practicing on codechef and spoj but slowly raising the level of questions to graphs, DP, segment trees, etc.
Codechef :Programming Competition,Programming Contest,Online Computer Programming
Spoj :Sphere Online Judge (SPOJ)
Problems categories: A2 Online Judge

Step 4: Do algorithms course which is the sequel of course I listed in step 2. Design and analysis of algorithms: part 2. Do it according to course's pace. Remember step 3 runs in parallel. By the time this course ends you should be somewhere around 300 problems old. ( combined on codechef and spoj)

Course link: Algorithms: Design and Analysis, Part 2

Step 5: Start doing practice and contests on Codeforces and Topcoder. Try to get in division 1 and more importantly stay there. This step is really important.
Codeforces
Topcoder

PROGRAMMING LANGUAGES:

Languages I know: C, C++, Python
Question: How to learn them?
Ans: C is taught in almost every college. To learn c++ and other languages there is a very simple technique. The questions that you solve on all these online judges try to do them in the languages yo want to learn.

Question 2: How to do the above tasks if you don't already know the language?
Ans: Google something like "How to ______ in python/c++/java/etc"
and if possible look for Stack Overflow links. The ____ can be filled with the following:

  • Take user input
  • Declare an array
  • Sort elements
  • Make a hash table or map
  • print output.
    And whatever you need.

I learnt Python like this and bits of java too. This approach works because once you are done with C language and Harvard CS50 you will know all the concepts and you will be at a stage where you will just need to get used to with the syntax of the language and that can be done while practicing on online judges.

This is what i did. I hope this helps you. I was able to successfully crack internship and full time job offers for companies like Google (twice: Intern and full time), Amazon (Intern), and Adobe (full time).