I need some input.

wyrd

Well-known member
Joined
Aug 23, 2002
Messages
1,408
Location
California
This doesnt 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. Theres still a lot I dont 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 dont 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. Theres perhaps about a dozen APIs I have called in my programs
 
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 isnt 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.
 
Id learn DataStructures first for sure. Im not sure Id worry about the Linked Lists and such, since theyre 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 its 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 its generally for when you need to do something specific that .NET doesnt expose for you. So just learning the Win32 API might be fun but you wont 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 youd 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 cant readily be taught by books or school.

Before learning the API, Id learn about the .NET framework (all the built-in classes). Ive 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 users session to force them to log back in). Those cases are rare and I couldnt 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 wont 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 doesnt 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 whats 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 whats 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++ wont use the API any more than C# or VB.NET, from what I understand.)

Having said that, you cant really do much in C++ without knowing the API so its pretty obvious which one youll 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 Im really interested in is how it all works).

If anyone has an intermediate to advanced Data Structures book and/or tutorial to recommend Im 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