• A lot of beginners and experienced programmers
avoid learning data structures and algorithms
because it's complicated and they think that
there is no use of all the above stuff in real life.
• These concepts help to improve the problem-
solving ability of a candidate to a great extent.
• To Solve Some Real-World Complex Problems
• You learn to use the right tool to solve the
problem
• To Crack the Interviews of the Top Product
Based Companies
Important Topics :
Data Structures :
- Arrays
- Heaps
- Stacks
- Queues
- Linked lists
- Collections
- Trees
- Hashtables
- Algorithms
- Complexity analysis
- Search
- Recursion
- Sort
Algorithms :
- Greedy algorithms
- Divide and conquer
- Dynamic programming
- Hashing
- Complexity analysis
- NP-completeness
- Approximation
- Linear programming
- Graph-algorithms
- Maximum flow
Resources :
Courses :
• MIT free open course on algorithms
• Stony brook university
• Open course
• NPTEL
• Princeton university
Books :
• Introduction to algorithms (Thomas h)
• Cracking the coding interviews
• DS and algorithms (Alfred v)
Websites :
• Geeksforgeeks
• Leetcode
• Topcoder
• Visualgo
Top comments (6)
It's important to understand the underlying theory of computing if you want to excel. However, once you've learned all the basics, including algorithms and data structures, please realise you'll highly likely never need that knowledge in "the real world". Out there, 98% of all software development jobs never requires from you that you're able to implement QuickSort, Binary Trees, or your own Hash table - Simply because all modern programming languages have
List<T>.Sort
andDictionary<Key, Value>
- And as to binary trees, we're using PostgreSQL or MySQL ... (that's literally not a joke for the record!)In "the real world" class composition, structure, clean code, and design principles are much more important. But it helps to understand the underlying theory every now and then ...
... just like it helps to understand some CISCx86 Assembly Code theory, even though you're probably never going to actually use it ...
I sometimes joke about it as follows ...
It's useful to know the basics of some algorithms, even though as a practical web dev you're not likely to use them frequently (it's also good to write "Why are Data Structures and Algorithms Important?" instead of the other way around).
Yes, thank you sir
I've completed this Coursera specialization on data structures and algorithms and I can recommend it!
It contains pretty advanced maths though, but it's very comprehensive.
I agree with the others though that this kind of stuff very rarely comes up, especially not on the frontend. On the backend, you may sometimes have to optimize an algorithm and assess algorithmic complexity, or utilize a better data structure.
But even this is rare and outside of some special job positions you'll never have to implement special graph, string or path finding algorithms.
Nevertheless, learning about data structures and algorithms help you understand coding a bit better and write better code because all code is an algorithm after all. And these basic data structures will stay with us for the decades to come.
Thanks for the info I was really hoping for this 👍
My pleasure Sir😊