01 · Surprise me

Bored?
Pick something random.

Bored?

Let the Atlas pick something for you.

One click, one idea you probably haven't looked at yet.

02 · See how it works

Pick an idea. Watch it unfold.

How does it work?

Where Each Constructor Argument Goes

Where does each argument in the braced list go, and which one is the function the thread runs?

Braced argumentlist
Step 1 / 5Braced argument list
Also explore
03 · What happens if…

Guess first. Then find out.

Predict it

When is a type function evaluated?

Predict it

If a function never uses return to send anything back, how could the code that called it still get a result?

Predict it

If epsilon is set to exactly zero for one latent dimension, what value does z take, given the formula z = z_mean + exp(z_log_variance / 2) times epsilon?

Predict it

If a holds {1, 2, 3} and b holds {10, 20, 30}, what does c = a + b contain?

04 · Change one thing

Change one thing. See what changes.

Tracing a Value into a Variable
double value = 3.7;
int count = value;

Before: The equals-sign form places the fractional value into an int variable.

Your turn. Edit a value and press Run — real Python, right in your browser. From Conditional Logic in Python.

python
Output (expected)
20240115
143025_evening_files.zip
05 · Rabbit hole

Fall down a rabbit hole.

Each idea leads to the next — follow the links the Atlas itself draws between concepts.

06 · Concept battles

This vs that.

EnginevsDistribution
What is its job?Source of randomnessMaps engine output to a specific range
What does it produce?Raw values from its own output rangeValues within the range it was configured with, such as 1 to 6
Which name in the die example?reone_to_six
Both explained in Binding Function Arguments with std::bind →
Type takes a type as argumentvsType returns a type
Where does the type sit?On the input side of the functionOn the output side of the function
What flows in?A typeSomething other than the result type
What comes out?Something other than necessarily a typeA type
Both explained in Types and Type Systems →
What it doesvsWhat it does not do
start() on a threadSets the thread's work running alongside the rest of the programDoes not tell the program when that work is finished
join() on a threadPauses the caller until that thread has terminatedDoes not start the thread, perform its work, stop it, or cancel it
Code placed after join()Runs once the joined thread has terminatedIs not guaranteed to be safe to run before the join
Both explained in Concurrent Programming with Tasks and Threads →
C or C++ switchvsPython if..elif..else
Branch selectionCases compare against a switch expressionConditions are checked in order
Default behaviordefault handles unmatched caseselse handles unmatched conditions
Multiple branch executionCan fall through when break is omittedOnly one branch executes
Both explained in Conditional Logic in Python →
Plain function fvsFunction object F{vec2}
What is written in the constructorThe function name fAn object F that stores vec2 and defines an operator
Where the vector comes fromPassed in as an argument, wrapped with ref()Stored as a reference inside the object
What the compiler buildsA function object for the thread to executeA function object for the thread to execute
Both explained in Returning Results From Threads →
What the source saysvsImportant detail
NumbersNumbers are one of the basic types.They are values that Python treats as numbers.
StringsStrings are one of the basic types.They are values that Python treats as strings.
ListsA list contains items enclosed in square brackets.A list can be altered by adding or removing items, so it is mutable.
Both explained in Data Types and Type Conversion →
08 · Build your path

Where do you want to end up?

Pick a destination and see the exact chapters you'd walk through.

  1. 1
    Getting StartedGetting Started
  2. 2
    Discovering PythonThe Story Behind Python · Key Features of Python · Summary and Version Differences
  3. 3
    Installing Python on Your SystemInstalling Python on Windows · Verifying Python Installation on Mac OS X and GNU/Linux
  4. 4
    Getting Started with Python ProgrammingUsing the Python Interpreter Prompt · Choosing an Editor for Python Programming · Writing and Running Python Programs using Source Files · +1 more
  5. 5
    Python BasicsComments and Literal Constants · Numbers and Strings · Variables and Identifiers · +3 more
  6. 6
    Understanding Operators and Expressions in PythonIntroduction to Operators · Shortcut for Math Operations and Assignment · Evaluation Order and Precedence · +1 more
  7. 7
    Mastering Control Flow in PythonConditional Statements · Loops in Python · Controlling Loop Execution
  8. 8
    Mastering Functions in PythonDefining and Calling Functions · Function Parameters and Arguments · Local Variables and Scope · +4 more
  9. +7 more chapters
Start this path →
09 · For you

Go deeper.

Ready to go deeper?

Ideas are the start. Courses take you all the way.

Verified code, real practice, and a path that builds on itself.

Explore a course →