From understanding
to ownership.
A map from programming foundations to responsible technical ownership. Build a common core, choose your specialization, and show what you can do.
Start with a foundation.
Find your direction.
Build something that matters.
One common core.
Many ways to go deeper.
This is a competency roadmap, with related Python lessons available today. Dedicated courses for the full roadmap are still being developed. Explore the stages in order, and choose the specializations that fit your goals.
A shared foundation, applied in your working environment.
Choose depth for the kind of work you want to do.
Broader scope or specialist depth as your responsibility grows.
Your learning map
01STAGE 1 · 5 COMPETENCIESBuild your foundationsLearn to express ideas in code, reason about problems, and work with the tools of the craft.
Programming languages
CoreBuild depth in one language and learn supporting tools as the work requires.
- Choose a language for a problem and explain the tradeoffs.
- Read unfamiliar code and distinguish programming, markup, and configuration.
Your primary language, deeply
CoreExplain why your code behaves as it does, from types to runtime behavior.
- Reason about scope, mutation, types, errors, and resource cleanup.
- Use the standard library and appropriate programming styles.
Data structures & algorithms
CoreSelect practical representations and understand their costs.
- Compare time and space complexity for common operations.
- Use collections, searching, sorting, and traversal with clear tradeoffs.
Mathematics & logic
CoreUse the reasoning tools your field needs, with deeper mathematics where relevant.
- Apply logic, sets, basic probability, and discrete reasoning.
- Recognize when a problem needs numerical or statistical expertise.
Tools & version control
CoreWork confidently in a shared codebase.
- Use a debugger, shell, editor, and version control effectively.
- Review changes, resolve conflicts, and preserve useful project history.
Practice ideas to demonstrate these skills:
- Build a small command-line tool with clear inputs, errors, and tests.
- Explain a data-structure choice and keep a readable Git history.
These resources support parts of this stage. They do not cover every competency.
Your first steps with PythonBegin the published Python course.Git & GitHubPractice working with version control.02STAGE 2 · 4 COMPETENCIESUnderstand systems & dataLook beneath the code: execution, networks, persistence, and work that happens at the same time.
Operating systems & runtimes
CoreUnderstand the environment in which programs execute.
- Explain processes, threads, memory, files, and resource limits.
- Connect runtime behavior to practical correctness and performance.
Networking & the internet
CoreTrace a request across the systems it depends on.
- Explain DNS, transport, TLS, HTTP, and caching.
- Investigate latency, timeouts, and network failure.
Databases & data modeling
CoreRepresent information and protect its meaning as a system changes.
- Design schemas, queries, indexes, and transactions.
- Plan migrations, backups, and recovery for data-backed applications.
Concurrency & distributed systems
CoreReason about work that overlaps and systems that fail independently.
- Explain synchronization, consistency, retries, and idempotency.
- Choose an appropriate level of distributed-system complexity.
Practice ideas to demonstrate these skills:
- Trace a request from a client through a service to stored data.
- Demonstrate how a small data-backed application handles a failure.
These resources support parts of this stage. They do not cover every competency.
Complete Python MasteryA published course with 58 chapters and 236 lessons, from first programs to applied Python projects.03STAGE 3 · 3 COMPETENCIESDesign software that lastsTurn requirements into understandable boundaries and contracts that can evolve.
Code design & maintainability
CoreMake code easier to understand, test, and change.
- Design cohesive modules with explicit responsibilities.
- Refactor incrementally and manage coupling and technical debt.
Architecture & system design
CoreMake and explain design decisions within a concrete domain.
- Compare options against requirements and operational constraints.
- Document boundaries, failure modes, and architectural tradeoffs.
APIs & backend integration
Role-specificBuild dependable contracts between services and their consumers.
- Design validation, authorization, pagination, and error behavior.
- Handle versioning, rate limits, webhooks, and integration failures.
Practice ideas to demonstrate these skills:
- Build an API with validation, authorization, and useful error behavior.
- Write a decision record comparing two designs and their tradeoffs.
These resources support parts of this stage. They do not cover every competency.
Clean code & architectureExplore maintainable design through Python.Architecture decisions & design reviewPractice explaining architectural tradeoffs.04STAGE 4 · 4 COMPETENCIESMake quality visibleTest your assumptions, investigate behavior, and protect the people who rely on your work.
Testing & quality
CoreCollect useful evidence that a change behaves as intended.
- Choose unit, integration, contract, and end-to-end tests by risk.
- Write reproducible tests for failure paths and regressions.
Debugging & performance
CoreInvestigate with evidence before changing code.
- Reproduce a problem, form hypotheses, and isolate its cause.
- Profile and benchmark with realistic workloads and explicit limits.
Application security
CoreBuild security into everyday design and implementation.
- Validate trust boundaries, access control, and untrusted input.
- Manage secrets and dependencies and investigate common attack paths.
Privacy & professional responsibility
CoreConsider the people affected by technical decisions.
- Minimize data collection and reason about retention and access.
- Identify ethical risks and when specialist review is needed.
Practice ideas to demonstrate these skills:
- Capture a regression with a failing test, then demonstrate the fix.
- Document a performance investigation and a small threat model.
These resources support parts of this stage. They do not cover every competency.
Performance measurementUse evidence to assess performance.Security & productionExplore security in a Python application.05STAGE 5 · 5 COMPETENCIESDeliver, operate & evolveTake software beyond your laptop and learn to care for it over time.
Dependencies & build systems
CoreMake software reproducible beyond your own machine.
- Manage versions, dependency locks, and build artifacts.
- Understand supply-chain trust and maintain dependencies over time.
CI/CD & releases
CoreShip changes through a repeatable, observable process.
- Automate relevant checks and controlled deployment.
- Plan configuration, rollout, rollback, and release verification.
Cloud & infrastructure
Role-specificUnderstand the infrastructure your software needs; specialize where your role requires.
- Reason about compute, storage, networking, identity, and cost.
- Apply containers or infrastructure as code when they serve the system.
Reliability & incident response
CoreCare for systems after they are deployed.
- Use logs, metrics, traces, and service objectives to diagnose behavior.
- Prepare runbooks and turn incidents into actionable improvements.
Maintenance, migration & retirement
CoreOwn the complete life of a system, including its final chapter.
- Plan compatibility, migrations, support, and deprecation.
- Retire services and data responsibly with a clear transition plan.
Practice ideas to demonstrate these skills:
- Release a reproducible project with automated checks and a rollback plan.
- Write an operational runbook and review a simulated incident.
These resources support parts of this stage. They do not cover every competency.
Continuous integration & deliveryConnect checks and delivery in a Python project.Reliability & incident reviewPractice investigating and learning from failure.06STAGE 6 · 5 COMPETENCIESChoose the products you buildApply the common core to your chosen area. These are branches to explore, not a list of jobs to master.
Frontend & web engineering
Role-specificCreate responsive, understandable experiences on the web.
- Work with HTML, CSS, JavaScript, browser APIs, and state.
- Evaluate performance, forms, rendering, and browser behavior.
Accessibility & user experience
CoreBuild user-facing products people can actually use.
- Support semantic structure, keyboard navigation, and assistive technology.
- Test clear feedback, errors, and usability with real tasks.
Mobile engineering
Role-specificWork with mobile platforms and their real constraints.
- Reason about lifecycle, permissions, storage, and connectivity.
- Plan platform testing, distribution, updates, and battery use.
Real-world product details
Role-specificDesign for the messy environments in which people use software.
- Handle locales, time zones, formats, and unreliable connectivity.
- Consider abuse, support, and operational edge cases in your domain.
Further engineering specializations
Role-specificChoose additional depth for the work you want to do.
- Recognize distinct paths such as embedded, graphics, compilers, or scientific computing.
- Identify the domain expertise and evidence your chosen specialty requires.
Practice ideas to demonstrate these skills:
- Build a product slice for a specific audience and test its key user journey.
- Review accessibility, environment constraints, and support needs.
07STAGE 7 · 5 COMPETENCIESWork thoughtfully with AI & dataDevelop AI literacy, then choose deeper application, model, or data work when it fits your goals.
AI in your engineering workflow
CoreUse AI deliberately where permitted and verify the result.
- Review generated code, tests, and explanations against evidence.
- Protect sensitive context and recognize when AI adds little value.
LLM applications
Role-specificDesign useful products around probabilistic model behavior.
- Work with retrieval, structured output, tools, and model integration.
- Evaluate latency, cost, permissions, and fallback behavior.
AI evaluation, agents & safety
Role-specificMeasure behavior before giving AI systems consequential autonomy.
- Build representative evaluations and monitor failures and regressions.
- Bound tool access, test injection risks, and provide human oversight.
Machine learning & models
Role-specificDevelop models with sound data and experimental practice.
- Prevent leakage and compare against meaningful baselines.
- Evaluate generalization, deployment behavior, and model drift.
Data engineering
Role-specificBuild dependable pipelines that preserve the meaning of data.
- Design ingestion, transformation, schemas, and data-quality checks.
- Reason about batch and streaming work, lineage, and recovery.
Practice ideas to demonstrate these skills:
- Compare an AI-assisted result against a reliable baseline and document failures.
- For an AI or data specialization, build an evaluated project with explicit data and permission boundaries.
These resources support parts of this stage. They do not cover every competency.
Applied Python proof labsFind applied lab guidance, including data and AI projects.08STAGE 8 · 4 COMPETENCIESGrow your professional influenceConnect technical choices to purpose, help others succeed, and take responsibility for broader outcomes.
Product & business judgment
CoreConnect engineering work to a real problem and a worthwhile outcome.
- Clarify uncertain requirements and choose useful measures of success.
- Plan work around value, cost, risk, and feedback.
Communication & collaboration
CoreMake technical work understandable to the people who depend on it.
- Write useful documentation, proposals, and decision records.
- Give constructive reviews and communicate uncertainty clearly.
Mentoring & technical leadership
CoreHelp others become more effective as your own responsibility grows.
- Teach with context, offer actionable feedback, and share ownership.
- Lead technical work through ambiguity without becoming a bottleneck.
Staff & principal scope
AdvancedExtend technical influence across teams and organizational boundaries.
- Align technical direction with longer-term organizational needs.
- Build consensus, guide cross-team initiatives, and develop other leaders.
Practice ideas to demonstrate these skills:
- Present a portfolio case study with decisions, evidence, and lessons learned.
- Lead a review or mentor a collaborator and reflect on the outcome.
These resources support parts of this stage. They do not cover every competency.
Portfolio thesisBring together evidence from your Python engineering work.Let your work tell the story.
Move from recognizing an idea, to applying it independently, to using it reliably in real systems. Leadership adds helping others do the same. Course completion is one part of that journey; it does not establish a job level.
Begin with Python