# Programming guides Start with the first path if programming is new to you. Read in order, or choose a question you are curious about. Each new lesson has an everyday example, a complete Pliro program, a prediction, a small challenge, and a common mistake. You can go at your own pace. The next-step articles link to useful earlier lessons. Sorting uses nested loops, so try lists and loops first. ## First programming skills 1. [What is Pliro?](what-is-pliro.md) 2. [What is a computer program?](what-is-a-program.md) 3. [What is an algorithm?](algorithms.md) 4. [Breaking a problem into smaller steps](decomposition.md) 5. [Input, processing, and output](input-processing-output.md) 6. [Following a program step by step](tracing.md) 7. [Planning your first project](project-planning.md) 8. [Finding bugs like a detective](debugging.md) 9. [Testing your program](testing.md) 10. [Trying unusual inputs](unusual-inputs.md) 11. [Choosing clear names](clear-names.md) 12. [Improving a working program](improving-code.md) ## Next steps - [Remembering what is happening](state.md) - [Making a program stop repeating](stopping-loops.md) - [Random does not mean “take turns”](randomness.md) - [Finding something in a list](searching-lists.md) - [Putting things in order](sorting-lists.md) - [Different screens in a game](game-screens.md) - [Bits, bytes, and computer memory](bits-bytes-memory.md) - [Source code and finished apps](source-and-apps.md) - [Making programs for everyone](accessible-programs.md) - [Sharing your project safely](safe-sharing.md) ## Using Pliro in practice - [2D coordinates and drawing](graphics.md) - [3D worlds, coordinates, and cameras](scene3d.md) - [Adding pictures and sounds to a project](assets.md) - [Animation and frame timing](animation.md) - [Building and distributing applications](build.md) - [Changing the language of your code](localization.md) - [Choosing colors in Pliro](colors.md) - [Complete example programs](examples.md) - [Controlling pins: from pretend devices to Raspberry Pi](gpio.md) - [Drawing with the turtle](turtle.md) - [Keeping your code neat](formatting.md) - [Questions and keyboard input](input.md) - [Reacting to events, timers, and messages](events.md) - [Running and stopping a program](execution.md) - [Saving data for later](storage.md) - [Sprites: pictures you can move](sprites.md) - [Trying commands one at a time](repl.md) - [Understanding error messages](diagnostics.md) - [Using the mouse or a pointing device](pointer-input.md) - [Where can my program run?](hosts.md) - [Why Pliro limits a running program](limits.md) - [Your first Pliro program](getting-started.md)