46 lines
No EOL
1.6 KiB
Markdown
46 lines
No EOL
1.6 KiB
Markdown
---
|
|
slug: /intro/prerequisites
|
|
title: Prerequisites
|
|
author: Nathan Wang
|
|
order: 3
|
|
---
|
|
|
|
Here's what you should learn before reading these resources.
|
|
|
|
<!-- END DESCRIPTION -->
|
|
|
|
These resources do **not** teach you how to code. We recommend you learn roughly the first half of AP Computer Science A before continuing. If you do not meet these prerequisites, you can go to the resources below to get started.
|
|
|
|
Familiarity with [competition math](https://github.com/bqi343/USACO/blob/master/Resources/Competition%20Math.md) (ex. AIME qualification) is helpful but not required.
|
|
|
|
## Expected Knowledge
|
|
|
|
- Variables
|
|
- Data types
|
|
- Reading Input
|
|
- Writing Output
|
|
- Loops
|
|
- If/else
|
|
- Logical operators
|
|
- Functions
|
|
- Basic Recursion (a function calling itself)
|
|
- Arrays
|
|
- Multidimensional Arrays
|
|
|
|
## Resources for Learning How to Code
|
|
|
|
[Sololearn](https://www.sololearn.com/) has courses on C++, Java, and Python. You don't have to complete the full course.
|
|
|
|
- For C++, we recommend you finish Sololearn up to (but not including) "More on Classes."
|
|
|
|
[[info | Pro Tip]]
|
|
| You do not need to learn pointers (for now). Knowledge of structs and classes is useful but not required.
|
|
|
|
### Resources for Getting Started
|
|
|
|
- [CodeSignal](https://codesignal.com/)
|
|
- good place to practice basics
|
|
- [IOI: Getting Started](https://ioinformatics.org/page/getting-started/14)
|
|
- [Philippines OI: Prepare](https://noi.ph/prepare/)
|
|
- [Schedule for Beginners](https://www.quora.com/What-is-a-good-schedule-to-follow-for-becoming-better-at-competitive-programming-for-beginners)
|
|
- [E869120 Tutorial](http://codeforces.com/blog/entry/53341) |