[–] AxisOfWevil ago
What did you think of the course? I start my data structures course in 2 weeks. Also, not sure if its related but I just finished a crash course on data science. Learned to use the pandas library in Python. It's very useful.
[–] javamethod ago
While it's true that it doesn't directly come up in applications programming I can tell you it comes up a lot for me nearly every day in embedded programming. Things like linux kernel drivers and TI DSP programs. Oh yeah of course there's stack analysis even in applications programming in some cases.. which I guess us still mostly in embedded land.
[–] Acerebral 0 points 1 point 1 point (+1|-0) ago
In addition to the excellent answers already here, you will often find yourself composing more complex data structures out of the basic ones you learned. How did that JSON blob get decoded? Why it's a List<Map<String, Object>> of course, where any of the Objects could be another Map, array, String, Boolean, or Long.
Being familiar with all of these structures can help you focus on the challenges surrounding the data contained therein rather than the structures themselves.
TLDR Listen to /u/brux
Knowing the structures is a must when you want to optimize your codes to make it run faster, or even to make it run at all. Not all use case can be covered well with variables and arrays, even the ones that seem simple at first (i.e. HTML document object is a tree, you can't use the power of javascript fully without knowing it; a navigation menu could be a nested array with a dynamic depth; etc etc and those examples are front end stuff, in the back end things often more complicated). And even when the API or provided functions in a library do it for you, you still need to know exactly how to use it properly: which data to pass, in what structure they should be passed, what kind of data they return, and so on. Without knowing the data structure concept, you will be lost in the documentations or even lost in your own code and that's often frustrating.
[–] brux 0 points 5 points 5 points (+5|-0) ago
In practice, unless you're working on core libraries, you won't use data structures directly, much. Almost everything has already been done better in a library for you. It's very helpful; however, to know different ways to store large sets of data, in ways that let you operate over the data with minimal memory footprint or optimal performance, etc. i.e., Should I put this set of data in a HashSet? Perhaps a LinkedList? Why am I using so much memory for this dictionary?
[–] bloopton [S] 0 points 2 points 2 points (+2|-0) ago
So it's more like a conceptual understanding of the way systems and programs around you work?
[–] brux 0 points 3 points 3 points (+3|-0) ago
Yes. Knowing which data structure to pick is very valuable, but you'll rarely create the implementation of one of those data structures. Think about this problem: You have a huge list of Strings, and you want to find if there are duplicates. Comparing every two nodes will take way too long. What data structure can solve this for you?
[–] king_of_voat 1 point -1 points 0 points (+0|-1) ago
While it's true that you probably won't ever have to implement fundamental datastructures yourself knowledge of them is really important. Algorithms as a topic are by far not the only thing you should focus on studying.
If you know your datastructures, deciding how you want to write something performantly will become a lot easier, just consider e.g. that tree maps can be useful in cases where you need to be able to lookup all values with a key greater than x. You could work around with using some sort of hash map / list combination but knowing this stuff will make your life way easier.