ok....i THINK I might have grasped this:

When you type something, e.g. "ping" the shell looks through a few directories e.g. /bin and /sbin etc... however it doesn't try anything in the current directory unless it is specified in the path file.
However, if you want to run a program in a certain directory you type "./" which stops the shell searching elsewhere.

One more question: I often download 'programs' which have "make" "make install" etc.. instructions, are these 'programs' in the sense of excutables or are these scripts/code which the shell detects and runs a compiler, or something similar?