To get started, you really need to decide what kind of permissions you want to give. If you want your project very open with a lax license, go with a BSD or MIT style license. The only difference between those two is that the BSD requires people who distribute your software to keep your name with it, the MIT doesn't. If you want copyleft (requiring modified versions to have the same license), go with the GPL (or the LGPL if you are okay with your software being bundled). These licenses are often called viral licenses because they require forks of your program to be under that same license. They are also the #1 and #3 most popular licenses if I recall correctly. If you want the same kind of protections as the GPL minus the copyleft, look at the Apache License, which is the #2 most popular license and is also used for it's sections regarding patents. Documentation should also be openly licensed, try the GFDL or a Creative Commons license for it.
I don't really know why the GPL is chosen so much. It's quite possible that the Free Software Foundation's pamphlets on copyleft convinced them that is what they needed to do. I take a much more lax approach and license my stuff using the Apache License or the BSD. You could also go in between and choose the LGPL, which provides the same protections as the GPL, but includes the ability for other people to bundle your software without dealing with copyleft. It's generally used for libraries, but other programs like LibreOffice have chosen to use it for it's ability to allow software to be bundled in packages with other software while retaining the copyleft requirement for forks.
I am not a lawyer, this is not legal advice. Blah blah blah, etc.