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).
Congratulations @shivamahajan5! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Good thoughts