Ok... I will take a shot at these...
What is
1) a.out and elf?
They are formats for how an executable is stored on disk... more of a file format... sort of if there was 2 ways to format the contents of a .exe file... for a user...its not important.. a.out is an older standard that is not used much at all, and elf is the newer standard that everyone uses. Everyone moved to elf several years ago because it works with dynamic linking better, and allows programs to share memory easier. But, these days its nothing more than answer to triva questions and not important.
Different version of the C library. libc is the main sort of function calls that are used by C programs... Its the library that stores the basic c programming funnctions like read(), printf() etc..
See??...
This is only important because some programs are compiled against different versions.. the cool think about *NIX is you can have multiple versions of the same library on a system and have programs run that required either versions, and they don't interfere with each other.. this is one thing that Windows really screwed up... in windows a new program that required a newer library overwrites the older library and lots of times breaks compatibility with programs based on the older version (This is what DLL Hell means) ... NIX doesnt have that problem.
3) GCC is a compiler, I know, but what is ncurses?
ncurses, is a library which provides a programmer a simple to use interface which allows them to do character based GUI's in text mode screens... makes a text interface for a program much nicer with input boxes, buttoms, pop-ups etc..
Just stuff like that, how do you all know (those that do) this stuff? How do did you wrap your head around the concepts that are native to *nix in the first place? It seems that my learning curve is longer, steeper and harder than anyone elses
Nah... most of this stuff is "programmer" stuff, and you really don't have to know much of anything about it as a NIX user... I used NIX for many years before I picked this stuff up...