This is a 5 step formula that i followed and i tell everyone this only whenever someone asks me.
Please note that this asnwer 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 :
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.
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.
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)
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.
Also take a look at this just somewhere in the middle of step 3.
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 links. The ____ can be filled with the following:
- Take user input
- Declare an array
- Sort elements
- Make a hash table or ma
- 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 andyou 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 don’t have a job at google but i have an internship there for the summers of 2015 as I am still in my 3rd year.
Good luck and do your best.
NOTE: ALL THIS INFORMATION COMES FROM MY EXPERIENCE, SO IF ANYBODY FEELS THAT IT IS WRONG OR MISLEADING, I AM SORRY, CAN’T HELP IT.
EDIT 1: Added some details to the answer.
EDIT 2:There is one more thing i want to add. while following these steps, somewhere in the middle you will fall in love with all of this and then you won’t have to look for answers on how to proceed. You will move forward on your own and all the good things which you desire will happen on their own. Trust me on that.
EDIT 3: For those wondering how to apply to Google.