Free Coding & DSA resources anyone can crack any company

Free Coding & DSA resources anyone can crack any company

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
  • Where to practice
  • Detail resources and plan
  • Test Your knowledge through SDE Sheets
  • Apply for the Companies
  • Hurray !! Celebrate

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

  1. By using standard basic programming concepts
  2. By using standard data structures.
  3. Identifying the pattern in the problem ( will get by practicing tons of problems)
  4. Identifying the Math behind the problem
  5. By using already-known famous algorithms

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,

  1. First, try to understand the problem. Talk to yourself multiple times about the problem.
  2. Try to see if the input and expected output make sense to you.
  3. Solve like a mathematical theorem, such as what is the output for n = 1,2,5,10, until you find a formula.If not, solve at your own pace, like " Write bulkier code with multiple conditions or loops, etc." If you arrive at the solution, that's great. We generally call this a brute force solution.
  4. At this point, if you arrive at a solution, Try to optimise yourself, like removing for loops, adding break conditions, or storing values in a map for future use. Spend some time. If you didn't arrive at the solution to the problem, you can see the brute force solution.
  5. By this time, you already know the solution. Now, the most important part is optimization. This step will come by practising hundreds of problems. At least I am able to optimise after a lot of practice, like solving 100+ questions. If you're unable to optimise the solution, no problem. You can see the problem and revisit the same problem after 1 week. This time you should be capable enough to solve it.
  6. After you have the optimised solution, now it is time to code. Choose any language and any platform (I personally prefer #LeetCode ). Don't prefer IDEs like #IntelliJ for some time till you're familiar with writing inbuilt data structures without IDE help.
  7. The frequency with which problems are solved If you've already solved those problems by yourself, you can visit once a month or when you're preparing for interviews. For the problems which you're unable to solve, visit them like a daily pattern ( 1st day, 7th day, 28th day, 3rd month, 6th month) to store in your memory for a longer time.

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

  1. Basic Skeleton code and Syntax
  2. Variable Declarations, Taking input, and printing outputs.
  3. All Basic operators
  4. Control statements ( if else, Switch, For loops, While loops, breaks, continues, etc )
  5. Function / Method Declarations and Return statements, Classes / Structs and Object declarations etc

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:

  1. Java Programming Course ( Freecoding Camp)

Python:

  1. Python Programming Course ( Freecoding Camp)

These will you a fair idea of programming concepts.

2nd Month

  1. Introduction to Data Structures

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

  • Understand the Concept via Theory & Video
  • Write Down Notes ( like For example if its topological sort algorthim can we done by DFS + Stack or Khans Algorthim ) & Time Complexity
  • Practice Similar Problem Statements

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:

  1. Rotate Array ( Document , Video , LeetCode )
  2. Single Number ( Leetcode )
  3. Majority Element ( Leetcode , Go Through All the Solutions , You will learn Algorthim Called: Boyer-Moore Voting Algorithm)
  4. First Missing Positive ( Leetcode , Video if your able to solve this which means you are very good at arrays now)
  5. Trapping Rain Water ( Leetcode , Video1 by Raj Vikramaditya ?, Video 2 by Surya Pratap Kahar ) Both explained very well. if you watch surya video at last he shows two codes one with 3 loops and one with single while loop in reality both are O(N) but writing problem in 3 different loops is not optimal way. also they talked about Prefix sum and Suffix Sum if you get these almost most of array concepts covered here itself.
  6. Product of the array except it self. ( Leetcode , Video 1 , Video 2 ) Here also it used prefix and postfix techquies to solve.

Patterns you should learn:

Sliding Window

Notes Playlist ( you can ignore some problems and revisit later after completion of respective topics)

Problems to Practice:

  1. Minimum Size Subarray Sum ( Practice , Notes , Video )
  2. Longest Repeating Character Replacement ( Practice , Notes, video )
  3. Longest Continuous Subarray With Absolute Diff Less Than or Equal to Limit ( Practice , Notes, Video )

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:

  1. Two Sum, Three Sum, 4 Sum ( all three similar each extra integer loop will be increase) ( Problem , Notes, Video ) [ You can find all these in leetcode easy questions ]
  2. Rotate Array ( Problem , Notes , Video )
  3. Valid-palindrome-ii ( Problem , Notes , Video )
  4. Next Greater Element III ( Problem , Notes , Video )

Linear Search, Binary Search :

Concepts are Important [ LinearSearch , BinarySearch ( vimp) ]

Problems to practice:

  1. Search Insert Position ( Problem , Notes )
  2. Search in Rotated Sorted Array ( Problem , Notes , Video )
  3. Find First and Last Position of Element in Sorted Array ( Problem , Notes, Video )
  4. ?Median of Two Sorted Arrays ( Problem , Notes ) this is tough one watch below three vidoes to get more ( Video 1 by takeUforward , video 2 by Neetcode, Video 3 by Tushar Roy )

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)

  1. Reverse Linked List ( Problem , Notes, Video )
  2. Middle of the Linked List ( Problem , Notes, Video )
  3. Detect Cycle in Linked List ( Problem , Notes, Video )
  4. Palindrome Linked List ( Problem , Notes, Video )
  5. Add Two Numbers ( Problem , Notes , Video )
  6. Merge k Sorted Lists ( Problem , Notes , Video )
  7. Flatten a Multilevel Doubly Linked List ( Problem , Notes , Video )
  8. Reverse Nodes in k-Group ( Problem , Notes, Video )
  9. Remove Duplicates from Sorted List ( Problem , Notes , Video )
  10. Copy List with Random Pointer ( Problem , Notes, Video )
  11. Swap Nodes in Pairs ( Problem , Notes, Video )

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:

  1. Valid Parentheses ( problem , notes, video )
  2. Min Stack ( problem , notes, video )
  3. Valid Parenthesis String ( problem , notes, video )
  4. Decode String ( problem , notes, video )
  5. Next Greater Element I ( problem , notes, video )
  6. Next Greater Element II ( problem , notes , video )
  7. Evaluate Reverse Polish Notation ( problem , notes, video )
  8. Largest Rectangle in Histogram ( problem , notes, video )

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)

  1. ?Sorting Queue without Extra Space ( Problem & Notes )
  2. Shortest Subarray with Sum at Least K ( Problem , Video )

Try:

  1. Implement Queue using stacks ( problem , notes, video )
  2. Implement Stack using Queues ( problem , notes , video )

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

  1. Valid Anagram ( problem , video )
  2. Two sum (o(n)) ( problem , notes )
  3. LRU Cache ( Problem , Notes, Video ) *** // See LinkedHashMap also
  4. Longest Substring Without Repeating Characters ( Problem , Notes, Video )
  5. Substring with Concatenation of All Words ( problem , Notes , Video )
  6. Letter Combinations of a Phone Number ( problem , Notes, Video )
  7. Valid Sudoku ( problem , Notes, Video )
  8. First Missing Positive ( problem , Notes, Video )
  9. Group Anagrams ( problem , Notes, Video )
  10. Minimum Window Substring ( problem , Notes, Video )
  11. ?Word Ladder ( problem , Notes, Video )
  12. Clone Graph ( problem , Notes, Video )
  13. Word Break ( problem , Notes, Video )
  14. Top K Frequent Elements ( problem , Notes, Video )
  15. Longest Repeating Character Replacement ( problem , Notes, Video )

Week 4 ( Heap): you can find best video explantion here ,and blog here .

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.

No alt text provided for this image

Concpets: Read this Blog

Before Learning Quick and Merge Understand Divide & Conquer first, Explaination here

Quick Sort ( Algorthim , Analysis )

Merge Sort ( Algothim , Analysis )

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

  1. Construct Binary Tree from Preorder and Inorder Traversal
  2. ?Construct Binary Tree from Inorder and Postorder Traversal
  3. Lowest Common Ancestor of a Binary Tree
  4. Serialize and Deserialize Binary Tree
  5. Serialize and Deserialize BST
  6. Flatten Binary Tree to Linked List

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

  1. Jump Game ( Problem , Video )
  2. Jump Game II ( Problem , video )
  3. Gas Station ( Problem , video )
  4. Merge Triplets to Form Target Triplet ( Problem , video )

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

  1. NeetCode Top Pick Problems (Link )
  2. Striver SDE Sheet ( Link )
  3. Grid 169 Questions ( Link )
  4. Leetcode Top 100 Liked Questions ( Link )
  5. Leetcode Top Interview Questions ( Link )
  6. Leetcode Post Only List For Interview ( Link ) // Take it as least priority lot of questions are their

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 ]

  1. takeUforward by Raj Vikramaditya
  2. Techdose by Surya Pratap Kahar
  3. Neetcode
  4. Jeeny Lectures by Jayanti khatri
  5. Abdul Bari Youube Videos.
  6. GeeksforGeeks Articles.

Next Article: I will talk about HLD, LLD, and Machine Coding Rounds Preparation Strategy and Resources.

Feel Free to Follow Me: Lavakumar Thatisetti

Kirtan Patel

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.

Lavakumar Thatisetti

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

回复
Debanjan Bhattacharjee

JavaScript | Node.js | Backend Developer

1 年

phenomenal share ??

要查看或添加评论,请登录

社区洞察

其他会员也浏览了