A commonly asked question seems to be: Should I take USACO classes/tutoring or should I self study with resources such as the USACO Guide?
In this post, I’ll try to share my personal thoughts on this topic. If others have thoughts, please feel free to discuss below!
My Background
I’m a 2x Finalist, have taken multiple AlphaStar classes, have taught at AlphaStar, helped author the USACO Guide, created the USACO Forum, and help run the CPI classes (see the end for some disclaimers).
Class Benefits
I think classes provide five main benefits that you can’t find elsewhere (in decreasing order of importance in my opinion):
- Having a set schedule to improve. Taking classes force you to solve problems at a steady pace; this is immensely beneficial. Many people will get lazy if they try to self-study; by taking classes, you’re forced to stay on track. While USACO Guide tries to address this with progress-tracking tools, it’s not a perfect system.
- Having access to instructor help. AlphaStar (+ other classes) instructors are all extremely qualified. If you’re stuck on a problem or don’t understand a concept, taking classes gives you the opportunity to ask for 1-on-1 help to help you get unstuck and to keep you progressing faster. If you get stuck while self-studying, it may take you longer to get help, which may slow down the rate at which you progress. Or, even worse – you may lose motivation and stop studying. While USACO Forum / Reddit tries to help with this, the quality of help that you get in classes is better than the support you’ll get at these forums (at least in my opinion) since in classes you have a live instructor talking to you.
- Live instruction. Having an instructor lecture at you live and answer questions as they come up can be extremely helpful for some students (though not all).
- Getting to meet new people. This is especially true for AlphaStar summer camps (less true for regular classes) – you get to meet a lot of amazing, like-minded people by taking those classes, and it’s a lot of fun playing games with them outside of class. (Though this is less relevant since classes are online now, and you can still meet people through Discord, etc.)
- Quality Curriculum. I put this one last because USACO Guide & other sources provide pretty good material and they’re constantly getting better. As of right now (Dec 2020), I think it’s still harder to learn from USACO Guide than to learn from a well-run class (the quality of USACO Guide varies from module to module and language to language), but I believe/hope that in the near future USACO Guide curriculum will be at a point where it’s comparable to premium classes (help us out!) and this last bullet point will be irrelevant. It’s not that free, high-quality resources for topics don’t exist – they almost always do – it’s just that these resources are harder to find by yourself and take more time to find, whereas in a class you don’t have to spend time finding these resources. Both premium classes and USACO Guide have pretty good categorized problemsets, so I wouldn’t worry about having to find problems to do if you’re trying to self-study.
My Opinion
In my opinion, a highly motivated student can do just as well self-studying with USACO Guide & USACO Forum compared to a student taking a premium class. So, my general recommendations for taking classes are as follows:
Don’t take classes (self-study instead) if any of these apply:
- You want to save money
- Note that CPI classes are (hopefully) extremely affordable compared to alternatives; financial aid is available if you need it.
- You are able to stay disciplined and motivated while self-studying
- You have a tendency to fall behind in class and are afraid to ask instructors for help
- If you fall behind in an Alphastar class (or any class really), you’ll lose out on a lot of the benefits of taking class. However, AlphaStar instructors are generally super helpful – just make sure to be proactive and repeatedly ask for help when you’re falling behind.
Consider taking classes if any of these apply (and you are able to afford it):
- Some of the five benefits I mentioned above sound appealing to you (especially the staying disciplined part and the instructor help part)
- Self-studying isn’t working for you:
- You get frustrated a lot when self-studying because you get stuck on a problem or you don’t understand a module on the USACO Guide
- You lose motivation too easily and aren’t progressing fast enough
- You get stuck for extremely long amounts of time (you’ll always get stuck, but hopefully you shouldn’t get stuck for too long)
- You just want to try out USACO (I think classes can be really helpful for beginners/newcomers)
Still not sure whether to take classes or not? Try self-studying for a month (or however long). If self-studying isn’t working out for you, then consider taking a class.
Which classes should I take?
Note that my advice above only applies to well-run classes: It’s obviously no good taking poorly run classes. I can personally endorse these classes (though this is obviously not an exhaustive list of good classes, and whether or not these classes are worth the cost depends on each individual person):
- AlphaStar Academy – somewhat expensive, but pretty good curriculum & instructors are almost always really good. I’ve taken classes here & I’ve taught here too.
- VPlanetCoding – I’ve heard this is quite expensive, but I can say that the instructor, Riya Arora, is an amazing person & coach, and I’m sure her curriculum is excellent as well. (Whether or not this justifies the cost really depends on the individual person.)
- CPI Classes – Note that I help run these classes, so my opinion here is obviously biased. These classes are at-cost and not-for-profit; this may be a good option if you’re looking for a more affordable class.
- ??? Oops, I don’t know that many classes
My personal experiences
I had great experiences with AlphaStar: I took their Gold & Plat summer camps, and enjoyed my experience enough to go back and teach there later. Knowing what I do now, I would still advise my younger self to take those classes, even with the availability of the USACO Guide. The classes were expensive but they also taught me a lot in a really short amount of time. Could I have self-studied instead? Sure, but I might have lost interest halfway through or got frustrated and quit. Taking those classes guaranteed that I would learn the required topics and learn them well. Getting to Camp still required a lot of self-studying (and luck) on my part, but the classes gave me enough foundational knowledge so I wasn’t completely lost when trying to self-study.
Disclaimers
I help run the CPI classes, the USACO Forum, and the USACO Guide. (Note that neither I nor the people who run the CPI profit in any way from running CPI classes. CPI is a nonprofit organization) The views I express and the courses I endorse in this post reflect my personal views only, and do not reflect the views or endorsements of the Competitive Programming Initiative or the USACO Guide.