DEV Community

Cover image for Why Data Structures and Algorithms are Important ?
SOMYA RAWAT
SOMYA RAWAT

Posted on

Why Data Structures and Algorithms are Important ?

• 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)

Collapse
 
polterguy profile image
Thomas Hansen • Edited

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 and Dictionary<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 ...

The last time I used an algorithm was in 2001 ... ;)

Collapse
 
leob profile image
leob

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).

Collapse
 
codewithsom profile image
SOMYA RAWAT

Yes, thank you sir

Collapse
 
gombosg profile image
Gergely Gombos

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.

Collapse
 
prathamesh_holay profile image
james

Thanks for the info I was really hoping for this 👍

Collapse
 
codewithsom profile image
SOMYA RAWAT

My pleasure Sir😊