Most front-end developers lose interest in solving DSA because "They keep picking problems which do not follow any pattern". Let me explain 1. Let's solve a problem on arrays by using a two pointer approach. If that is your first time solving a 2 pointer approach problem. 2. Then do not pick your next problem where you use a new technique, ex: sliding window. 3. Solve problems similar to how you solve problems in college days. Solve a few related problems, so that you become conceptually strong. Once after you're conceptually strong about a technique, then move to the next technique. Same goes for the Data structure. But, once after you have solved a good number of problems, you start picking random problems to test your skills. Follow me and I will help you to find your dream job: Vasanth Bhat
Vasanth Bhat’s Post
More Relevant Posts
-
Hello, LinkedIn Network! As new & intermediate frontend engineers, understanding data structures and algorithms (DSA) can be very challenging. To help overcome this, I’m excited to launch a new series focused on DSA specifically for frontend developers. 📈 What This Series Will Offer: Concept Breakdowns: Clear explanations of DSA concepts tailored for frontend applications. Practical Tips: Strategies for applying DSA principles to improve performance in your projects. Community Engagement: A platform for discussion, where you can ask questions and share insights with peers. Join me on this journey to strengthen our DSA skills and improve our ability to build robust web applications. Stay tuned for updates! #DataStructures #Algorithms #FrontendDevelopment #WebDevelopment #CodingChallenges #SoftwareEngineering #ProgrammingTips #TechCommunity #LearnToCode #FrontendEngineering #DSA #JavaScript
To view or add a comment, sign in
-
🚀 DSA Journey Update! Today, I tackled the Find the Duplicate Number problem. Problem Statement: Given an array of integers nums containing n + 1 integers, where each integer is in the range [1, n] inclusive, the task is to identify the one repeated number in the array. The challenge is to solve this without modifying the array and using only constant extra space. Example: Input: nums = [1, 3, 4, 2, 2] Output: 2 My Approach: 1)I implemented a cyclic sort algorithm to solve the problem. The strategy revolves around placing each number at its correct index in the array. After sorting, the number that is not in its correct position is the duplicate. 2)I started by sorting the array in-place using the cyclic sort technique. Once sorted, I checked which element wasn't in its expected position (i.e., nums[i] != i + 1). 3)The first such element is the duplicate, which I returned. Time and Space Complexity: Time Complexity: O(n) – The array is traversed multiple times to perform the cyclic sort and then check for the duplicate. Space Complexity: O(1) – Only constant extra space is used. Another step forward in improving my problem-solving skills! 💡 Cyclic Sort: It's basically placing an element at index as the same or prior value of the array element. #Java #DSA #CodingJourney #ProblemSolving #Algorithms #Programming #Learning #Tech #Developer #JavaProgramming
To view or add a comment, sign in
-
Let me share my experience with LLM. Yes, it is true. LLM can save hours in producing low/medium complexity code. The hours programmer must not waste on prompting for high complexity ones, as he will receive garbage. Instead, s/he should dedicate the time saved on making the logic more robust, talking to the client, thinking the design over and validations; or self-education, ideally in the soft-skills areas or design patterns. This job is changing and will change.
To view or add a comment, sign in
-
Every software engineer/developer (any level) must know these 20 algorithms. 💡 1. Binary Search 2. Merge Sort 3. Quick Sort 4. Breadth-First Search (BFS) 5. Depth-First Search (DFS) 6. Dijkstra's Algorithm 7. Bellman-Ford Algorithm 8. A* Search Algorithm 9. Floyd-Warshall Algorithm 10. Kruskal's Algorithm 11. Prim's Algorithm 12. Dynamic Programming (DP) Algorithms (e.g., Knapsack, Coin Change) 13. Greedy Algorithms 14. KMP (Knuth-Morris-Pratt) String Matching 15. Rabin-Karp Algorithm 16. Topological Sort 17. Union-Find Algorithm 18. Backtracking Algorithms (e.g., N-Queens, Sudoku Solver) 19. Heap Sort 20. Sliding Window Algorithm
To view or add a comment, sign in
-
Recent Google Interview Question - “How do you check if a graph is cyclic or not?” Now, many of us try to solve this problem using the graph algorithms like BFS/DFS, but there exists a more efficient way of solving this - DSU 🚀(Disjoint-Set Union - one of the most complex DSA topics) 🔸Start by creating a parent[] array to track all subsets. 🔸Traverse all the edges: 🔸Check the subset each node belongs to by following the parent[] array until the node and its parent are the same 🔸If two nodes are already part of the same subset, a cycle exists in the graph. Print “Cycle exists in the graph” 🔸Else, perform a union operation on those two nodes or subsets. If no cycle is found, print “Cycle doesn’t exist in the graph”. 📍Never heard of DSU? Don’t worry, here’s a Masterclass by our Codeforces Master (rated yellow) - Manas Kumar Verma Sir, to cover this advanced DSA topic which is often asked in top tech giants! ⏰ Date- 15th June, Saturday at 4 PM 🔗Secure your spot now - https://bit.ly/3KEQSgT #dsa #coding #developer #software #faang #java
To view or add a comment, sign in
-
While skills like implementing bubble sort, inverting a binary tree, or writing a depth-first search algorithm are important for certain programming roles, they aren't always necessary for most front-end positions. For many front-end jobs, a take-home coding test that involves building a small web project is a more accurate reflection of a candidate's current skills than a whiteboard interview focused on specific data structures and algorithms.
To view or add a comment, sign in
-
I recently encountered a fascinating real-world application of the Binary Search technique: While working on improving the performance of a Rust program, I noticed that the performance had been solid about a year ago but had gradually regressed since then. Since there weren’t significant changes made to this part of the code, it seemed likely that the performance degradation occurred due to specific PRs (code changes) made for other features, possibly in a stepwise manner. My goal was to identify the PRs where the performance dropped significantly—ideally just one or two. However, with 500-600 PRs over the past year, manually checking the performance after each one would be extremely time-consuming. Even narrowing down suspects based on PR descriptions would take a considerable amount of time. Then, a colleague suggested an ingenious solution: using binary search on the PRs to quickly pinpoint where the performance regression occurred. This turned out to be one of the coolest ways I've applied a simple DSA technique to solve an ad-hoc problem. What are some of your experiences using simple DSA techniques in your work or life?
To view or add a comment, sign in
-
How to find meaning in life as a software engineer. Unless you want your mind to descend into chaos. As a software engineer, you are incredibly intelligent. Your mind is constantly flooded with thoughts. While this can be a good thing, it leads to wasted brainpower. To channel that energy, focus on a single project. Pour all your attention into it until it becomes your sole focus. Here are some projects to consider, if you are a low level guy (C/C++, Go, Rust, zig...): 1. Custom Memory Allocator: Implement an allocator similar to malloc and free. This project will deepen your understanding of memory management. Preferably use C or C++ for this one. 2. Database Engine: Building a key-value store database like Redis is highly satisfying. It involves implementing various data structures, which enhances your skills significantly. 3. Simple Shell: Building a shell is a fun and engaging project. You can extend it by writing a Context-Free grammar for shell commands and developing a parser to handle them. 4. Compiler/Interpreter: Every software engineer should understand the tools they use by building their own. I recommend starting with an interpreter. Compilers can be a pain-in-the-ass, especially when dealing with LLVM. If you decide to build a database engine, feel free to shoot me a message. I've already done it and can provide valuable assistance.
To view or add a comment, sign in
-
Day 26/100: My Data Structures and Algorithms Journey! Today, I took a moment to reflect on how far I've come in my DSA journey. Just like many developers, I initially found terms like recursion, graphs, and backtracking intimidating. But the more I dive into these concepts, the clearer it becomes that mastering data structures and algorithms is essential to building efficient, scalable solutions. Working through problems like React Final Form (Observer Pattern) and Rollup (Binary Search) made me realize that open-source projects often cleverly apply these principles in real-world scenarios. It's fascinating to see how algorithms and design patterns play a critical role in software engineering! A year ago, I began this journey, and it's been one of the best decisions I've made in my career. Not only has it boosted my confidence, but it has also helped me improve the performance and maintainability of my own code. There's still so much to learn, but I'm excited for what's next. Stay tuned as I continue to explore new challenges! 🚀 #100DaysOfCode #DataStructures #Algorithms #Backtracking #SoftwareEngineering #LearningJourney https://lnkd.in/g2SVXKm5
Nam Nguyen's personal blog
namnguyen.design
To view or add a comment, sign in