Tathastu Roadmaps
enabled by TwoWaits
0 to 1 Path to Become
a Master Coder
By Achintya Gaumat
Founder and Chief Mentor, TwoWaits,
HBTU Kanpur 2016 CSE Alumni
Who can become a Master Coder? & WHY?
● Ones who enjoy problem solving, doing coding, irrespective of any
expectations of rewards. || कमर्मण्येवा धकारस्ते मा फलेषु कदाचन ||
● Being good in maths, high IQ is not a bar, you can improve.
● Apart from becoming better in problem solving skills, better
software engineer, you will get a plenty of rewards, recognition.
● Companies evaluate coding skills for freshers (even for exp upto
3-5 years). So it helps in getting hired!!
What is Coding?
● Solving real world problems using programming languages.
● Includes learning Data Structures & Algorithm along with some
concepts of Maths.
● Apply above learned concepts using any programming language.
● Platforms : GeeksForGeeks, Hackerrank, Hackerearth, Leetcode.
● Competition of coding is Competitive Programming. De-facto CP
platforms in India : CodeChef & CodeForces.
Different Stages of Learning
● Stage 0 : Selecting a Language and Mastering it
● Stage I : Beginner DSA
● Stage II : Competitive Programming & Advance DSA
● Stage III : Participating in Coding Contests
● Stage IV : Master Coder & Beyond
Beyond you can just keep participating and learning more algos.
Stage 0 : Selecting a Language
● You only have 3 options : C++, JAVA, Python
● C++ : Useful in written of companies, you can’t make any projects in
it, most preferred for CP.
● JAVA : Helpful in job interviews, web/android, plenty of support.
Recommended if interest in coding only for job purpose.
● Python : If you wish to make career in Data Science, make projects.
Decent language but not that preferred for coding.
● For college you need C, if you learn C++, it covers that.
Stage 0 : Mastering that Language (max 15 days)
● Learn just basic syntax, loops, data types, functions, recursion, etc.
● Practice few programs like prime number, palindrome, string
operations, printing patterns, etc.
● You can use Hackerrank for practice, books for different languages,
some YT Channels. You may join some course but your purpose
should be the same.
● Evaluate by solving at least 50 problems for your language on
Hackerrank before moving on to the next stage!
Stage I : Beginner DSA (max 15 days)
● Data Structure is a collection of data values, the relationship among
them and the operations that can be applied to that data.
● An algorithm is a set of coding instructions to achieve some
operations on data or achieve some functionality.
● Begin with learning : Asymptotic Analysis, Time and Space
Complexity. Algorithms for Searching (Linear & Binary), Sorting
(Selection, Insertion, Merge, Quick).
● Start DS with Strings, Arrays, Stack, Queue, LinkedList.
Stage I : Beginner DS & Algos (Contd.)
● Understand the working, implementation and applications of above
topics by watching tutorials or reading books.
● YouTube Channel : MyCodeSchool
For Theory : GeeksForGeeks
● Topicwise problems on Leetcode. Go to problems section, select by
topic, difficulty. Do 10-15 problems for each data structure.
● Do at least 100 problems before moving on to the next stage. Refer
Tathastu DSA Series problems for reference.
Stage II : Advance DSA (max 60 days)
● Learn non-linear Data Structures like Tree, Graph, Maps and
Hashing. Followed by learning Heap, Trie, Suffix Tree, Segment tree
if you wish to go deeper.
● Important algorithms like Divide & Conquer, Greedy, Dynamic
Programming, Branch & Bound, Backtracking, Randomized.
● Practice problems for above topics on Tathastu DSA Series. Do at
least 200 problems, you may practice even more.
● You may refer books like Narsimha Karumanchi for this segment.
Stage II : Competitive Programming (max 60 days)
● Advance DSA is almost similar to preparing for CP, you may start it
alongside.
● Learn some more concepts like Prime, Sieve, Segmented Sieve, Prime
Factorisation, Sqrt Decomposition, etc.
● Refer Raj Vikramaditya’s CP Sheet, solve 170 problems topic wise.
● There is no restriction to do these before going to coding contests,
you may start participating in coding contests in this stage itself.
Stage III : Coding Contests (max 90 days)
● Companies give you 1-3 problems to be solved in 60-75 minutes, you
have to pass all test cases, either open or private.
● You need to master this format, take part in contests on Hackerrank,
Hackerearth, some challenges on Leetcode, etc.
● Challenge here is to pass all test cases, you need to take care of all
boundary conditions along with core logic.
● Participate in 4-5 contests on CodeChef, then begin on CodeForces
as well. Do at least 3-4 contests on a monthly basis!
Stage IV : Master Coder & Beyond (min 90 days)
● Now go for next level contests like ACM ICPC, IOI, IEEE Xtreme.
Continue participating in the regular contests of CodeForces.
● Google Kickstart, 8 rounds every year, if you get a good rank in that
you may get a call for interview. Hacker Cup by FB is another.
● Contests of other companies like TCS, Infosys, Codenation organize
yearly coding contest like CodeVita, Codeagon, HackWithinFy etc.
● Your aim should be to get at least Expert on CodeForces and 5* on
CodeChef. Then focus on maintaining it.
Resources :
● Platforms : Hackerrank, Leetcode, GFG, CodeChef, CodeForces.
● YT Channels : MyCodeSchool, Apna College, GeeksForGeeks,
MySirG for Hindi, CodeWithHarry.
● Books : Language specific books, Narsimha Karumanchi for DSA
Learning available in all 3 languages.
● List of DSA Qs : 450 Qs DSA Cracker by Love Babbar, 30 days SDE
Plan and CP Sheet by Raj Vikramaditya, Tathastu DSA Series by
Twowaits.
Q&A
Let’s hear what you guys have to say or
Email us at
[email protected]