Learning path
Terraform & Infrastructure as Code learning path: everything to study, topic by topic
Comprehensive Terraform assessment covering HCL syntax, resource and provider management, state management, module composition, cloud infrastructure patterns, CI/CD automation, testing, drift detection, and enterprise-scale IaC practices.
Short answer
To learn Terraform & Infrastructure as Code, work through 6 modules and 24 topics in the order they build on each other. It starts with HCL & Basics, then moves on to Resources & Providers and State Management. Use the map as a checklist, or measure your level and study only what is missing.
What you will study
Topics are grouped by module. Open one to see its objectives and key concepts.
1 · HCL & Basics4 topics
HCL Syntax
HashiCorp Configuration Language block structure, arguments, attributes, comments, file organization, terraform settings block, and required_version constraints
Objectives
- Write syntactically correct HCL configuration blocks
- Organize Terraform files following conventions
Key concepts
- block syntax
- arguments and attributes
- comments (# and //)
- file organization (.tf files)
- terraform settings block
- required_version
- required_providers
- backend configuration
Variables & Outputs
Input variables with type constraints, default values, validation rules, output values, sensitive marking, variable precedence, and tfvars files
Objectives
- Define input variables with proper type constraints and validation
- Configure outputs to expose values from modules
Key concepts
- variable blocks
- type constraints (string, number, bool, list, map, object)
- default values
- validation rules
- output blocks
- sensitive flag
- variable precedence
- terraform.tfvars
Expressions & Functions
String interpolation, conditional expressions, for expressions, splat operators, built-in functions (lookup, merge, flatten, coalesce), and dynamic blocks
Objectives
- Use HCL expressions for dynamic configuration
- Apply built-in functions to transform data
Key concepts
- string interpolation
- conditional expressions (condition ? true : false)
- for expressions
- splat operators ([*])
- built-in functions
- type conversion functions
- collection functions
- dynamic blocks
Data Sources
Data source blocks for reading external information, filtering results, data source dependencies, external data source, and combining data with resources
Objectives
- Query existing infrastructure using data sources
- Combine data sources with resource configurations
Key concepts
- data blocks
- reading existing infrastructure
- filter arguments
- data source dependencies
- external data source
- data source vs resource
- most_recent flag
- combining data with resources
2 · Resources & Providers4 topics
Resource Basics
Resource blocks, resource addressing, meta-arguments (count, for_each), lifecycle rules (create_before_destroy, prevent_destroy, ignore_changes), and timeouts
Objectives
- Define resources with proper meta-arguments
- Apply lifecycle rules to control resource behavior
Key concepts
- resource blocks
- resource addressing
- count meta-argument
- for_each meta-argument
- lifecycle rules
- create_before_destroy
- prevent_destroy
- timeouts
Provider Configuration
Provider blocks, version constraints, alias providers for multi-region, provider authentication methods, and required_providers block
Objectives
- Configure providers with version constraints and aliases
- Set up multi-region provider configurations
Key concepts
- provider blocks
- version constraints (~>, >=, =)
- provider aliases
- multi-region providers
- authentication configuration
- required_providers
- provider inheritance in modules
- provider source addresses
Resource Dependencies
Implicit dependencies via references, explicit depends_on, dependency graph, resource ordering, circular dependency detection, and terraform graph command
Objectives
- Manage resource creation order through implicit and explicit dependencies
- Diagnose and resolve circular dependency issues
Key concepts
- implicit dependencies
- depends_on meta-argument
- dependency graph
- terraform graph command
- resource ordering
- circular dependencies
- data source dependencies
- module dependencies
Provisioners
Local-exec and remote-exec provisioners, file provisioner, connection blocks, when = destroy, provisioner failure handling, and why provisioners are a last resort
Objectives
- Implement provisioners for post-creation configuration
- Explain why provisioners should be avoided when possible
Key concepts
- local-exec provisioner
- remote-exec provisioner
- file provisioner
- connection blocks
- when = destroy
- on_failure setting
- null_resource with provisioners
- provisioners as last resort
3 · State Management4 topics
State Fundamentals
Terraform state file purpose, state structure, terraform show, state list, state as source of truth, and local state file
Objectives
- Explain the purpose and structure of Terraform state
- Use state inspection commands to debug infrastructure
Key concepts
- terraform.tfstate file
- state as source of truth
- terraform show command
- terraform state list
- state file structure
- resource addressing in state
- sensitive data in state
- state file versioning
Remote State
Remote backends (S3, GCS, Azure Blob), backend configuration, state migration, terraform_remote_state data source, and partial configuration
Objectives
- Configure remote backends for team collaboration
- Share state between configurations using terraform_remote_state
Key concepts
- remote backends
- S3 backend configuration
- state migration (terraform init -migrate-state)
- terraform_remote_state data source
- partial backend configuration
- backend encryption
- state storage best practices
- cross-stack references
State Locking
State locking mechanisms, DynamoDB locking table, lock timeout, force-unlock command, concurrent access prevention, and lock info
Objectives
- Configure state locking to prevent concurrent modifications
- Troubleshoot state lock issues in team environments
Key concepts
- state locking purpose
- DynamoDB lock table
- lock timeout
- terraform force-unlock
- concurrent access prevention
- lock info in state
- backend-specific locking
- lock contention debugging
State Operations
terraform state mv, terraform state rm, terraform import, state replace-provider, import blocks (Terraform 1.5+), and refactoring with moved blocks
Objectives
- Perform state manipulation operations safely
- Import existing infrastructure into Terraform management
Key concepts
- terraform state mv
- terraform state rm
- terraform import
- import blocks (HCL)
- moved blocks
- state replace-provider
- state pull/push
- resource address refactoring
4 · Modules & Composition4 topics
Module Basics
Module structure, module sources (local, git, registry), input variables, output values, module versioning, and root vs child modules
Objectives
- Create and consume reusable Terraform modules
- Structure modules with proper inputs, outputs, and versioning
Key concepts
- module blocks
- module sources (local, git, registry)
- module inputs and outputs
- module versioning
- root module vs child modules
- module directory structure
- passing providers to modules
- module count and for_each
Module Design Patterns
Composable module architecture, thin wrapper modules, opinionated vs flexible modules, module composition, dependency injection, and module testing
Objectives
- Design modules that balance reusability with simplicity
- Apply composition patterns to build complex infrastructure
Key concepts
- composable architecture
- thin wrapper modules
- opinionated vs flexible design
- module composition patterns
- dependency injection
- interface abstraction
- module boundaries
- anti-patterns in module design
Module Registry
Terraform Registry, private registries, module publishing requirements, semantic versioning, module documentation, and registry-backed modules
Objectives
- Publish modules to public or private registries
- Evaluate and consume community modules safely
Key concepts
- Terraform Registry
- private module registry
- module publishing requirements
- semantic versioning for modules
- module documentation standards
- verified modules
- community modules evaluation
- registry source syntax
Workspace Management
Terraform workspaces, terraform.workspace variable, workspace-based environment separation, workspace vs directory-based environments, and workspace naming conventions
Objectives
- Implement multi-environment strategies using workspaces
- Evaluate trade-offs between workspace and directory-based separation
Key concepts
- terraform workspace commands
- terraform.workspace variable
- workspace-based environments
- workspace vs directory separation
- workspace naming conventions
- workspace-specific variables
- state isolation per workspace
- workspace limitations
5 · Cloud Patterns4 topics
AWS Infrastructure Patterns
Common AWS resource patterns in Terraform — VPC, EC2, RDS, S3, Lambda, DynamoDB, API Gateway, and CloudFront configurations
Objectives
- Implement common AWS infrastructure patterns with Terraform
- Design production-ready AWS resource configurations
Key concepts
- VPC and subnet design
- EC2 instance patterns
- RDS configuration
- S3 bucket policies
- Lambda function deployment
- DynamoDB table design
- API Gateway setup
- CloudFront distributions
Networking Patterns
VPC design, subnet strategies, security groups, NACLs, VPC peering, Transit Gateway, Route 53, and load balancer configuration
Objectives
- Design multi-tier network architectures with Terraform
- Implement secure network connectivity patterns
Key concepts
- VPC CIDR planning
- public/private subnet design
- security group rules
- network ACLs
- VPC peering
- Transit Gateway
- Route 53 DNS
- ALB/NLB configuration
IAM & Security
IAM roles and policies in Terraform, assume role patterns, cross-account access, KMS key management, secrets management, and security group best practices
Objectives
- Implement least-privilege IAM policies with Terraform
- Design cross-account access patterns securely
Key concepts
- IAM role and policy resources
- assume role configuration
- cross-account IAM
- policy document data sources
- KMS key management
- Secrets Manager integration
- least privilege principle
- security group best practices
Multi-Cloud Strategies
Managing multiple cloud providers, provider abstraction patterns, cloud-agnostic module design, cross-cloud networking, and hybrid cloud configurations
Objectives
- Design Terraform configurations that span multiple cloud providers
- Evaluate trade-offs of cloud-agnostic vs provider-specific approaches
Key concepts
- multi-provider configuration
- provider abstraction layers
- cloud-agnostic modules
- cross-cloud networking
- hybrid cloud patterns
- provider-specific vs generic resources
- multi-cloud state management
- cost optimization across clouds
6 · Advanced IaC4 topics
CI/CD Automation
Terraform in CI/CD pipelines, plan/apply automation, GitOps workflows, Atlantis, Terraform Cloud/Enterprise runs, and pipeline security
Objectives
- Design CI/CD pipelines for safe Terraform automation
- Implement approval workflows and security controls in pipelines
Key concepts
- CI/CD pipeline integration
- automated plan and apply
- GitOps workflow
- Atlantis
- Terraform Cloud runs
- plan artifact storage
- pipeline security (secrets)
- approval gates
Testing & Validation
Terraform validate, terraform plan analysis, Terratest, terraform test (built-in), policy as code (Sentinel, OPA), pre-commit hooks, and linting (tflint)
Objectives
- Implement testing strategies for Terraform configurations
- Enforce infrastructure policies with Sentinel or OPA
Key concepts
- terraform validate
- plan analysis
- Terratest framework
- terraform test (built-in)
- Sentinel policies
- Open Policy Agent (OPA)
- tflint
- pre-commit hooks for Terraform
Drift Detection
Configuration drift concepts, terraform plan for drift detection, automated drift monitoring, remediation strategies, and drift in CI/CD pipelines
Objectives
- Implement automated drift detection workflows
- Design remediation strategies for configuration drift
Key concepts
- configuration drift
- drift detection via plan
- automated drift monitoring
- scheduled drift checks
- drift remediation strategies
- out-of-band changes
- refresh-only plans
- drift alerting
Enterprise Patterns
Terraform at scale, team collaboration patterns, mono-repo vs multi-repo strategies, state organization, blast radius management, and governance frameworks
Objectives
- Design Terraform architectures for large organizations
- Implement governance and cost management at enterprise scale
Key concepts
- mono-repo vs multi-repo
- state organization strategies
- blast radius management
- team collaboration patterns
- governance frameworks
- cost management
- tagging strategies
- Terraform Cloud/Enterprise features
Levels: Junior, Mid, Senior, and Expert
Explain it in your own words
Graded by AI · no account · 1 questionNo options to guess from: you write, the AI grades against the topic's rubric and tells you what level your answer reads at.
Already studying Terraform & Infrastructure as Code?
The assessment measures topic by topic, and your plan skips what you already know.
Open to read. An account is only needed to be measured.
Frequently asked questions
Where should I start studying Terraform & Infrastructure as Code?
Start with HCL & Basics: HCL Syntax, Variables & Outputs, and Expressions & Functions. The map orders topics by what they depend on, so each one prepares the next.
How long does a full Terraform & Infrastructure as Code assessment take?
A full assessment of this path takes about 45 minutes. Study time depends on where you start; a diagnostic shows which topics you can skip.
Do I need an account to use this page?
No. The map, objectives and key concepts are open. You only need an account to be measured, get your gap by topic and receive a plan.