In the Free and Open Source Software world, programs are generally available in source code tarballs. These are convenient for a developer who intends to study and/or improve that software program, but they are cumbersome when you want a program that Just Works.
If you have been a Windows and/or a Mac OS user to date, you are probably used to searching for a program on the internet (often offered in an executable installer) and having to download and install it. You're probably familiar with software distributed on CDs, DVDs, etc. which often have an autorun feature from where you can then install them. For free and open systems like Ubuntu GNU/Linux there is some software distributed in this fashion, but those are mostly proprietary and closed programs.
Enter the world of distribution and package repositories!
On systems like Ubuntu, free and open source software is very much often pre-packaged in nice .deb (or .rpm, like in Red Hat) files which contain the programs and libraries you need. These files can be downloaded or come in CDs (Ubuntu's CD is full of them) and installed "by hand". But you need not do it. Repositories are servers which contain sets of packages. You generally access them with tools like [:SynapticHowto:Synaptic].
These tools can list all the packages you have installed (from your kernel to your favorite application with all the libraries in between) and the packages that are available in the repositories you have configured the tool to have access to. They also let you search for simple things like "image editor".
Using these tools centralizes package management while simplifying it and giving the distributors (those who set up the repositories) a centralized way to send you updates(1) to your software.
In Ubuntu you generally want to have at least Ubuntu's repositories (which may include the install CD) but it is not uncommon to have other repositories (from other packagers) set up.
Please see AddingRepositoriesHowto for how to set up repositories.
Now, let us just stress this simple idea: most of the tools you'll want to use in Ubuntu are already in Ubuntu's repositories. You can go search the internet for packages, or even source code, for others, but these will be more difficult to install and won't, most of the time, integrate well with your system.
So now you know: no more endless searching looking for spyware infested shareware and freeware. The vast majority of useful software available for Linux is pre-packaged for you.
(1) You can use tools like the update-notifier in Ubuntu to be notified when such updates are made available.