You don't *have* to write your own programs in Linux.
Most Linux distro's do come with GCC though, which is a software compiler. You don't even have to know how to program to use Linux, although Linux (or any *nix) is an excellent platform to learn to program on. A good language to learn is c or c++. You might want to check out this site to help you decide what distro is right for you; I personally use Slackware.