### thecodingwizard's blog

By thecodingwizard, history, 2 years ago,

11/7/2020 Update: Now open sourced at https://github.com/cpinitiative/usaco-guide

Recently, a group of experienced USACO contestants (led by the legendary Benq) have put together a "USACO Guide" that's designed to take you from any division to Platinum and beyond. It can be accessed here: https://usaco.guide/. Though it's structured around USACO, it can still be used by non-USACO contestants!

The guide provides a curated list of tutorial resources you can use to learn a particular topic, as well as a lot of practice problems for you to practice your implementation & application skills. It also comes with progress-tracking tools to help you stay motivated :)

This guide is still in the pre-release stage: a large number of modules, particularly the more advanced ones, are still incomplete. We are looking for feedback & contributors to help finalize the guide! We would very much appreciate the following:

The following people have contributed significantly to the USACO Guide:

Note: This guide is not affiliated with the official USA Computing Olympiad organization.

• +562

 » 2 years ago, # |   +34 ORZ
•  » » 2 years ago, # ^ |   0 Ah man, can't take my eyes off it!
•  » » 2 years ago, # ^ |   0 umm i think you mean orz.
•  » » 2 years ago, # ^ |   +29 Please use either “OTZ” or “orz”.
•  » » 16 months ago, # ^ |   0 orzz
 » 2 years ago, # |   +29 :pray::cow:
 » 2 years ago, # |   +26 wow it looks like all the geniosities helped make it
 » 2 years ago, # |   +41 The layout looks really nice!
 » 2 years ago, # |   +3 yassss
 » 2 years ago, # |   +89 Search feature please!Your website seems simple and useful. I like how you mainly gathered links to good existing resources (like cp algo) instead of rewriting everything yourself. Too many people and platforms nowadays just write a tutorial from scratch even if it's already well explained somewhere.
•  » » 2 years ago, # ^ |   +48 uhh thecodingwizard should get around to that at some point
•  » » 2 years ago, # ^ | ← Rev. 2 →   +27 Thanks for the suggestion! I've added a preliminary search feature that searches module titles, descriptions, and (sort of) searches module content as well.
 » 2 years ago, # |   +8 Really nice. Well done. Hoping reach level to understand Advanced section.
•  » » 2 years ago, # ^ |   +3 Thanks a lot!
 » 2 years ago, # | ← Rev. 2 →   0 Is it open-source?UPD: I think clicking any link outside the website should open to new tab.
•  » » 2 years ago, # ^ |   +23 Currently the site is closed source for potential security concerns, though we're looking for a way for others to contribute more easily. If there are any points for/against open-sourcing this project, please let me know -- I'd be happy to discuss :)We've updated it such that (most) links open in a new tab; thanks for the suggestion!
 » 2 years ago, # |   +4 The design is sleek and has a very friendly feel to it, very well done!Will the services of the site remain free forever? Or will it be monetized with a subscription service of some sort as more users join?Love the great work, keep it up!
•  » » 2 years ago, # ^ |   +35 Thank you! There are no plans to monetize this guide in any way; we hope to make it as accessible to as many people as possible.
•  » » » 2 years ago, # ^ |   0 I appreciate this, as there are some real rip off tutors online.But I also assure you if you attempted to monetize it for a reasonable amount monthly or something like that people would very willingly pay.Very nice that you guys genuinely care more about growing the community than making money.
•  » » » » 2 years ago, # ^ |   0 We have no plans to do that. Furthermore, our License states that the guide cannot be used in any sort of paid class.Our goal is to make it accessible as a free resource, especially when (most) tutoring services right now are paid.
 » 2 years ago, # |   0 Would be nice to have some sort of leaderboard on problem counts solved.
•  » » 2 years ago, # ^ |   0 I don't think so it is possible as most of the problems are from usaco and there is no more to store the login stuff and API to check from if used xyz had solved this problem
•  » » » 2 years ago, # ^ |   0 I mean you can marked problems solved and says your progress so I am assuming they are going to make login etc. If not, that would render the features useless so idk why they'd have it in their pre-release (unless it is supposed to run on browser cache but that would be stupid for many obvious reasons).
•  » » » » 2 years ago, # ^ | ← Rev. 2 →   +5 It's possible and was brought up, but it's probably going to end up being people marking everything to get to the tops of the leaderboard...
•  » » » » » 2 years ago, # ^ |   0 I mean take cses for example. It is relatively popular and you can find all solutions online, yet I don't think anyone with full solves has done that (though I can see how just pressing accepted not having to submit would make it more susceptible).
•  » » » » » » 2 years ago, # ^ |   0 Where I can find all the solutions to CSES (I am personally interested)
•  » » » » » » » 2 years ago, # ^ | ← Rev. 4 →   0 My github has all (some are not updated, just pm me if you want me to update). Yes, flex ;)
•  » » » » » » » » 2 years ago, # ^ | ← Rev. 2 →   0 Thank you, you are OP and I will be sure to DM you soon(though certainly marking a module complete is easier than scouring individual githubs for sols ;) )
•  » » » » » » 2 years ago, # ^ |   0 i mean to be fair, its non-trivial to find cses solutions like for cses you can't just open the editorial and copy paste code for this you can just mark things correct, its much easier for people to just mark everything correct
•  » » » » 2 years ago, # ^ |   0 They might have rendered it for self-evaluation, However, having leaderboards might include cheating and marking without solving or even finding a solution online :)
•  » » » » 2 years ago, # ^ |   +11 unless it is supposed to run on browser cache but that would be stupid for many obvious reasons thecodingwizard says OOOOOOOOOPS
•  » » » » » 2 years ago, # ^ |   -8 Although I think there should be login system just to sync progress over multiple devices/browsers, I think GAuth is more than enough
•  » » » » » 2 years ago, # ^ |   0 Well, it's not as bad as you might think — both Chrome and Firefox support "storage.sync", I don't know about other browsers, but this could be a quick workaround.
•  » » » » 2 years ago, # ^ |   +11 yes, we are considering the feasibility of user accounts, synced progress, and leaderboards, though I'm not sure how we can verify that people have actually solved a problem vs. just went through all the problems and marked them as solved.Also, it currently does run on browser cache (localStorage) oops... I personally did not think this was too big of an issue as I find it hard to imagine normal users clearing their local storage very often? Unfortunately this does mean that syncing across devices is not supported at the moment.
•  » » » » » 2 years ago, # ^ | ← Rev. 2 →   0 My browser clears cache on default, of course I could turn that off if I cared enough, but I also clear cache a decent amount for ctfs when I want website 'reset', which I am sure many people who do cp do similar things (similarly I assume you cleared cache when testing it worked, and probably lots of other cp people do similar web stuff, but idk enough about web to know what you did). But I was mainly referring to not syncing across devices.
 » 2 years ago, # |   +14 on the home page can u also put the tabs at the top of the screen to the various levels?
•  » » 2 years ago, # ^ |   +18 Done.
•  » » » 2 years ago, # ^ |   0 thanks!
 » 2 years ago, # |   +11 Suggestion: Add a "star/favorite" button to the articles for easy reference in the future. (Awesome job by the way!)
•  » » 2 years ago, # ^ |   0 Noted.
 » 2 years ago, # |   +3 Topic have frequency (like "rare", "Somewhat Frequent"). Is there filter by that categories? I just wanna check what topics are rare
•  » » 2 years ago, # ^ |   0 I don't think we'll add support to filter modules by category (seems like a lot of work for a rather limited use case), but we have added module frequency labels to the modules on the section pages, so hopefully that will help you check for rare topics more easily.
 » 2 years ago, # |   +10 Awesome era to be alive.
 » 2 years ago, # |   0 Which framework did you use for building this Cool User Friendly Website.Thanks a lot for making this wonderful and informational site.I would like to suggest the "Note Section" where we can put our notes related to that topic for future reference that will save our time to again through the complete post again.
•  » » 2 years ago, # ^ |   +5 The site was built with Gatsby & Tailwind.Thank you for your suggestion; we've noted it down!
•  » » » 2 years ago, # ^ |   0 It looks hella clean! Out of interest, did you use a specific Gatsby theme? The documentation-esque layout is soo visually pleasing
•  » » » » 2 years ago, # ^ |   0 Thanks! No, I didn't use a specific Gatsby theme -- I just used the barebones Gatsby starter and built the rest from scratch. However, the layout we ended up with is heavily inspired by the Gatsby documentation site layout (probably because I had to refer to it so often :)
 » 2 years ago, # |   0 The design is neat
•  » » 2 years ago, # ^ |   0 They use a prebuilt UI Component library called Tailwind UI, you can check it out if your interested :)
 » 2 years ago, # |   0 This resource is awesome and extremely user friendly!Question: in the "Using This Guide" section, you guys mention that it is highly recommended to complete all of the starred problems. However, it doesn't seem like many (or any) of the problems are starred, it only appears as though resources have the icons next to it. Just curious why this might be, or maybe I am just looking in the wrong place. Again, fantastic work!
•  » » 2 years ago, # ^ |   +5 Yes, you are correct -- not too many of the problems are starred right now. That's mostly because we haven't had the time to go through the problems to figure out which ones we should star and which one we shouldn't. More problems should be starred eventually (You can help by recommending certain problems to be starred!).
•  » » » 2 years ago, # ^ |   0 Thanks for the response, I'd love to help recommend problems as I go through the modules, what is the best way to send those to you guys? I started a list for the first ones.
•  » » » » 2 years ago, # ^ |   0 Just use the "Feedback" button or the "Contact Us" button. Thanks for your help!
 » 2 years ago, # |   0 Thanks for creating this website
 » 2 years ago, # |   0 can u make open github page or something. I think many people (me too) can help with translation if u wanna translate (Not everyone knows english)
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 Thanks for the offer! Currently it is closed source for potential security concerns, though we're investigating possible ways for others to contribute more easily. Specifically with regards to translation: it would be a bit difficult in terms of implementation (none of the code was written with internationalization in mind oops) so it's highly unlikely it'll be attempted anytime soon unless there is substantial demand.
•  » » » 2 years ago, # ^ |   0 The most important part to translate is the material itself — it is not really important to translate the interface, which might take a lot of effort.And you can put only translation to VCS, not the entire website — way more easy and secure.
•  » » » » 2 years ago, # ^ |   +2 thecodingwizard says we can't even support three programming languages properly LOOOL
•  » » » » » 2 years ago, # ^ |   0 This is true. OOPSany python-ers out there against us just ditching python ... ?
 » 2 years ago, # |   +5 Wow, that's wonderful! I was thinking about doing something really similar to this, but you made a lot of things I would never come up with. Many thanks!But it would be very cool if you will find any way to integrate translations — there are a lot of beginners in my country and I guess in many other, for whom the language will be a real barrier.
 » 2 years ago, # |   0 YESSSSSS!! I have been searching for months THANK YOU!
 » 2 years ago, # |   0 Suggestion for the binary jumping section: Could you add the problem 1142B - Lynyrd Skynyrd for practice?
•  » » 2 years ago, # ^ |   0 We'll take note and look into it. Thanks for the suggestion!
 » 2 years ago, # |   +5 Thanks for the content. I would like to suggest one feature of "Dark mode" in the page to make it more readable at night as well.
•  » » 2 years ago, # ^ |   0 Thanks for the suggestion! Unfortunately, dark mode will take a somewhat substantial amount of time to implement, so it is on the backlog for now unless there is significant demand. It seems like there may be extensions that "force" dark mode on website that don't support it; I'm not sure how well they work though.
 » 2 years ago, # | ← Rev. 2 →   0 Thank you for this wonderful resource!I would suggest accounts so progress can be synced across multiple devices.
•  » » 2 years ago, # ^ |   0 Thanks for the suggestion! User accounts are definitely something we plan to do, though it may be a while before we get around to it.
 » 2 years ago, # |   0 Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).
 » 2 years ago, # |   0 Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).
 » 2 years ago, # |   0 Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).
 » 2 years ago, # | ← Rev. 2 →   +3 Why not using Firebase hosting? I think react apps will be much friendly with it. Firebase also supports authorisation Although I never host project with such a large usage :)
•  » » 2 years ago, # ^ |   0 Firebase Continuous Deployment was not as easy to set up as Vercel (though to be fair I didn't spend much time looking into it...). I did end up using Firebase for user authentication and data storage, but it has some very questionable performance issues...
•  » » » 2 years ago, # ^ |   0 Like?
 » 2 years ago, # |   0 Thanks for giving the dark mode feature. Please make it possible over github so that we can also contribute contents into it.