@Sam Heinrich Learn Python https://pythoninstitute.org/ Under 'Study Resources', see General Purpose Programming classes. Learn the client-server model. Learn how HTTP protocol works so you can use Python Requests Library: https://requests.readthedocs.io/en/latest/ Learn data formats like JSON and YAML (and maybe XML). Systems exchange data (even if they aren't programmed in the same language) via these common/universal formats. Learn about REST APIs. Modern systems communicate with each other via REST APIs. The initiating system is the client, the destination system is the server. The server may offer one or multiple APIs. Each API is like a doorway (an endpoint) that the client can use to ask the remote system to do some work according to HTTP methods (GET, POST, PUT, PATCH, DELETE). The server then replies to the client with the results of that work (whether that be returning data, or just a status message, or both). Get familiar with CRUD methods (create, read, update, delete - these concepts align to the HTTP methods above) as these all allow interaction with or manipulation of data on the remote system. Data is exchanged using the above formats. Learn about python libraries and SDKs (as these will save you much work from having to code all your own functionality from scratch). Essentially, these allow you to borrow the work of others... beware though, as this becomes a "dependency" in your code. When you understand all that, you'll realize that all the common automation tools like Ansible and Terraform (or even Make.com) are just software which abstract the underlying Python code using Requests library to make API calls to remote systems. That abstraction comes at a cost: learning a tool specific language (Ansible: module syntax & YAML playbooks, Terraform: HashiCorp Configuration Language), performance (which is typically slower), and troubleshooting (which is typically more challenging). Those abstracted languages make it easier for non-developers to understand and configure for desired results, but native Python code scales better and troubleshooting is simpler/faster.