There is a company called KT Byte https://www.ktbyte.com/ that offers in-person (in Lexington, MA) and online computer programming classes, including classes to prepare for the AP Computer Science exam (which uses Java) and the USACO. I attended a presentation of theirs. Most of the in-person classes are for students age 9-12 who are new to programming. The online classes, which take place in a virtual classroom with a live instructor, are for older students. They found that the virtual classroom worked well for older students but did not keep younger students focused. Free trials are available.

The USACO has contests in three divisions:

Quote
Bronze, for students who have recently learned to program and who are just beginning to learn about fundamental problem-solving techniques like sorting and searching.

Silver, for students who are beginning to learn "standard" algorithmic techniques (e.g., shortest paths, greedy algorithms, dynamic programming).

Gold, for advanced students who are well grounded in algorithmic problem-solving techniques, who wish to challenge themselves with sophisticated and more open-ended problems.

Admission to the silver and gold levels is based on good enough performance in the bronze and silver levels. The KT Byte instructors recommend that one have the background of AP Computer Science or equivalent before trying a contest. "There are six Internet competitions held each year, each of which consists of three or four problems to be completed in a time span of three to five hours." (Wikipedia).

One can submit programs in C, C++, Java, Pascal, or Python 2 or Python 3, but competitors should probably avoid Python for speed reasons, according to the USACO site and the KT Byte instructors:

Quote
Note also that due to the slower speed of a Python program, it may not be possible to solve the largest test cases for some problems even with the inflated time limit given to Python submissions -- consider using a faster language for problems where execution time is critical.

If my 11yo son participates this year, it's just to get his feet wet, so Python is fine. KT Byte recommends using Java for the contests since it is fast and since it is needed for AP Computer Science. C++ is the most popular language for the US Open contest:

Quote
In total, there were 1925 graded submissions, broken down by language as follows:

1189 C++
541 Java
110 Pascal
34 C
26 Python 3.2
25 Python 2.7.2

The KT Byte site has some free material at https://www.ktbyte.com/java-tutorial/book and https://www.ktbyte.com/coder#pset/99/439/hello-world .

Non-US students can and do participate in the USACO US Open contest http://www.usaco.org/index.php?page=open14results .