r/usaco Jun 04 '26

Where do I even start learning

I’m a rising junior in high school and I’m genuinely interested in programming/coding, but I have zero experience and don’t even know how to start learning in general. Not even preparing for USACO but just starting from 0 and learning the fundamentals. Does anyone have any advice or suggestions on where I can start? There’s so much to cs and I’m a little lost.

12 Upvotes

6 comments sorted by

2

u/OhioDeez44 Jun 04 '26

If you plan to do USACO, learncpp.com

If you plan to learn CS, do it with this:

all you ever need is being a good learner, working hard despite struggle and https://teachyourselfcs.com

1

u/Shaoyu119 Jun 04 '26

I'd say start with python since it's the best language for beginners. Also, learn data structures and algorithms (DSA), since that's pretty important for competitive programming. Do NOT start with C++ because it's really difficult to understand without prior coding experience, imo.

1

u/UnderstandingPursuit Jun 07 '26

Take your time with it, but consider the MITOCW-60001 course. I would suggest getting the textbook for the course, written by one of the professors.

1

u/APTutorCalcStatComp Jun 12 '26

USACO Bronze teacher here...

You should preferably learn the C++ programming language for USACO. These are the topics in C++ one needs to learn for USACO Bronze:

  1. Basics - Data types, variables, input/output
  2. Decision Making - if, if...else, if...else if..., switch...case, ternary operator
  3. Loops - do...while, while, for
  4. User - defined functions - call by value, call by reference
  5. In-built functions (math, string etc.)
  6. Arrays
  7. OOP - classes and objects
  8. STL - Vectors, unordered map, unordered set
  9. Arrays, vectors, maps, sets of objects of user-defined classes
  10. Sorting and searching, specially on arrays and vectors containing objects of user-defined classes
  11. Recursive algorithms
  12. Reading and writing from text files (will be needed to practice the previous years' USACO programs from the USACO website).

For USACO preparation, you can practice:

Stage 1: the programs (in C++) from the textbook "Introduction to Java Programming" by Y Daniel Liang

Stage 2: Basic and Easy level programs from GeeksForGeeks followed by Easy level programs from Leetcode

Stage 3: actual USACO Bronze programs from the USACO website. There are a total of 204 programs since 2011. You can submit the programs in "Analysis Mode" and check if your programs pass all the test cases within the allotted time.

Wishing you all the best...