is there still a point in learning classical data structures and algorithms when the dot net framework and even the java API has collections which can do everything that these classic algorithm does?

the reason why i ask is that i do not want to waste my time learning them since it seems that they would not be needed for long.

they might be needed in C++ or C but even there would not one well developed class library solve all data structure issues well and for all?

Recommended Answers

All 5 Replies

But you still need the sense to know how to use them effectively in your programs, even if you no longer have to worry about the detail of how to implement them.

yes that is exactly what i mean. if you learn to use the collections of .net and java api and someone develop a c++ or c class library with all of that then would it still be good to know how to do these classical structures and algorithms?

i see that i should have phrased differently. is there a benefit to knowing the classical data structures and algorithms despite the fact that they are incorporated in java api and dot net framework and someone might at any moment do the same for c or c++?

is there a benefit to knowing the classical data structures and algorithms despite the fact that they are incorporated in java api and dot net framework and someone might at any moment do the same for c or c++?

I can't imagine the comfort level of being handed everything on a silver platter that breeds this kind of question. The answer is absolutely, yes. Just because tools are provided to you doesn't mean you can get away with not understanding them, not knowing how they work, and not knowing how to sidestep them if necessary.

>the reason why i ask is that i do not want to waste my time learning
>them since it seems that they would not be needed for long.
From a practical standpoint, simply learning classic data structures and algorithms makes you a better programmer. Not because you know a specific implementation, but because you understand the concepts behind a solution such that you can apply it to your own problems. For example, you're not likely to need to write a quick sort implementation, but divide and conquer is an extremely valuable and general problem solving technique.

commented: for what little my rep altering power is worth. thanks. +1

In the same way that knowing some assembler gives you a deeper appreciation of C or C++.

It's all good.

Or perhaps you reach a point where the performance offered by a standard implementation just doesn't match up to the convenience, and you have to try and roll your own tailored to the specific set of circumstances you're faced with.

I think the point I'm trying to make is that knowing how to do something is not a valueless thing in itself, even if you never get around to doing that yourself. The ideas you'll learn will no doubt prove useful in the long run.

commented: for what little my rep altering power is worth. thanks. +1

thanks for clarifying. the thing is i do want to learn them but since they are incorporated into the dot net framework already i did not see any justification.

call it a weakness of some sort but perhaps i was just looking for an excuse to learn them!

i especially like the part of it improving programming skill not so much by increasing knowledge but by providing an opportunity to practice programming method.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.