New Cohort Starts:

Donate
← Back to the skill map
Programming Languages/Interface & language

Python Core

17 micro-topics in Programming Languages, each with the evidence that proves you have it and the written reason behind every link. Before you start, it rests on 1 other domain. Downstream, it holds up 6 domains.

17 topics  ·  depth 0–6 of 16  ·  21 internal links  ·  1 in  ·  11 out

Before you start

Load-bearing links first. Each one says what in this domain rests on what outside it, and why.

Text Processing

1 link

supporting

Apply regular expressions in Python rests on Read and write basic regular expressions

The pattern language is the same one you met in the shell.

What you will be able to do

In prerequisite order. Each idea names the artifact that closes it, the market demand that put it on the map, and what it stands on.

Depth 0  ·  conceptual  ·  unassisted  ·  M06 §5.1

Declare variables and use dynamic typing

Knows what names bind to

Evidence
Predicts aliasing behavior for a mutable value
Market anchor
Python
Rests on
Nothing sits under this one — it is an entry point.

Depth 1  ·  conceptual  ·  unassisted  ·  M06 §5.1

Distinguish mutable from immutable types

Predicts what a function can change

Evidence
Explains a surprising in-place mutation
Market anchor
Python
Rests on
load-bearing

Declare variables and use dynamic typing

Types describe what names are bound to.

Depth 1  ·  procedural  ·  unassisted  ·  M06 §5.5

Work with lists and tuples

Indexes, slices and chooses between them

Evidence
Slices and sorts a dataset correctly
Market anchor
Python
Rests on
load-bearing

Declare variables and use dynamic typing

A list is a value bound to a name.

Depth 1  ·  procedural  ·  unassisted  ·  M06 §5.6

Work with dictionaries and sets

Uses key-value and unique collections

Evidence
Chooses dict or set for a lookup problem
Market anchor
Python
Rests on
load-bearing

Declare variables and use dynamic typing

A dictionary is a value bound to a name.

supporting

Work with lists and tuples

Collection intuition transfers from sequences to mappings.

Depth 2  ·  procedural  ·  unassisted  ·  M06 §5.1

Format and manipulate strings

Applies f-strings and string methods

Evidence
Builds and parses text without concatenation sprawl
Market anchor
Python
Rests on
load-bearing

Depth 2  ·  procedural  ·  unassisted  ·  M06 §5.2

Apply operators

Uses arithmetic, comparison, membership and identity

Evidence
Chooses is versus == correctly
Market anchor
Python
Rests on
load-bearing

Distinguish mutable from immutable types

Operator behavior depends on types.

Depth 3  ·  procedural  ·  unassisted  ·  M06 §5.3

Control flow in Python

Applies if, for, while and truthiness

Evidence
Implements branching logic that terminates
Market anchor
Python
Rests on
load-bearing

Apply operators

Conditions are expressions.

Depth 3  ·  procedural  ·  scaffolded  ·  M06 §5.7

Apply regular expressions in Python

Matches and extracts with the re module

Evidence
Extracts fields from semi-structured text
Market anchor
Python · regex
Rests on
load-bearing

Format and manipulate strings

Patterns operate on strings.

supporting

Read and write basic regular expressions · Text Processing

The pattern language is the same one you met in the shell.

Depth 4  ·  procedural  ·  unassisted  ·  M06 §5.3

Write comprehensions

Expresses transformation and filtering inline

Evidence
Replaces an accumulator loop with a comprehension
Market anchor
Python
Rests on
load-bearing

Control flow in Python

A comprehension is a loop in expression form.

load-bearing

Work with lists and tuples

Comprehensions build lists.

Depth 4  ·  procedural  ·  unassisted  ·  M06 §5.4

Define functions

Uses positional, keyword and default parameters

Evidence
Writes a function with a clear, documented signature
Market anchor
Python
Rests on
load-bearing

Control flow in Python

Functions contain control flow.

Depth 4  ·  procedural  ·  unassisted  ·  M06 §5.8

Read and write files

Uses open with context managers

Evidence
Processes a file without leaking handles
Market anchor
Python
Rests on
load-bearing

Control flow in Python

File processing loops over content.

supporting

Handle exceptions

File operations are where exception handling first pays.

Depth 5  ·  conceptual  ·  scaffolded  ·  M06 §5.4

Use *args and **kwargs

Accepts variable arguments deliberately

Evidence
Wraps a function without losing its signature
Market anchor
Python
Rests on
load-bearing

Define functions

Variable arguments extend the signature.

Depth 5  ·  conceptual  ·  unassisted  ·  M06 §5.4

Reason about scope

Distinguishes local, global and nonlocal

Evidence
Explains an unexpected name error
Market anchor
Python
Rests on
load-bearing

Define functions

Scope is created by functions.

Depth 5  ·  procedural  ·  unassisted  ·  M06 §5.8

Serialize and deserialize JSON

Loads and dumps structured data

Evidence
Round-trips a record through JSON
Market anchor
Python · data processing
Rests on
load-bearing

Read and write files

JSON is read from and written to files and strings.

load-bearing

Work with dictionaries and sets

JSON decodes into dictionaries and lists.

Depth 5  ·  procedural  ·  unassisted  ·  M06 §5.9

Handle exceptions

Catches specific exceptions and raises custom ones

Evidence
Fails with a specific exception, never a bare except
Market anchor
Python
Rests on
load-bearing

Define functions

Exceptions propagate out of calls.

Depth 5  ·  conceptual  ·  unassisted  ·  M06 §5.10

Define classes

Writes __init__, methods and dunder methods

Evidence
Models a domain object with a useful repr
Market anchor
Python · object-oriented programming
Rests on
load-bearing

Define functions

Methods are functions.

supporting

Work with dictionaries and sets

Objects generalize the record you were modeling with a dict.

Depth 6  ·  conceptual  ·  scaffolded  ·  M06 §5.10

Apply inheritance

Extends behavior without duplicating it

Evidence
Justifies inheritance over composition
Market anchor
Python
Rests on
load-bearing

Define classes

Inheritance extends classes.

What rests on this domain

Everything downstream that names an idea here as a prerequisite, grouped by where it lives.

Production Python

4 links

load-bearing

Add type hints rests on Define functions

Hints annotate signatures.

load-bearing

Use the typing module rests on Work with dictionaries and sets

TypedDict describes dictionary shapes.

load-bearing

Write async Python rests on Define functions

Async functions are functions.

load-bearing

Call HTTP APIs asynchronously rests on Serialize and deserialize JSON

API responses are decoded as JSON.

Algorithms & Data Structures

3 links

load-bearing

Solve array and string problems rests on Work with lists and tuples

List problems require list manipulation.

load-bearing

Solve problems with hash maps and sets rests on Work with dictionaries and sets

Hash-based solutions use dictionaries and sets.

load-bearing

Think recursively rests on Define functions

Recursion is a function calling itself.

Data Ingestion

1 link

load-bearing

Ingest from files and APIs rests on Read and write files

Ingestion reads files.

Observability

1 link

load-bearing

Emit structured logs rests on Serialize and deserialize JSON

Structured logs are serialized records.

Backend Testing

1 link

load-bearing

Test Python with pytest rests on Define functions

You test Python functions.

Validation & Pydantic

1 link

load-bearing

Define schemas with Pydantic rests on Define classes

Models are classes.

Retool. Retrain. Relaunch.

375 ideas. 17 weeks. No tuition, ever.

Vets Who Code is a veteran-run 501(c)(3). The accelerator is free, remote, and we don’t take a share of your first paycheck.

Free · Remote · 17 weeks · EIN 86-2122804