The four freedoms are what makes free software free. They are defined by the Free Software Foundation, pioneered by Richard Stallman.
More verbosely elaborated on by the FSF
The open source definition has a few more clauses, but broadly aligns with free software. You can read up on the ten clauses here
Permissive licenses pose very limited restrictions at best. Copyleft denotes a type of FOSS license that prevents the "propietization" of FOSS code. Permissive licenses mostly let people do whatever they want with the software. Copyleft licenses aim to protect the software from ill intent, protecting it's freedom.
In the following I'll treat public domain licenses as permissive licenses. I call less restrictive licenses weak and more restrictive licenses strong.
If I care about the software I'm writing and plan to invest significant time and ressources into it's development. If the Software is or could be useful to other people and get actual users. If my Software has value beyond the code, beyond being a subject of education. Then I'll license it under a GPLv3, or a derivative if applicable.
If the Software has been a coding exercise or educational resource. If the Software is small in scope and didn't require much time or effort. If the Software is useful to me but to few others. Then I'll license it under the CC0 and dedicate it under the public domain.
CC0 and GPLv3 are polar opposites, yet I use both. I hope I was able to explain why.
If you hold different views and want to explore the alternatives, check out choosalicense.com