Start from here — https://neetcode.io/practice?tab=neetcode250. Watch course videos.
Or start with AlgoExpert and watch courses, try solving the problems yourself, and watch video solutions.
The secret isn't in finding a 'great' resource or a 'great' textbook — it’s about actually starting somewhere and igniting a spark of interest within yourself.
If you solve 1–2 problems every day, you’ll finish it in 5 months. You need to spend 1–2 hours every day solving problems. You’ll finish, get hired by companies like Google, Meta, Amazon, Yandex, etc., make a lot of money, and gain valuable experience on large-scale projects.
Just be ready when you get your chance and don't miss it.
This article will guide you through my steps for preparing for my Google interviews.
Overall, it took me 1.5 years to crack my Google interview, including learning algorithms and data structures, practicing coding & problem-solving, and applying and passing all interviews. During this period I had interviews at Meta, and a successful interview at Bloomberg.

https://roadmap.sh/datastructures-and-algorithms
Choose Python, JavaScript or Java as a language to solve algo problems. I suggest to go with Python.
🔁 Then repeat: learn data structure and algorithms, solve algorithms and learn patterns & concepts. You can do all in AlgoExpert or Neetcode in 2026.
Practice coding & problem-solving questions together with friends on a whiteboard, paper. This is how i was learning:

Roadmap:
Two pointers = more general version of sliding window where the pointers can cross each other and can be on different arrays. Examples: Sort Colors, Palindromic Substrings
When you are given two arrays to process, it is common to have one index per array (pointer) to traverse/compare the both of them, incrementing one of the pointers when relevant. For example, we use this approach to merge two sorted arrays. Examples: Merge Sorted Array
Fast and slow pointers
Sorting
Index as a hash key = If you are given a sequence and the interviewer asks for O(1) space, it might be possible to use the array itself as a hash table. For example, if the array only has values from 1 to N, where N is the length of the array, negate the value at that index (minus one) to indicate presence of that number. Examples: First Missing Positive, Daily Temperatures