You don't have to complete all the modules in this section before moving on to Bronze.
Feel free to mark some as "skipped" and revisit them at a later time!
About This Guide
In this first chapter, you'll learn about how this guide is structured and how best to use this guide.
Start here if you're new to competitive programming.
Introduction to Competitive Programming
What is competitive programming? Let's take a look!
Choosing a Language
What languages you can use for programming contests.
Resources: Learning to Code
Resources for learning how to code.
Options for running your language of choice.
Learn about the basic data types needed for competitive programming.
Input & Output
Demonstrates how to read input and print output for USACO contests, including an example problem.
What you're expected to know before continuing onto the rest of USACO Bronze.
Tips on code style and what you may see in our code samples.
Useful for competitors of all levels.
How to Practice
How to practice and when to read editorials (analyses) according to various USACO competitors.
General ideas on how to strategize during a USACO contest.
Resources: Competitive Programming
A bunch of helpful links specifically for competitive programming.
Good contests to participate in as well as a few tools.
Once you've reached Platinum, it may be helpful to practice with problems from other (inter)national Olympiads.
Factors to Consider When Choosing a Language
Reasons why choice of language matters significantly outside of USACO Bronze.
C++ With the Command Line
OS-specific instructions for installing and running C++ via the command line.
Identifying errors within your program and how to avoid them in the first place.
Fast Input & Output
Speeding up I/O speeds can make a substantial difference in problems with large inputs.
(Optional) Writing Generic Code
Writing code that can easily be reused or extended.
(Optional) Additional C++ Tips
Lambda Expressions and Vectorization.
Information specific to USACO as well as USA camps and contests.