13 tracks live4 source languages6 target destinations

Browse the full catalog through the language you already know.

/tracks stays the canonical browse surface for the live catalog. Filter by source and target language, inspect the matching groups, and jump directly into the transition that fits your current mental model.

~/langfor/browse-trackscanonical route

filter the catalog

Narrow the live catalog before you commit to a track.

Keep the URL-driven source and target filters, then move through the grouped browse surface or the full results grid without leaving /tracks.

Showing all 13 tracks.

Back to the homepage chooser

browse by source language

02browse by source language

These catalog groups show every published starting point in the live catalog, with real route links instead of prototype-only affordances.

Python

5 matching tracks in the live catalog.

View all Python starting points
  • Python to Go

    Move into a simpler, explicit compiled language.

    Focus on syntax, structs, explicit errors, concurrency, and testing without beginner-level programming detours.

  • Python to Rust

    Learn ownership, enums, and compiler-guided design.

    Focus on the Rust ideas that most reshape a Python developer's instincts: ownership, Result and Option, traits, and testing.

  • Python to TypeScript

    Move from dynamic Python habits into typed JavaScript contracts.

    Focus on data modeling, narrowing, boundary validation, typed tests, and discriminated unions for Python developers learning TypeScript.

  • Python to .NET

    Move from dynamic Python services into type-first C#/.NET backend design.

    Focus on explicit typing, records and LINQ, Task-based async flow, .NET project structure, and ASP.NET backend architecture for Python developers.

JavaScript/Node

4 matching tracks in the live catalog.

View all JavaScript/Node starting points
  • JavaScript/Node to Python

    Move from async-first JavaScript habits into idiomatic Python.

    Focus on Python readability, data structures, modules, async I/O, exception handling, and pytest through direct comparison with JavaScript and Node.

  • JavaScript/Node to Go

    Carry backend JavaScript instincts into a clearer compiled model.

    Focus on Go syntax, interfaces, explicit errors, concurrency, and testing through JavaScript and Node comparisons.

  • JavaScript/Node to Rust

    Learn systems-language discipline from a JavaScript starting point.

    Focus on ownership, enums, Result and Option, traits, and testing for developers coming from JavaScript and Node.

  • JavaScript/Node to TypeScript

    Turn familiar JavaScript runtime code into safer, better-specified systems.

    Focus on annotations and inference, safer API shapes, boundary typing, typed tests, and practical migration strategy for existing Node codebases.

Go

2 matching tracks in the live catalog.

View all Go starting points
  • Go to Rust

    Add stronger guarantees to a familiar backend mental model.

    Focus on ownership, enums, Result and Option, compiler-guided design, and concurrency tradeoffs for Go developers moving into Rust.

  • Go to Python

    Trade compile-time rigidity for lighter, faster-moving Python code.

    Focus on readability-first structure, flexible data modeling, exceptions, pytest ergonomics, and Python's async I/O story for Go developers.

Rust

2 matching tracks in the live catalog.

View all Rust starting points
  • Rust to Go

    Trade type-system precision for simpler, faster-moving service code.

    Focus on deliberate simplicity, explicit error handling, flatter structure, and Go's concurrency style for Rust developers.

  • Rust to Python

    Keep useful explicitness while adapting to Python's lighter conventions.

    Focus on readability, Python data modeling, exceptions and None, pytest, and selective explicitness at boundaries for Rust developers.

03results grid

Review every matching track in one place, then jump directly into the route that fits.

PythontoGo

Python to Go

Move into a simpler, explicit compiled language.

Focus on syntax, structs, explicit errors, concurrency, and testing without beginner-level programming detours.

PythontoRust

Python to Rust

Learn ownership, enums, and compiler-guided design.

Focus on the Rust ideas that most reshape a Python developer's instincts: ownership, Result and Option, traits, and testing.

GotoRust

Go to Rust

Add stronger guarantees to a familiar backend mental model.

Focus on ownership, enums, Result and Option, compiler-guided design, and concurrency tradeoffs for Go developers moving into Rust.

RusttoGo

Rust to Go

Trade type-system precision for simpler, faster-moving service code.

Focus on deliberate simplicity, explicit error handling, flatter structure, and Go's concurrency style for Rust developers.

PythontoC#/.NET

Python to .NET

Move from dynamic Python services into type-first C#/.NET backend design.

Focus on explicit typing, records and LINQ, Task-based async flow, .NET project structure, and ASP.NET backend architecture for Python developers.

GotoPython

Go to Python

Trade compile-time rigidity for lighter, faster-moving Python code.

Focus on readability-first structure, flexible data modeling, exceptions, pytest ergonomics, and Python's async I/O story for Go developers.

RusttoPython

Rust to Python

Keep useful explicitness while adapting to Python's lighter conventions.

Focus on readability, Python data modeling, exceptions and None, pytest, and selective explicitness at boundaries for Rust developers.