My interpretation of Python back-end self-study roadmap. The topics cover a lot of information, primarily from my personal experience and understanding the nature of web backend development. Colors are used to differentiate between levels of understanding.

Line color Level
:black_large_square: Foundational (Bare minimum is expected to be known)
:green_square: Interview (Topics that could be touched during interview)
:red_square: Advantage (Follow up questions, that could be decisive)

Development

It is expected that one knows how to code and understands what they are doing.

Design

This can be an advantage during interviews and may lead to smoother integration into the existing codebase.

Algorithms and data structures

Aside from discussions on algorithms and data structures complexity, about 30-50% of interviews require some form of live coding. Most often, it involves a simple algorithm or a problem-solving pattern recognition task (e.g., easy-medium at leetcode.org). Thus, it is both advantageous and increases the chances of passing the interview.

Operations

It’s not just about deep configuration knowledge, but also about understanding how to scale and maintain systems efficiently, and how to understand and resolve arising issues.

Delivery

Delivery is all about understanding the software development lifecycle (SDLC) and focuses on methodologies and tools for efficient code deployment and management, including continuous integration and deployment (CI/CD), version control, and quality. Not a must, but really advantageous.

Computer Architecture

It is necessary to understand the execution environment, how the code interacts with it, where the data comes from, and where it goes. This includes both virtual hardware, such as interpreters in browsers or servers, and real hardware in the case of languages compiled into machine code.

Security

This topic is related to secure design approaches, authorization and authentication, secure programming in terms of reducing the attack surface, and understanding the constraints imposed on development and the environment.

Networking

It is usually expected that one understands how data flows between the actors inside the web system, both internally in the intranet and externally on the internet.