Free Coding & DSA resources anyone can crack any company
Lavakumar Thatisetti
Senior Software Engineer @ Atlassian | Ex-SSE @ Arcesium (D.E. Shaw) | Algorithms & Problem Solving ???? | 1 US Patent | Mentor | System Design?? | Exploring AI ??
Hi Community
As I promised in my previous post, I am going to share with you all the resources and only resources required to crack any coding interview. All you need to do is to follow it religiously.
If you're reading this article, I'm assuming you want to learn and improve your DSA and problem-solving skills and other concepts like HLD, LLD, and Machine Coding Round, which I will share in a different article.
Table of Contents
Problem Solving
You cannot say "yourself as a problem solver or coder" if you just cracked a product-based company or if you know some DSA concepts and are ready to become a mentor to crack #faang . You have to teach yourself. No one in the world can teach problem-solving. You have to do it yourself. You have to get 10's of wrong solutions to get 1 correct problem to the solution, so it is a marathon, not some 1-2 month gyan.
People who are teaching DSA are just sharing their perspectives and knowledge to arrive at the answer. A problem has many solutions that can be worst, average & good. To get a better solution and to solve in the most optimized way we have something called data structures,?and using one or more of them will get you to the solution. Among those, the most optimal and performance-efficient ones are called algorithms.
Let's talk about ways to solve the problems
For all readers, cracking the company is not a big deal all you want is a single job offer from the tons but solving problems is something greater than that.
Whatever you are going to learn will not be used in your day-to-day job. Most of the optimised algorithms are already pre-built; you just have to use them. But why do top corporations invest so much money? If a situation arises in the future where a solution does not exist, you should be capable of writing your own version of an optimised algorithm from scratch, which is why DSA interview standards are set at a very high bar in most companies.?
Where to practice
Before looking into resources let's talk about where and how to practice. I personally suggest practicing with a Pen and Paper or Whiteboard.
When you see the problem,
Detail resources and plan
I am sharing all the resources in very great detail. All the resources I am sharing are completely free and have very rich content than most of the paid content.
Education should be free or be delivered with little money. That's why teachers have more respect than others.
Don't commercialise and fantasise education by looting bulkier money from students and parents. - Lava Kumar
Choose any one Language and Stick to it. but it's very good if it's one of the three ( C++, Java, Python ). I am going to share more of the content and most of them taught in those.
1st Month
Get Familiar with any one programming language. Learn all basics
Must Learn
Resources
C++:
1. C++ Programming Course (Freecoding Camp)
2. Jenny's lectures con C++ ( Jayanti khatri if you are not comfortable with an English accent)
Java:
Python:
These will you a fair idea of programming concepts.
2nd Month
Blog: Geeks From Geeks ( GeeksforGeeks almost every problem is there here).
Video Understanding: Data Structures & Algorithms? ( By YK Sugi cs Dojo)
2. Learn About Time Complexities ( Spend at least 1 week on this)
Check all your last month's programs' time complexities and try to optimize them.
Video Explanations
3rd Month
From Here onwards everything is important.
How you should prepare
Week 1 ( Arrays, Linear Search, Binary Search )
This is the 1st week you are getting slowly into DSA world so start with less complex ones and slowly increase complexity of concepts.
Arrays:
Introduction: An Overview of Array Which blows your mind ( By YK Sugi )
References: Very Indepth Introductions to Arrays ( By Jayanti khatri even kids can understand)
Problems to practice:
Patterns you should learn:
Sliding Window
Notes Playlist ( you can ignore some problems and revisit later after completion of respective topics)
Problems to Practice:
Two Pointers ( Idea is use two variables either from [left, right], [i, i+1], or if problem not able to solve with two pointers but if its looks like two pointer problem to you try to apply sort, or some other technique and reducue to two pointer approach or each loop layer apply two pointer techqniue.
Problems to Practice:
Linear Search, Binary Search :
Concepts are Important [ LinearSearch , BinarySearch ( vimp) ]
Problems to practice:
Week 2 ( Linked List, Stacks, Queues )
Linked List: Lot of topics depends on this topic. Linked List has many variations like Single , Circular, Doubly Linked List. Also has its own advantages and disadvanatges compared to other data strcutures.
Introudction : What is Linked List
Problems to Practice: ( Most commonly asked)
Stacks: One of the important data structure and has its lot of use cases in real world. common terms ( top or peek, push, pop), follows Last in First Out way of inserting into array.
Will get back this when we are disucssing Tree Traversals ( InOrder, PostOrder, PreOrder)
Introduction : Intro to Stacks
Problems to Practice:
领英推荐
Queues: also important data structure and has its lot of use cases in real world. common terms ( add, remove, front, rear), follows First in First Out way of inserting into array. It has sub conepts like Priority Queue required to understand heap data structure.
Also mostly used in Graph Trversals. Lot of problems covers during BFS ( Bearth First Trevesals) and Tree Traversals ( Level Order Traversals)
Introduction: Intro to Queues
Problems to Practice: ( Mostly this topic clubs with other topics like Sliding window, Heap, Tree, Graphs)
Try:
Week 3 ( Hashing): Another commonly used data strcuture in code. Number of use cases developers will encounter in their day to day life.
Important Conepts to understand ( Hash Fucntion, Collision, Hash Table).
Top Examples: Caching, Load Balancer, Consistent Hashing, In Memory Storage, Data Store.
Introduction: Hashing
Combine Heap conept with other data structures will have more usecases like TopK Frequent words, Merge K Lists in Ascending Order, Dijistras algorthim, Prims Algorthim, Heap Sort etc.
In first 3 weeks some of problems clubbed with heap concepts you can repractice in this week.
4th Month
Week 1 ( Sorting Algorithms & Searching Algorithms)
This Week practice all Sorting Concepts and give more stress on Quick Sort and Merge Sort.
Concpets: Read this Blog
Before Learning Quick and Merge Understand Divide & Conquer first, Explaination here
If time Permits re visit Week 1 Problems.
Week 2 - 4 (Recursion, Back Tracking)
Recursion & Back Tracking series: Only Resource i ever recommend to you is Raj Vikramaditya Recursion Playlist. Lot of rich content. Here is the PlayList . Dont rush here practice.
1 year back when I am giving interviews, I dont know Recursion at that time and failed in lot of interviews then i checked what is recursion. No matter how many times I learned concepts i keep on forgot. But I enocuntered takeUforward videos in real interview i am able to come up recursive solution my own. that kind of confidence i got by this series. Watch Repetitively till you understand.
Problems to Practice: ( Most of the problems he covered in that playlist). During Trees concepts most of the problems will be solved through recursion only.
Important Problems ( Soduku Solver, N queens, combination sum, substets etc) all were covered in above playlist.
5th Month ( Dynamic Programming) - One of the favourite topic in Interviews
By this time you are good with recursion. Recursion is important conept with out that Dynamic Programming is Hard to understand.
We can solve every problem both in recursion and DP in optimal way only drawback about recursion is stack space. So every time space complexity will me O(X) + O(N). For DP its just O(X). and DP is Iterative Concept. In DP we follow Bottom Up Approach.
Top-down is a recursive problem-solving approach but bottom-up is an iterative problem-solving approach. In other words, the top-down approach assumes the subproblems will be solved using the smaller sub-problem only once using the recursion. In a reverse way, bottom-up compose the subproblems’ solution iteratively using the smaller sub-problems.
This total month only focuses on Dynamic programming. How hard you prepare will reflect during interviews. Here also Only playlist you need is Raj Vikramaditya DP ka Free Series Playlist. Here is the Playlist . The above Playlist contains more than 50+ videos everything related to DP will be covered here.
6th Month ( Binary Tree and Binary Search Trees) - Another Importnat Topic for Interviews
Total Month Dedictate to Trees. Here also only playlist you need is Raj Vikramaditya Graph Series and here is the Playlist .
Most Important Concepts to Cover ( Tree Traversals Both Iterative and Recursion Way). In Interviews Iterative Way is more important.
In the above playlist most of the Problems will be covered. Other Important Areas where problems will come
All were covered in above series.
7th Month ( Graphs)
Very Important Concept for Interviews. Atleast 1 question you will get in any DSA round in interviews. I almost got 10 + questions on this topic from 10-15 different Interviews.
Here also only playlist required is Raj Vikramaditya Graph Playlist .
Here one concept might confusing That is "Bridges in Graph" if you feel like this Watch this video by Jayanti khatri Jeeny Lectures)
For other video concepts Watch Here by #AbdulBari .
Topics you should'nt skip ( DFS, BFS, Topological Sort, Kahns Algorthim, Prims, Krushkal's, Dijikstras, Disjoin Set, Kosaraju Algothim , Bellman Ford Algorthim.)
8th Month ( Greedy Algorithms)
Week 1:
For Greedy Concepts Watch this PlayList
Commonly Asked Questions
Week 2- 4:
Revise all the above concepts from 3rd Month to 8th Month.
Their are other Important Concpets Like Merge Intervals, Bit Manipulations, Pure Math Based Problems, Matrix Problems. Can be covered by practicng SDE Sheets.
Test Your knowledge through SDE Sheets
Next 3-4 months spend time on LeetCode and DSA Sheets. Just practice, practice, practice.
I List some of DSA Sheets and Resources to Practice
Overall 400-500 Unique questions will be their. These will be sufficient i think for interviews.
Apply for the Companies
Once you are confident without fear, apply to companies. It doesn't matter if you pass or fail; just apply and gain experience.?
Dont just focus on #faang . Their are 100's of top tech companies are top startups are their.
I agree, CTC Matters lot but at a same time Learning, Work Life Balance also matters lot.
If you earn 20+LPA and working arounf 7-8 hrs is far better than getting 30 LPA to work14+ hrs.
There are many top companies which provide the best WLB and great benefits with a decent package. You should add those to your bucket list
How to prepare for companies:
If you feel alone on the journey, Then find other people who started along and form a group (maximum of 4 ). and study together, sharing concepts with each other. If you do this, we can retain more in a short time and everyone will benefit. I will explain in detail in seperate post how to prepare effectively.
Hurray !! Celebrate
Success or failure, it doesn't matter. Enjoy the journey. One day, your day will come to celebrate.
If you are selected and your friend or fellow mate is struggling, explain to them why. Make them succeed. It will give you more happiness than getting a job.
References: [ I used in this article ]
Next Article: I will talk about HLD, LLD, and Machine Coding Rounds Preparation Strategy and Resources.
Feel Free to Follow Me: Lavakumar Thatisetti
3rdYear CSE 26' | Currently Working on Web-development with JS | DSA
9 个月Thank you for your dedication to sharing knowledge, Your article is not just a roadmap; it's a beacon of inspiration for aspiring developers everywhere.
Senior Software Engineer @ Atlassian | Ex-SSE @ Arcesium (D.E. Shaw) | Algorithms & Problem Solving ???? | 1 US Patent | Mentor | System Design?? | Exploring AI ??
1 年For Tech content Pls subscribe to my channel https://www.youtube.com/@lavakumar_techie?sub_confirmation=1 To Book 1:1 for Mentorship and Mock Interviews: https://topmate.io/lavakumar_thatisetti
JavaScript | Node.js | Backend Developer
1 年phenomenal share ??