The primary use case for IaC is to deploy and configure resources in almost any environment in a single, unified way that also abstracts the user from the APIs.
Wrong Answers:
Combing disparate technologies and tasks is really the job of a pipeline, such as GitLab CI/CD, Jenkins, or Azure DevOps. While Terraform CAN be used with multiple technologies within a single configuration file, it's not really the ideal job for Terraform. Terraform isn't an orchestrator like the aforementioned tools would be used for.
The goal of Terraform is NOT to ensure that operations folks know how to develop code, although I'd say that is somewhat of an end result in most organizations. While they are developing Java or Golang applications, operations folks tend to use Terraform as an opportunity to learn more developer-centric workflows, like using Git or learning how to develop code in a repeatable fashion.
When deploying Terraform, it's often a one-time thing, and Terraform doesn't actively monitor applications for changes. That's the job of a configuration management tool, such as Ansible, Chef, Puppet, or SaltStack.
https://www.terraform.io/intro/use-cases
https://www.terraform.io/intro/vs/chef-puppet
https://www.terraform.io/intro/vs