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.
- Find your role in the table below.
- Finish the core language first (the cheat sheet or Python Fundamentals).
- 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.
| Role | Full name | What you mostly use Python for |
|---|---|---|
| SDET | Software Development Engineer in Test | Writing automated tests and test frameworks |
| SDE | Software Development Engineer | Building applications, services, and APIs |
| SRE | Site Reliability Engineer | Automating operations and keeping systems running |
Which guide to readโ
| Role | Start with | Then |
|---|---|---|
| SDET | Python for SDET | Advanced Python for SDET |
| SDE | Python for SDE | Advanced Python for SDE |
| SRE | Python for SRE | Advanced 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.
- Setup โ install Python, create a virtual environment, run a script.
- Values & types โ numbers, text,
True/False,None. - Collections โ
list,tuple,set,dict, and when to use each. - Decisions & loops โ
if,for,while, comprehensions. - Functions โ arguments, return values, small lambdas.
- Classes โ objects, dataclasses, inheritance.
- Handling errors โ
try/except, raising your own errors. - Files & modules โ reading and writing files, importing code.
- Testing & logging โ
pytest, theloggingmodule. - Type hints โ describing what types your code expects.
- Doing several things at once โ threads, processes, and
async. - 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
asynccode
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.
| Topic | SDET | SDE | SRE |
|---|---|---|---|
| Advanced testing | Essential | Important | Useful |
| Mocking | Essential | Essential | Important |
| CI/CD | Essential | Important | Essential |
| Packaging | Useful | Essential | Useful |
| Deployment | Sometimes | Essential | Essential |
| Message queues | Important | Essential | Important |
| Security | Important | Essential | Essential |
| Infrastructure automation | Sometimes | Sometimes | Essential |
| Monitoring | Important | Important | Essential |
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.