a symbolic link is pretty much a "shortcut" like in windows, but unlike windows, these are real genuine parts of a vaild filesystem, not a silly little ".lnk" file.it let's you access a single file from multiple locations. another kind of link that you can make with the "ln" command is a hard link. a hard link is where there are actually two entries in a file systems FAT table which go to the same memory location, as opposed to a symlink where one file points to another. with a hard link you can actually delete the original file, but as other links will remain, it is still available elsewhere. very handy
a socket file is used to pass information between applications amongst other applications. you may already be familiar with a pipe, "|" which lets you feed information directly, e.g. "ls | wc". Here, wc will count the number of lines from the output of ls. now a socket file is used when you can't join these two directly, and instead send the data to a special file. try this:
tail -f /tmp/testfifo
and in another console
echo HELLO! > /tmp/testfifo
the tail command should say HELLO! to you. Think of it kinda like a wormhole or something. again useful when you really need to do it.