I spent 2+ years grinding Leetcode and learning DSA & problem-solving as a CSE student at BITS Pilani. If I had to start again from 0, this is exactly how I’d do it to get hired as a Software Engineer in 2025: 1️⃣ 𝗺𝗮𝘀𝘁𝗲𝗿 𝗰𝗼𝗿𝗲 𝗮𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺𝘀 𝗯𝗲𝗳𝗼𝗿𝗲 𝗮𝗻𝘆𝘁𝗵𝗶𝗻𝗴 𝗲𝗹𝘀𝗲 ○ Before touching random Leetcode problems, I’d master core algorithms like: Binary Search, DFS, BFS, Sliding Window, Two Pointers, Recursion, Backtracking, and Dynamic Programming. ○ The goal isn’t just to “understand” these but to be able to implement them from scratch without hesitation. ○ I’d write each algorithm at least 5-10 times from memory until it becomes second nature. 2️⃣ 𝗳𝗼𝗰𝘂𝘀 𝗼𝗻 𝗽𝗿𝗼𝗯𝗹𝗲𝗺 𝗽𝗮𝘁𝘁𝗲𝗿𝗻𝘀, 𝗻𝗼𝘁 𝗷𝘂𝘀𝘁 𝘀𝗼𝗹𝘃𝗶𝗻𝗴 𝗽𝗿𝗼𝗯𝗹𝗲𝗺𝘀 ○The biggest mistake people make is solving hundreds of random problems without recognizing patterns. ○ 90% of interview problems fall into ~20 coding patterns. ○ Instead of solving 1000+ questions, I’d focus on understanding: ►How problems within a pattern are similar. ►What small variations make them different. ►Which techniques help optimize them. 3️⃣ 𝗿𝗲𝗽𝗲𝗮𝘁 𝗽𝗿𝗼𝗯𝗹𝗲𝗺𝘀 𝗶𝗻𝘀𝘁𝗲𝗮𝗱 𝗼𝗳 𝗷𝘂𝘀𝘁 𝗺𝗼𝘃𝗶𝗻𝗴 𝗼𝗻 ○ Just because I solved a problem once doesn’t mean I’ll remember it. ○ I’d follow this reinforcement schedule for problems I struggled with: Solve it today, solve it again in 1 week and finally solve it again in 1 month. ○This is how I’d make sure I actually retain what I learn. 4️⃣ 𝘀𝘁𝘂𝗱𝘆 𝘀𝗼𝗹𝘂𝘁𝗶𝗼𝗻𝘀 𝘁𝗵𝗲 𝗿𝗶𝗴𝗵𝘁 𝘄𝗮𝘆 ○ When I can’t solve a problem, I’d first struggle with it for at least 30 minutes before looking at the solution. ○ Then, I’d: ► Write out the solution from memory after understanding. ► Explain why it works in simple words ► (if I can’t explain it, I don’t truly understand it). ► Look at alternative solutions to compare trade-offs. 5️⃣ 𝗯𝘂𝗶𝗹𝗱 𝗮 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝗱 𝗽𝗿𝗼𝗯𝗹𝗲𝗺 𝗹𝗶𝘀𝘁 (𝗻𝗼𝘁 𝗷𝘂𝘀𝘁 𝗿𝗮𝗻𝗱𝗼𝗺 𝗴𝗿𝗶𝗻𝗱𝗶𝗻𝗴) ○ Instead of jumping between random problems, I’d follow a structured roadmap like: ► First 50-60 easy problems → Get comfortable with implementation. ► Next 80-100 medium problems → Focus on pattern recognition & optimization. ► Last 30-40 hard problems → Only after mastering the fundamentals. ○ 150-200 well-selected problems are enough to crack most interviews. 6️⃣ 𝘀𝘁𝗮𝗿𝘁 𝗺𝗼𝗰𝗸 𝗶𝗻𝘁𝗲𝗿𝘃𝗶𝗲𝘄𝘀 𝗲𝗮𝗿𝗹𝘆 (𝗲𝘃𝗲𝗻 𝘄𝗵𝗲𝗻 𝗜 𝗳𝗲𝗹𝘁 𝘂𝗻𝗽𝗿𝗲𝗽𝗮𝗿𝗲𝗱) ○ Simulating real interviews early helps with time pressure & communication skills. ○ I’d start setting strict 30-45 min timers on problems to simulate interview conditions. ○ I’d practice explaining my thought process out loud, since half of the interview is about communication. (Bonus tip in the comments) ↓
Tips for Mastering Algorithms
Explore top LinkedIn content from expert professionals.
Summary
Understanding algorithms is crucial for solving complex computational problems, especially for those aiming to excel in coding interviews or software development roles. Mastering algorithms involves learning their core mechanics, recognizing problem-solving patterns, and consistently practicing implementation techniques to build lasting proficiency.
- Focus on core algorithms: Start by mastering foundational algorithms like binary search, recursion, and dynamic programming, ensuring you can implement them from memory without hesitation.
- Recognize problem patterns: Study how problems fall into common patterns and focus on understanding the variations and techniques needed for different scenarios.
- Practice with consistency: Revisit challenging problems regularly with a structured timeline to reinforce understanding and improve long-term retention.
-
-
🎯 400 LeetCode problems solved - but this isn't your typical "grinding problems" post. Like training a machine learning model, I approached algorithmic problem-solving with a focus on data quality and diversity. Just as ML models need varied, high-quality data points to generalize well, I found that solving diverse problems across different patterns and domains builds better problem-solving intuition. My systematic approach: Pre-coding Analysis (Link to sample doc in comments) • Document multiple potential approaches • Analyze time & space complexity for each approach • Think through tradeoffs before writing any code • Consider edge cases and constraints Practice Execution • Used stopwatch to measure performance • Aimed to solve while explaining clearly within: - Easy: 10 minutes - Medium: 15 minutes - Hard: 25 minutes • Focus on thinking aloud - crucial for interviews Deep Dive Process • Rigorous complexity analysis • Explore optimization opportunities • Document learnings and patterns • Regular mock interviews on Pramp The goal wasn't to solve all 3000+ problems, but to build a robust "model" that could generalize to new problems effectively. Each solved problem is like a new training data point, helping my brain recognize patterns and edge cases. Key learning: The magic happens in the pre-coding analysis. Writing down different approaches and analyzing tradeoffs before coding helped me: - Build stronger problem-solving intuition - Communicate my thought process clearly - Make better engineering decisions - Save time during actual coding I'll share a sample doc in the comments. It's been crucial for building a systematic approach to problem-solving. To those on this journey: Keep your head down, document your thinking, and remember - you're not just solving problems, you're building a framework for approaching any technical challenge.
-
17 LeetCode free Tips that people will charge you money for (after cracking 10+ Interviews & solving 1000+ pblms) If you’re starting LeetCode, I am supposing you already know a coding language and you have a good hold of basics and its libraries. Don’t even dare to search Leetcode on your browser before it, just joking :D Here are the tips: 1. Start Easy: Begin with easy problems to refresh your coding muscles and build confidence. 2. Go Wide, Not Deep (Initially): Do 5–6 easy problems per topic to grasp core concepts before moving on. 3. Master the Basics: Use easy problems to nail down language syntax, DS fundamentals, and common patterns. 4. Look for Combinations: Tackle problems that mix 2–3 data structures—they teach how tools work together. 5. Graduate Quickly: Move to medium problems once you're comfortable. Interviews rarely ask easy ones. 6. Breadth First, Again: For mediums, solve 8–10 problems per topic. Focus on learning techniques, not quantity. 7. Embrace the Struggle: It's okay to use hints or discussions—just ensure you understand the approach. 8. Don't Memorize Solutions: Focus on why a solution works. Interviews test problem-solving, not recall. Don’t use YT videos for finding solutions, use the Discuss Section. 9. Theory Matters: Read up on core topics (e.g., trees, graphs, DP, backtracking) while solving related problems. 10. Start Contests Early: After ~60–70 mediums, start participating in contests. They simulate real interviews. 11. Learn from Others: Study optimized solutions, compare trade-offs, and ask for help when stuck. 12. Build a Pattern Bank: Track the common patterns (sliding window, two pointers, BFS/DFS, etc.) and revisit them. 13. Stay Consistent: Even 1–2 problems a day adds up. It’s a marathon, not a sprint. 14. Document your journey - Preserve problems solved with hints, solve them later and leave some personal tips for each topic for quick revision in future. 15. Review Regularly: Revisit problems you couldn’t solve. Understanding them later is a real confidence boost. 16. Have a coding buddy: I seriously can’t imagine my coding journey without @Rohit. Good friends who are focused as you make your journey easy. 17. Last tip but most important - Most people never ace Leetcode because they never give it a good shot. Give yourself 8 weeks to learn, fail and feel like stupid. If you can suppress that feeling of doubt for 8 weeks, you will ace Leetcode for sure. P.S.: The next 6 posts will be all about Leetcode too. I will be sharing 6 years worth prep and 2 years worth teaching secrets to you in these posts. Follow and don’t forget to press the bell Suresh G.