Open source is a software distribution model in which the source code of the program is freely available to anyone who wants to view, compile, or modify the program. Open source software is typically freeware, although sometimes it contains donation messages, making it nagware. However, since it's open source, a competent programmer can always eliminate the nag messages and recompile it.
As a computer programmer, I especially love open source software because it allows me to peruse the source code of various programs. However, the reality is that open source projects are usually so complicated that the average programmer would require many hours of research to understand how the program works before being able to make any real contributions. And, all of the open source projects that I've looked at, are usually poorly commented.