thecodingwizard's blog

By thecodingwizard, history, 4 years ago, In English

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

USACO Guide Banner

Link: https://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:

  • If you have any suggestions, bug reports, or thoughts, please leave a comment for discussion!
  • If the wording of a module/module description can be improved, please leave a comment and we'll update it.

The following people have contributed significantly to the USACO Guide:

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

  • Vote: I like it
  • +562
  • Vote: I do not like it

| Write comment?
»
4 years ago, # |
  Vote: I like it +34 Vote: I do not like it

ORZ

»
4 years ago, # |
  Vote: I like it +29 Vote: I do not like it

:pray::cow:

»
4 years ago, # |
  Vote: I like it +26 Vote: I do not like it

wow it looks like all the geniosities helped make it

»
4 years ago, # |
  Vote: I like it +41 Vote: I do not like it

The layout looks really nice!

»
4 years ago, # |
  Vote: I like it +3 Vote: I do not like it

yassss

»
4 years ago, # |
  Vote: I like it +89 Vote: I do not like it

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.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +48 Vote: I do not like it

    uhh thecodingwizard should get around to that at some point

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it +27 Vote: I do not like it

    Thanks for the suggestion! I've added a preliminary search feature that searches module titles, descriptions, and (sort of) searches module content as well.

»
4 years ago, # |
  Vote: I like it +8 Vote: I do not like it

Really nice. Well done. Hoping reach level to understand Advanced section.

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Is it open-source?

UPD: I think clicking any link outside the website should open to new tab.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +8 Vote: I do not like it

    (Updates about this soon.)

    Noted.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +23 Vote: I do not like it

    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!

»
4 years ago, # |
  Vote: I like it +4 Vote: I do not like it

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!

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +35 Vote: I do not like it

    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.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Would be nice to have some sort of leaderboard on problem counts solved.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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).

      • »
        »
        »
        »
        4 years ago, # ^ |
        Rev. 2   Vote: I like it +5 Vote: I do not like it

        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...

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          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).

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            Where I can find all the solutions to CSES (I am personally interested)

            • »
              »
              »
              »
              »
              »
              »
              4 years ago, # ^ |
              Rev. 4   Vote: I like it 0 Vote: I do not like it

              My github has all (some are not updated, just pm me if you want me to update). Yes, flex ;)

              • »
                »
                »
                »
                »
                »
                »
                »
                4 years ago, # ^ |
                Rev. 2   Vote: I like it 0 Vote: I do not like it

                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 ;) )

          • »
            »
            »
            »
            »
            »
            4 years ago, # ^ |
              Vote: I like it 0 Vote: I do not like it

            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

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        They might have rendered it for self-evaluation, However, having leaderboards might include cheating and marking without solving or even finding a solution online :)

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it +11 Vote: I do not like it

        unless it is supposed to run on browser cache but that would be stupid for many obvious reasons

        thecodingwizard says

        OOOOOOOOOPS

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it +11 Vote: I do not like it

        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.

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
          Rev. 2   Vote: I like it 0 Vote: I do not like it

          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.

»
4 years ago, # |
  Vote: I like it +14 Vote: I do not like it

on the home page can u also put the tabs at the top of the screen to the various levels?

»
4 years ago, # |
  Vote: I like it +11 Vote: I do not like it

Suggestion: Add a "star/favorite" button to the articles for easy reference in the future. (Awesome job by the way!)

»
4 years ago, # |
  Vote: I like it +3 Vote: I do not like it

Topic have frequency (like "rare", "Somewhat Frequent"). Is there filter by that categories? I just wanna check what topics are rare

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 years ago, # |
  Vote: I like it +10 Vote: I do not like it

Awesome era to be alive.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    The site was built with Gatsby & Tailwind.

    Thank you for your suggestion; we've noted it down!

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      It looks hella clean! Out of interest, did you use a specific Gatsby theme? The documentation-esque layout is soo visually pleasing

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        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 :)

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

The design is neat

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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!

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +5 Vote: I do not like it

    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!).

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it 0 Vote: I do not like it

        Just use the "Feedback" button or the "Contact Us" button. Thanks for your help!

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Thanks for creating this website

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

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)

  • »
    »
    4 years ago, # ^ |
    Rev. 2   Vote: I like it 0 Vote: I do not like it

    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.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      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.

      • »
        »
        »
        »
        4 years ago, # ^ |
          Vote: I like it +2 Vote: I do not like it

        thecodingwizard says

        we can't even support three programming languages properly LOOOL

        • »
          »
          »
          »
          »
          4 years ago, # ^ |
            Vote: I like it 0 Vote: I do not like it

          This is true. OOPS

          any python-ers out there against us just ditching python ... ?

»
4 years ago, # |
  Vote: I like it +5 Vote: I do not like it

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.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Suggestion for the binary jumping section: Could you add the problem 1142B - Lynyrd Skynyrd for practice?

»
4 years ago, # |
  Vote: I like it +5 Vote: I do not like it

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.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 years ago, # |
Rev. 2   Vote: I like it 0 Vote: I do not like it

Thank you for this wonderful resource!I would suggest accounts so progress can be synced across multiple devices.

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).

»
4 years ago, # |
Rev. 2   Vote: I like it +3 Vote: I do not like it

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 :)

  • »
    »
    4 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    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...

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Links of internal solutions are showing "404 Not Found". Please check Benq, thecodingwizard

  • »
    »
    4 years ago, # ^ |
      Vote: I like it +3 Vote: I do not like it

    Please use the feedback form on the website when you find broken links.

    • »
      »
      »
      4 years ago, # ^ |
        Vote: I like it +10 Vote: I do not like it

      Sure. I will do that. Thanks for developing this extremely useful and intuitive website. Great work.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Awesome work guys, the UI is so interactive and design oriented. Is there a way to submit solution to the problems too.I'm from India so cannot register to the redirected USACO site.

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by caoash (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by thecodingwizard (previous revision, new revision, compare).

»
4 years ago, # |
  Vote: I like it 0 Vote: I do not like it

How can I spam cmt? :)

»
6 months ago, # |
  Vote: I like it 0 Vote: I do not like it

If this comment doesn't bother you. Please can you tell, How can I use this guide for becoming better at codeforces. I am aiming for candidate master. How to use this guide effectively?