Zend certified PHP/Magento developer

How and when should I use the Magento 2 commands bin/magento setup:upgrade, bin/magento setup:di:compile, and bin/magento static:content:deploy -f?

I’m new to Magento 2 and I’m trying to understand the purpose and appropriate usage of some important commands. Specifically, I would like to know more about the following commands:

bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento static:content:deploy -f
What are the specific functionalities and benefits of these commands in a Magento 2 project? When should each of these commands be used, and what tasks do they perform behind the scenes? Are there any best practices or considerations to keep in mind when running these commands?

I would greatly appreciate any insights or explanations that can shed light on the proper usage and advantages of these Magento 2 commands.