Hi all,

I'm a newbie programmer, somewhat comfortable programming my own applications from scratch in Win32API or .NET. What I'm having trouble though, is understanding and working with other people's code, like various SDKs and source code widely available on the internet. I just don't know what to do after I unzip the file.
For example, I'd download the source code of some open source application, unzip it in some directory, and notice that there's a bunch of directories, a bunch of project files, maybe a couple solution files, hundreds of .h files, hundreds of .c files and so on and so forth.
Forgive my ignorance, but what on earth am I supposed to be doing with all this? I understand that I'd need to compile something, probably, but which project or which solution am I supposed to compile? If I pick a random one and compile it, I end up with a bunch of errors I am clueless about. and then what? I'd have to figure out how the program works, but with hundreds of files floating around, where do I begin? (assuming no helpful documentation...)

I've learned to program mostly on my own, reading books and tutorials, but no books out there seem to talk about how to figure out stuff other's have written. Perhaps it's supposed to be obvious. Well, it isn't for me.
Anyhow, I know that this forum is filled with experienced programmers, and they all must have had a transition from being able to program things on their own to being able to work with stuff other's have written. So if anyone could share their experience with learning how to do this, I'd be much indebted!