Skip to main content

Role Guides: Python for SDET, SDE, and SRE

In short: everyone learns the same core Python first. After that, each role uses Python for different jobs, so each role gets its own guide.

How to use this page
  1. Find your role in the table below.
  2. Finish the core language first (the cheat sheet or Python Fundamentals).
  3. Then read your role's two guides in order: the main guide first, the advanced guide second.

The three rolesโ€‹

In short: the job title tells you what you mostly use Python for.

RoleFull nameWhat you mostly use Python for
SDETSoftware Development Engineer in TestWriting automated tests and test frameworks
SDESoftware Development EngineerBuilding applications, services, and APIs
SRESite Reliability EngineerAutomating operations and keeping systems running

Which guide to readโ€‹

RoleStart withThen
SDETPython for SDETAdvanced Python for SDET
SDEPython for SDEAdvanced Python for SDE
SREPython for SREAdvanced Python for SRE

The main guide shows how everyday Python (functions, classes, files, errors) applies to your role. The advanced guide covers the bigger topics you'll meet on the job.

Learning Java instead? SDETs start with Java for SDET after the Java learning path.

Working with databases? After the SQL learning path, SDETs read SQL for SDET.

What everyone learns firstโ€‹

In short: these topics are the same for every role. Learn them once, in this order, before moving to a role guide.

  1. Setup โ€” install Python, create a virtual environment, run a script.
  2. Values & types โ€” numbers, text, True/False, None.
  3. Collections โ€” list, tuple, set, dict, and when to use each.
  4. Decisions & loops โ€” if, for, while, comprehensions.
  5. Functions โ€” arguments, return values, small lambdas.
  6. Classes โ€” objects, dataclasses, inheritance.
  7. Handling errors โ€” try / except, raising your own errors.
  8. Files & modules โ€” reading and writing files, importing code.
  9. Testing & logging โ€” pytest, the logging module.
  10. Type hints โ€” describing what types your code expects.
  11. Doing several things at once โ€” threads, processes, and async.
  12. Talking to web services โ€” sending HTTP requests, building a small API.

The Learning Path turns this list into a week-by-week plan with a mini-project for each step.

What each role addsโ€‹

In short: after the core, each role goes deeper on a different set of topics.

SDET โ€” testing and automation

  • Advanced pytest: fixtures (shared setup), parametrising (one test, many inputs)
  • Mocking: replacing slow or external parts, like a real web service, with fakes
  • Browser and API automation frameworks
  • Running tests automatically on every code change (CI/CD โ€” continuous integration / continuous delivery)
  • Testing async code

SDE โ€” building and shipping software

  • Packaging your code so others can install it with pip
  • Deployment: getting code safely onto servers
  • Background jobs and message queues (e.g. Celery), for work that shouldn't make a user wait
  • Database design
  • Security basics: secrets, input checking, safe dependencies

SRE โ€” running systems reliably

  • Automating infrastructure and cloud tasks
  • Kubernetes: the system that runs and restarts containers
  • Monitoring: metrics, logs, and alerts
  • Automating incident response (runbooks as scripts)
  • Chaos testing: breaking things on purpose to prove the system recovers

How important each topic is, by roleโ€‹

In short: the same topic can be daily work for one role and occasional for another. Use this to decide what to learn first.

TopicSDETSDESRE
Advanced testingEssentialImportantUseful
MockingEssentialEssentialImportant
CI/CDEssentialImportantEssential
PackagingUsefulEssentialUseful
DeploymentSometimesEssentialEssential
Message queuesImportantEssentialImportant
SecurityImportantEssentialEssential
Infrastructure automationSometimesSometimesEssential
MonitoringImportantImportantEssential

Topics shared by all rolesโ€‹

A few advanced topics show up in every role once you work on real systems:

  • Testing in production โ€” checking a live system safely.
  • Safe releases โ€” rolling out to a few users first (a canary release) or switching between two identical environments (blue-green).
  • Rolling back โ€” undoing a bad release quickly.
  • Performance testing โ€” measuring speed under load before users notice.

Try it: pick your role, open its main guide, and skim the section headings. Tick off the ones you could already explain to a colleague โ€” the rest is your study list.