I need some input.

wyrd

Senior Contributor
Joined
Aug 23, 2002
Messages
1,405
Location
California
This doesn't really relate to .NET but programming in general... what would be more important to learn, Windows API or Data Structures.

If it helps, I have a basic knowledge of Data Structures, like singley linked lists, doubley linked lists, circle lists, binary tree, stacks, queues, recursion. There's still a lot I don't know about Data Structures though.
 
Depends on what you want to do with your newly gained knowledge, I suppose.

We had some data structures at university and I don't recall too many occasions that I really needed that knowledge. Most datastructures are already implemented in the class library.

I never had a thorough understanding of the API. There's perhaps about a dozen APIs I have called in my programs´. Mostly because I copied and pasted from examples.

So.
I would not spend too much time on datastructures. Try to find out how they work, get an overview, but I don't see much real life benefit of digging into the details. I'd spend more time on the API.

HTH
Heiko
 
A large number of the API calls have been subsumed into the .NET framework but the syntax is nearly exactly the same so if you learn the API it isn't a total waste...also this is a good way to learn how the OS works which is handy for tracking down the more eosoteric bugs.
 
I'd learn DataStructures first for sure. I'm not sure I'd worry about the Linked Lists and such, since they're a little different in .NET. In C/C++ where you had pointers, you had more control to create these specialized types of objects. In .NET it's much simpler, in that you can create an object with a reference to itself, to keep track of your list. Or, you can use built-in collection objects for many simple collection types (Stack, Queue, Hashtable, etc.).

The API is good to know as well, but it's generally for when you need to do something specific that .NET doesn't expose for you. So just learning the Win32 API might be fun but you won't need many of them. There might be some benefit to knowing what it has available in case you want to take advantage of it when an otherwise unsolvable problem comes up. But, I think you'd get a much greater benefit as a programmer/developer learning the core coding techniques.

Besides data structure, learning good .NET structured programming is good to know, too. Meaning, when to create classes, methods, properties, etc. is important and can't readily be taught by books or school.

Before learning the API, I'd learn about the .NET framework (all the built-in classes). I've only had to use the API 2 times so far in the past year - a couple of calls to do some subclassing (to intercept all user input to handle auto-timeouts) and a few to find a message box window handle to shut it down (when an app times out and I want to kill a user's session to force them to log back in). Those cases are rare and I couldn't tell you without looking them up again what the calls are or how they work. The point being that the API is useful, but you probably won't remember the exactp API calls very often. Good programming lasts forever, regardless of language or platform.

-Nerseus
 
I knew there was a danger in asking this on a .NET forum. :)

This doesn't really relate to .NET but programming in general.

Let me see if I can rephrase this;
.NET is not the only language I program in. I also program in C/C++. What would help me be a better programmer in the long run (regardless of language), Data Structures or Windows API?

I know that both are fairly pointless to learn for .NET, although learning either would give me a better understanding of what's going on under the hood, much like the reason one would learn Assembly (I just took my final for this course and found the entire experience rather enlightening on what's going on under the hood). But, just to note, I already know a little bit about (and how to program) Data Structures (just took the 1st of 2 classes on Data Structures in school which covered what my first post listed).
 
Well C++ is probably the only language where the API IS the framework. Should have mentioned that language specifically since this is a .NET forum :p (this assumes non-managed C++ -- managed C++ won't use the API any more than C# or VB.NET, from what I understand.)

Having said that, you can't really do much in C++ without knowing the API so its pretty obvious which one you'll want to learn first. But, you should still learn the datastructures, good coding techniques, etc. next (before you become an expert in the API) since, as I said, good programming is good programming regardless of language, OS, platform, etc.

-Nerseus
 
Managed C++ in my eyes simply just does not exist :D I refer to all of C#, VB.NET, etc in general as .NET.

I can still stick to programming Windows in C# I suppose, and learn Data Structures then go back to the Windows API when I have a stronger foundation of programming in general. Plus, I can probably learn the basics of Windows API from a few tutorials on the web in a few days (pretty much the only thing I'm really interested in is how it all works).

If anyone has an intermediate to advanced Data Structures book and/or tutorial to recommend I'm all ears (or would it be eyes?)
 
I was told that there has been a paradigm-shift since that book has been published.

While Knuth sees the development of algorithms as some sort of <i>art</i> (as the title indicated), later books are rather speaking of the <i>science</i> of computer programming. There should be a reasonable book with that title. Could be from Niklas Wirth, the father of pascal.
 
Back
Top