Mark Guzdial (CS Faculty at Georgia Tech) had a recent post about Information Technology students not studying data structures. Frankly it blew my mind. Data structures is such a fundamental aspect of computer science and information technology that I find it hard to understand students skipping around it. It's not like it is hard really.
The Advanced Placement AB exam covers a lot of data structures. That is in fact the larger part of what makes the AB course more involved than the A course. High school students can and do grasp these concepts. So what is the excuse for university Information Technology students not studying them? This I have trouble grasping.
Computer science is more than just programming but data structures, while on one level is real computer science, is so basic to professional programming that I think a programmer would be seriously handicapped without some knowledge of it. I think that all programmers should at least know how linked lists, trees, queues and stacks work. It's really about a way of thinking as much as using the specific structures.
What do you think? Does every programmer need data structures or can someone who is an Information Technology major get by without them?
Data structures are essential for solving certain kinds of problems. Without them your programming vocabulary is extremely limited.
Even if you just use the prebuilt data strucutures in a library, you still need to understand them in order to get a good solution that performs at a reasonable speed.
I suppose one doesn't _really_ need data structures if they are not working with any data.
On the other hand if the task requires to handle some dynamically allocated data, don't create a honking huge static array.
I just started my Masters in CS at LaSalle University. The first class I had to take was in Data Structures. I had a similar class as an undergrad. But I was amazed to find out that most of the other people in my class have never taken a data structures class. I think every programmer should have at least a basic understanding of data structures.